Prover9“找到了一些(但不是全部)所要求的证明”

时间:2019-06-27 13:27:05

标签: logic theorem-proving

我正在通过Prover9 / Mace4运行一些晶格证明。 Prover9所说的Exit: Time limit.加上标题中的消息。

我将时间限制从60秒增加到120秒。相同的消息(两次)。奇怪的是:

  • 只有一个说法可以证明。也就是说,报告中只有一个label(goal)but not all代表什么?)
  • 它似乎已经完成了证明,因为它显示了最后一行$F.
  • Mace4找不到任何反例(我将其时间增加到120秒)。

我已经为该消息找到了一些GHits,但它们似乎全是中文(?)

我给出的公理可能是(相互)递归的-我正在尝试引入一个函数和一个指定的“吸收元素” [**];而解决将需要无限的统一。 Prover9会这样做吗?

我很高兴在此消息中添加公理和目标。 (我使用的是非标准方式来定义见面和加入。)但是首先,我应该进行任何健全性检查吗?

[**]吸收元素既不是晶格顶部也不是晶格底部;更像是格子的左上角。 (如果晶格退化为两个元素,则该元素将为晶格底部。)该函数是与顶部/底部“成直角”的局部排序。我期望晶格既不互补也不分布(同样,除了2个元素时)。

1 个答案:

答案 0 :(得分:1)

经过很多尝试,我已经重现了这一点,但是只能通过设置一些我肯定不会碰到的奇怪选项来实现。 (我通常会更改的唯一选择是Time limit,而我Reset to defaults经常出现,因此可能会掩盖任何证据。)

这是我对发生的事情的猜测。

  

but not all有什么用?

  • 您可以输入多个目标(前提是它们都是肯定的)。 [**]

  • 使用奇怪的选项设置,如果Prover9可以证明第一个而不是第二个,它将继续尝试直到精疲力尽。但只能报告成功的报告-结果为$F.

  • 如果将时间限制加倍,它将仍然证明第一个,并且仍将继续尝试第二个-为相同的结果花费两倍的时间。

  • Mace4将实现第一个目标,并用大量的时间进行反例。没有一个是因为它是可证明的。同样,将其时间限制加倍将在两倍的时间后得到相同的结果。

[注**]我从来没有打算设定多个目标;但是,当我使用公理进行黑客行为/实验时,我将所有目标都保留在Goals:框中,以便可以轻松切换un / comment。我猜我在取消评论另一个时没有评论掉。

通常,如手册中所述,行为是Prover9在证明其第一个目标时就报告成功;没有实现其他目标。如果存在多个可证明的目标,则无论文件中的位置如何,似乎都选择最容易/最快速的方法?

但是使用max_proofs set to more than default 1,Prover9将继续尝试。 (还有一个auto_denials标志与它不相关,我不理解。)

我不知道如何设置max_proofs -最终找到Options/Limits子屏幕时,我没有意识到。很奇怪。