形式化演绎系统:Agda中的终止证明与SK组合子语义
1. 终止证明概述
终止性是二元关系的一个重要属性。若将关系视为一种序,那么终止性意味着在这个序中不能无限递减,最终会到达一个无法继续下降的点,这与数学中的良基关系密切相关。
例如,自然数上的“<”序是终止的,任何递减的自然数序列最终都会停止,至少会停在0。但像整数上的“<”序和正有理数上的“<”序就不是终止的,我们可以构造出无限递减的序列,如整数的3 > 2 > 1 > 0 > -1 > -2 > … 和正有理数的1 > 1/2 > 1/4 > 1/8 > …。
我们还可以讨论从给定起点开始的关系终止性,即从该起点出发,在关系中不能无限下降,即使从其他起点出发可能会无限下降。证明程序不会永远运行,就可以看作是证明某个关系(即展示程序逐步运行的关系)从该程序作为起点是终止的。
下面是一个关系终止性的图形示例:
graph LR
a --> b
a --> g
g --> f
g --> b
i --> d
d --> c
c --> d
在这个图中,从g出发的关系是终止的,因为从g出发的所有路径最终都会终止于f或b;但从i出发就不是终止的,因为存在一个从i开始的无限路径:i -> d -> c -> d -> …
2. 在Agda中定义终止性
在A
超级会员免费看
订阅专栏 解锁全文
16

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



