Isabelle的完整证明输出

时间:2017-02-16 23:33:19

标签: isabelle

如果Isabelle没有找到引理的证据,是否有可能输出所有用于到达子目标的证据方法所做的一切,在这些方法中他们无法继续进行?这将有助于我看到他们陷入困境的途径,这将帮助我指出他们正确的方向。

(而且对于完成的证明,我会发现有一个完整的证明日志很有意思,它显示了为证明某些引理而进行的所有基本推论。)

1 个答案:

答案 0 :(得分:0)

这个问题听起来与this one类似,我几天前回答过。该答案的部分内容也适用于此处。无论如何,要具体回答这个问题:

不是真的。对于大多数基本证明方法(rule等,introfactcasesinduct),它们做什么以及何时失败都相对简单,它几乎总是因为他们试图应用的规则并不与他们给出的目标/前提相统一。 (或者他们不知道首先应用哪条规则)

您可能正在考虑更多自动策略,例如blastforcesimpauto。他们中的大多数(blastforcefastforcefastmetismesonbest等都是“全有或全无”:他们要么解决子目标,要么根本不做任何事情。因此,找出它们卡在哪里并且通常人们使用auto进行此类探索是有点棘手的:您应用auto,查看剩余的子目标,并考虑一下您的事实/参数可以添加以便分解更多。

simp的情况类似,只是它的确小于autosimp是简化器,它使用术语重写,称为simprocs的自定义重写过程,某些求解器(例如用于线性算术),以及一些其他方便的东西,例如拆分器来摆脱if表达式。 auto基本上simp与经典推理相结合,这使得它比simp强大得多,但也不太可预测。 (偶尔,auto做得太多,从而将可证明的目标转变为无法实现的目标)

有一些跟踪工具(例如简化器跟踪,解释为here)。我认为还有一种方法可以追踪经典推理,但我似乎无法找到它;也许我错了。在任何情况下,跟踪工具有时可以帮助解释意外行为,但我不认为它们是您想要在这里使用的那种东西。更好的方法是了解这些方法尝试的内容,然后当simpauto返回子目标时,您可以查看这些内容并确定您期望的内容simpauto要做下一步以及它为什么不这样做(通常是因为一些遗漏的事实)并修复它。

相关问题