我最近开始学习Isabelle,但我找不到一个非常重要的问题的答案:如何逐步推断出'证明'伊莎贝尔发现了什么?我对#34; auto"等行不满意。或者"使用Theorem_A by blast",我想检查一步一步的演绎。 当然,我了解了Isar'样张'但是,Sledgehammer并不总能找到这样的Isar样张.2。即使Isar样张也不总是给出逐步推理。例如,由Sledgehammer生成的我的一个定理的Isar证明如下:
proof -
have "... here is my formula ...."
using My_Theorem_1 My_axiom_2 by blast
thus ?thesis
by metis
qed
当然,人们不能称这样的证据是一个人类可读的证明'正如伊莎贝尔和伊萨尔的爱好者所做的那样。 现在我的问题是:是否有可能从'证据中逐步推断出来?伊莎贝尔发现了什么?或者至少可以转换证据'喜欢"通过汽车"进入Isar样张?需要逐步推导的情况是例如存在定理的证明,它们经常提供有用的显式结构。 我看了几个教程,但我找不到答案......
答案 0 :(得分:4)
首先,我将解释为什么您的问题通常不像您认为的那样重要;然后我会回答你的实际问题。
Isabelle的设计使您无需“信任”其证明方法(例如simp
,auto
,metis
)。所有证明都必须通过Isabelle的推理内核,因为内核是Isabelle中唯一可以产生定理的部分:如果你信任(相对较小的)内核,你可以信任所有的证明方法。证明方法只是直接或间接调用内核导出函数来操纵定理。
内核包含的功能反映了Isabelle / Pure的公理,我认为这只是自然演绎。然后你有对象逻辑的公理(在大多数情况下是HOL)和定义和typedef。所有伊莎贝尔定理都有证明基本上是由这些推理步骤组成的证明树。
您正在寻找的“逐步”证明就是这棵树,它被称为证明对象或证明术语。这些事情的问题在于它们非常大且非常难以理解(参见Russell和Whitehead的 Principia Mathematica ,以了解有多大和不可读)。我想你可以告诉伊莎贝尔以某种方式生成这些证据条款,但我不知道如何。我确实找到了一组slides by Stefan Berghofer。
我不明白为什么你会说你给的例子不是人类可读的。读者隐藏了一些细节,是的,但几乎每一个普通的数学证明都是如此。 blast
和metis
不起作用; blast
是一个一阶的表格证明者,metis
是一个解决方案证明者。如果blast
和metis
可以在一个步骤中证明某些内容,那么数学家可能也不会详细介绍该步骤。
对于存在性的显式构造:Isabelle / HOL 不是一种建设性逻辑。从经典证明中提取程序是一项持续的研究,非常困难。如果你想在Isabelle / HOL中明确构建某些东西,我的建议不是证明存在主义,而是直接证明你的明确构造。如果你的存在主义可以通过auto
在一个步骤中证明,我会打赌这个结构非常简单。
答案 1 :(得分:4)
您可以使用以下方式查看事实的内部证明条款:
prf lemma_name
例如,Pure的以下引理
thm Pure.conjunction_imp
> (PROP ?A &&& PROP ?B ⟹ PROP ?C) ≡ (PROP ?A ⟹ PROP ?B ⟹ PROP ?C)
具有作为其证明术语输出:
prf Pure.conjunction_imp
> equal_intr ⋅ _ ⋅ _ ● (❙λ(H: _) (Ha: _) Hb: _. H ● (conjunctionI ⋅ _ ⋅ _ ● Ha ● Hb)) ●
(❙λ(H: _) Ha: _. H ● (conjunctionD1 ⋅ _ ⋅ _ ● Ha) ● (conjunctionD2 ⋅ _ ⋅ _ ● Ha))
使用full_prf,输出变得更加冗长。
slides referenced in Manuel Eberl's answer提供了有关符号含义的更多信息。即使一个人不理解证明lambda术语,prf-terms也很清楚地揭示了用来证明引理的事实。
在默认的HOL会话中,输出看起来很无聊,因为内部证明部分未编译到会话图像中(参见Makarius's post there)。对于所需的输出,您必须切换到HOL-Proofs会话。 (在jEdit中:从理论面板中选择HOL-Proofs并重新启动jEdit。特殊会话图像的构建应该自动开始。(......好吧,理论上它应该像这样工作......我只是试图构建HOL-在Isabelle2015中的证明会议,但它在我的计算机上花了无限长的时间......))
答案 2 :(得分:-1)
最后,我找到了对我的问题的否定答案。在由Alan J.A编辑的“自动推理手册”一书中。 Robinson,Andrei Voronkov,其中一章的作者在第1226页写下了Isabelle的以下特征:“......例如,不能使用证明对象来查看证明细节或程序提取......” p>