分层数学库组织的证明论方法
1. 引言
在数学推理中,定理和引理之间的关系往往模糊不清。究竟是什么让一个陈述成为引理而非定理呢?有人可能会说定理“更重要”,但一个陈述比另一个“更重要”又意味着什么呢?在为定理撰写证明时,我们常常创建引理来分解复杂的证明,所以或许我们期望引理的证明比定理的证明更简短。当我们有一个不期望在读者脑海中长久留存的陈述时,也会创建引理,即它并非我们工作的主要成果。我们在推理过程中做出的这些决策,为我们证明的陈述集合赋予了一种内在的层次结构。然而,目前尚无正式的系统能将证明明确地组织成这种层次结构。
像 NuPRL、Coq 和 Isabelle 这样的定理证明器具备创建引理的能力,但它们的库结构是扁平的,引理和定理之间没有正式的区分。在这些系统中区分引理和定理的原因,与在论文中区分的原因相同,即赋予不同的重要性级别,并引入依赖或作用域关系。
我们旨在将这些概念形式化,并提供一种基于证明论的方法,以层次化的方式组织一组证明,从而反映这种自然结构。我们的观点是,定理和引理之间的本质区别在于它们的作用域。作用域已经应用于数学符号中,例如在论文中,我们无需定义集合的表示法({…})或并集和交集等运算符,因为集合符号是标准的,具有适用于任何证明的全局作用域。然而,我们经常会定义仅在一篇论文中使用的运算符,作者并不希望这些符号在未重新定义的情况下在其他论文中具有相同的含义。同样,定理是可以在任何其他证明中使用的陈述,其作用域是全局的;而引理是作用域局限于特定一组证明的陈述。我们需要一个系统,通过证明库的结构来正式表示和操作作用域。
2. 一个启发性的例子
考虑布尔代数(B, ∨, ∧, ¬, 0, 1)的推理。布尔代数是一个等
超级会员免费看
订阅专栏 解锁全文
1645

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



