形式化证明与线性嵌套序列演算中的消去切割
1. 引言
逻辑推导的证明演算有多种传统形式,包括希尔伯特演算、自然演绎、序列演算和表格演算等。近年来,还出现了显示演算、标记序列和嵌套序列演算等更复杂的形式。每种形式都有其优缺点,如表达能力、复杂性、易用性和哲学动机等。
以时态逻辑系统为例,之前为满足消去切割性质而提供序列演算的尝试均告失败,之后出现了更复杂的显示演算、嵌套序列和标记序列等系统。Goré和Lellmann提出了一种更简单的演算LNSKt,使用线性嵌套序列(LNS)来处理最小时态逻辑Kt,该演算无需其他复杂系统中的大量机制,且是无切割系统,他们还证明了切割可允许性。
然而,切割可允许性的证明通常“情况繁多”,有许多相似情况,且常“留给读者”。Goré和Lellmann的证明也不例外,涉及四个子情况的复杂同时归纳。为验证其正确性,可将其形式化到现代交互式证明助手中。
Dawson和Goré曾在Isabelle/HOL中给出了一个通用的可推导性框架的优雅嵌入,但他们使用的是Isabelle/HOL 2007,要在现代Isabelle中使用需要完全重写,且可能无法实现。因此,我们将这项工作移植到Coq,并进行了调整,以处理真正的子结构概念,如交换。我们扩展了这个Coq框架,对线性嵌套序列和LNSKt进行编码,并在Coq中基于原始的纸笔证明证明了标准的结构证明理论定理,直至切割可允许性。
在Coq中构造性地证明消去切割定理,使我们能够将该过程提取到一个Haskell程序中,该程序可以从带有切割的推导中生成无切割的推导。由于消去切割的完整证明在纸笔环境中就已经很庞大,形式化过程中又出现了额外情况,因此这个定理非常适合验证,尤其是我们还发现了多
超级会员免费看
订阅专栏 解锁全文

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



