布尔值定理证明与通用定理探索
1. 布尔值定理证明初体验
在Agda中,我们可以进行定理证明。例如,我们要证明 ˜ ˜ tt tt ,代码如下:
˜˜tt : ˜ ˜ tt tt
˜˜tt = refl
在Agda里定义符号时,通常要先写类型,再给出定义方程。这里 ˜˜tt 的类型是 ˜ ˜ tt tt 。Agda的类型检查器会根据函数的定义方程来判断程序表达式是否相等。由于 ˜ ˜ tt 会计算为 tt ,所以我们要证明的公式就等价于 tt tt ,这两个公式在定义上是相等的。而 tt tt 可以用 refl 来证明,所以 ˜˜tt 就被定义为 refl 。这里的 refl 是相等类型的唯一构造函数。
2. 深入探讨:柯里 - 霍华德同构与构造性
柯里 - 霍华德同构最初是为构造性逻辑开发的,这也是它最常用和最广为人知的应用场景。构造性逻辑是标准(经典)逻辑的一种限制。
2.1 构造性逻辑与非构造性逻辑的区别
在构造性逻辑中,如果证明了“A或B”为真,那么我们确切知道是A为真还是B为真;如果证明了存在一个满足某性质的对象x,我们也知道这个对象x是什么。但并非所有推理都是构造性的,下面是一个著
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



