我正在通过Prover9 / Mace4运行一些晶格证明。 Prover9所说的Exit: Time limit.
加上标题中的消息。
我将时间限制从60秒增加到120秒。相同的消息(两次)。奇怪的是:
label(goal)
(but not all
代表什么?)$F.
我已经为该消息找到了一些GHits,但它们似乎全是中文(?)
我给出的公理可能是(相互)递归的-我正在尝试引入一个函数和一个指定的“吸收元素” [**];而解决将需要无限的统一。 Prover9会这样做吗?
我很高兴在此消息中添加公理和目标。 (我使用的是非标准方式来定义见面和加入。)但是首先,我应该进行任何健全性检查吗?
[**]吸收元素既不是晶格顶部也不是晶格底部;更像是格子的左上角。 (如果晶格退化为两个元素,则该元素将为晶格底部。)该函数是与顶部/底部“成直角”的局部排序。我期望晶格既不互补也不分布(同样,除了2个元素时)。
答案 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
子屏幕时,我没有意识到。很奇怪。