问题:
假设我有一个由公理和目标组成的问题的规范(即,相关的证明问题是给定所有公理,目标是否可满足)。我们还假设该问题在公理之间不包含任何矛盾/矛盾。有没有一种方法可以预先确定(即不先构建完整的证据)证明该问题将需要“高阶推理”?
所谓“高阶推理”,是指应用证明步骤,这些步骤要求将高阶逻辑记下来。“高阶推理”的一个典型示例是归纳法:原则上写下归纳方案需要使用高阶逻辑。
例:
一个人可以指定证明问题“两个自然数的加法是否可交换?” 使用一阶逻辑(即通过构造函数0 / succ与标准公理以及递归定义“加”函数的公理一起定义自然数)。要证明此问题,需要对“ plus”的第一个或第二个自变量的结构进行归纳(取决于“ plus”的确切定义)。在尝试证明它之前,例如通过分析输入问题的性质...,我是否已经知道这一点?(当然,这只是出于说明目的的一个简单示例-实际上,对于比“ +”的可交换性更困难的证明问题,这将是有趣的。)
更多背景信息:
在我的研究中,我经常尝试使用自动一阶定理证明者(例如Vampire,eprover等)来解决证明问题(或部分证明问题),其中有些可能需要更高阶的推理。通常,证明者需要相当多的时间才能提出证明(前提是存在仅需要一阶推理技术的证明)。当然,尝试将一阶定理证明者应用于需要高阶推理的问题通常会导致超时。
因此,我一直想知道是否有任何方法/技术可以提前告诉我,证明问题是否需要更高阶的推理技术(意思是“不要浪费时间试图将它交给一阶定理证明者”) )或不,至少可能是针对特定的输入问题。
我在文献中寻找问题的答案,并向定理领域的一些研究人员询问了有关这一问题的信息,但到目前为止,我还没有收到任何好的答案。我的期望是,有人尝试将交互式定理证明与自动定理证明结合在一起(Coq社区?
我想通常来说,我在这里概述的问题是不确定的(是吗?)。但是也许对问题的精炼版本有很好的答案...?