Agda 定理证明:技巧与实例解析
在 Agda 中进行定理证明时,有许多实用的技巧和特性可以帮助我们更高效地完成任务。下面将详细介绍一些关键的概念和方法,并结合具体的代码示例进行说明。
1. 在证明中使用占位符
当尝试证明复杂的定理时,在证明中预留一些占位符(holes)是非常有帮助的,这些占位符可以在后续填充。甚至可以为整个证明预留一个占位符。这样做虽然还没有完成证明,但可以确保尝试证明的公式能通过 Agda 的类型检查。
在 Agda 中,占位符的语法是问号( ? )。例如,对于以下证明:
˜˜-elim : @ (b : B) → ˜ ˜ b ≡ b
˜˜-elim = ?
当使用 Control-c Control-l 让 Agda 检查文件时,这个占位符会变成花括号内的绿色区域,并为每个占位符分配一个唯一的编号。
占位符可以放在等式右侧的任何位置。我们也可以先迈出证明的第一步,然后再添加更多占位符,如下所示:
˜˜-elim : @ (b : B) → ˜ ˜ b ≡ b
˜˜-elim tt = ?
˜˜-elim ff = ?
使用 Control-c Control-l 加载文件后,文本会变为:
˜˜-elim : @ (b : B) → ˜ ˜ b
超级会员免费看
订阅专栏 解锁全文
25

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



