Isabelle中lambda表达式order类型类:≤含义、实例化及λ定义问询
Isabelle中
(λ x::bool . ¬x) ≤ (λ x . x)的疑问解答 1. 操作符≤的含义
这里的≤是函数类型上的点序(pointwise order),语义为:对于函数f和g,f ≤ g当且仅当对所有输入x,都有f x ≤ g x。
针对你的例子,bool类型的≤本质对应布尔蕴含关系:a ≤ b等价于a ⟶ b(布尔值的序定义为False ≤ True,其余组合不成立)。因此原表达式等价于:
∀x::bool. ¬x ⟶ x
当x = False时,¬x = True,而True ⟶ False为False,导致整个全称命题不成立,所以value命令输出False。
2. ≤的实例化位置
函数类型的≤在标准库的Fun.thy理论文件中定义,通过为函数类型实例化order类实现:
instantiation fun :: (type, order) order
其中(≤)的具体定义由fun_le_def给出:
definition fun_le_def: "(f ≤ g) = (∀x. f x ≤ g x)"
3. λ符号的相关问题
λ是Isabelle/Pure的元逻辑核心符号,不属于对象逻辑中的可定义概念,因此jEdit无法通过Ctrl+点击跳转至其定义位置。它是Isabelle证明器内置的语法元素,用于表示匿名函数,没有对应的标准库理论文件定义。
内容的提问来源于stack exchange,提问作者alagris
相关产品推荐
相关产品推荐

