Answers:
通常,高阶公式的有效性尚不确定,搜索空间很大,因此,您所希望做的就是尝试通过巧妙地枚举证明空间来找到证明(假设存在)(想想大锤,恰当地命名)但这很粗糙。人类可以扮演神谕,提供关键引理来指导证明。
另一方面,自动化证明通常仅处理可判定的逻辑(子集),例如命题逻辑或一阶逻辑的子类,因此它们可能运行很长时间,但您知道它们最终会成功。
注意,有一些方法可以使证明助手找到那些重要的引理,例如IsaPlanner。该工具通过枚举和随机测试猜测(归纳)引理,然后尝试对其进行证明。通过重复该过程,可以自动找到许多引言,例如典型的数据类型定义。
小型ABC
我要说的是,“自动定理证明”(ATP)与“交互式定理证明”(ITP)的经典区别需要重新考虑。如果您今天使用Isabelle / HOL之类的著名ITP系统(2013年2月为Isabelle2013),它将集成ATP产品组合中的许多附加工具:
机载通用自动证明工具:老式的Isabelle工具(例如,fast
和)blast
(由L. Paulson提供)和较新的自动化证明metis
(例如,由J. Hurd提供)。
通过大锤调用的用于一阶逻辑的外部ATP:证明者,SPASS,吸血鬼。对找到的证据进行分析,以找出导致该问题的引理,将10000s减少到10s,并将结果馈给metis
。
具有部分证明重建的外部SMT,尤其是Z3(S。Boehme)。
查找未经证实的陈述的反例的工具:Nitpick / Kodkodi(J. Blanchette)和Quickcheck(L. Bulwahn)。
所有这些自动化的东西会使Isabelle成为自动化的定理证明者吗?
最终,我认为“ ATP”与“ ITP”的区别只是某种“标签”,它告诉您如何定位或“出售”系统:ATP声称是“按钮式工具”,但在实践中,您将不得不通过提供参数或提示或重新制定问题来进行(间接)交互。由于ATP社区中普遍存在的较长运行时间,因此这实际上可能是一个挑战。
相比之下,ITP系统是为当场等待人员提供的,他们可以像样地访问内部证明状态,以查看完成证明所缺少的内容。以Isabelle的方式包装ATP工具的ITP系统可能比单独使用ITP或ATP对更多的用户和更多的应用更具吸引力。
fast
也不blast
是事实。他们基本上是使用可能找到证明的某些规则的试探法。(当然,它们仅在公式的较小子集上证明,对任何证明枚举方法都是正确的。)
fast
和使用的方式blast
。请注意,这blast
是由L. Paulson在某些CADE研讨会上作为“通用Tableau证明及其与Isabelle的集成”提出的-该论文后来发表在J. UCS 1999中。还有一些特殊语言(算术子集)的决策程序。