繁体   English   中英

Isabelle的完整校样输出

[英]Complete proof output in Isabelle

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

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

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

并不是的。 对于大多数基本证明方法( rule等, introfactcasesinduct ),它们的行为相对简单,当它们失败时,它几乎总是因为他们试图应用的规则不能与目标一致/他们被给予的前提。 (或者他们不知道首先应用哪条规则)

你可能正在考虑更多自动战术,如blastforcesimpauto 他们中的大多数( blastforcefastforcefastmetismesonbest等)是“全或无”:他们要么解决的子目标或者什么也不做。 因此,找出它们卡在哪里并且通常人们使用auto进行这种探索是有点棘手的:你应用auto ,查看其余的子目标,并考虑你可以添加哪些事实/参数来分解这些更多。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM