我看过很多有关Isabelle语法和证明策略的文档,但是很少找到关于它基础的资料。我有一些问题,如果有人能抽出时间回答,我会非常感激:
为什么Isabelle/HOL不允许不终止的函数?许多其他语言,如Haskell,允许非终止函数。
哪些符号是Isabelle元语言的一部分?我读到元语言中有全称量词(
/\
)和蕴含符号(==>
),但这些符号在对象级语言中也有对应物(∀和-->
)。我理解-->
是一个类型为bool => bool => bool
的对象级函数。但是,∀和∃是如何定义的呢?它们是对象级布尔函数吗?如果是,它们是不可计算的(考虑无限域)。我注意到我可以用∀和∃编写布尔函数,但它们是不可计算的。那么∀和∃是什么?它们是否是对象级的一部分?如果是,它们是如何定义的?Isabelle定理只是布尔表达式吗?那么布尔值是元语言的一部分吗?
据我所知,Isabelle是一种严格的编程语言。我该如何使用无限对象?比如,无限列表。在Isabelle/HOL中是否可能实现?
如果这些问题太基础,请原谅。我似乎找不到关于Isabelle元理论的好教程。如果有人能向我推荐关于这些主题的好教程,我会非常感激。
非常感谢!
undefined
可以居住在任何类型中。因此,标准的类型理论论证“如果我们有完全递归,我们将能够居住一切,从而证明一切”是不足够的。我对Isabelle知之甚少,但从类型理论的角度来看,它在某些方面看起来相当遥远。 - chisorry
,而Coq中使用Admitted
。据我所知,仅使用undefined
不会导致Isabelle中的不一致性,因为所有类型都必须被占用。我对Isabelle<->类型理论之间的确切关系感到非常不确定,但看起来命题在Isabelle中不是类型。希望一些Isabelle专家能够澄清一些问题。 - chi