Prover9提示没有使用

时间:2014-06-11 10:09:48

标签: logic theorem-proving

我通过Prover9 / Mace4运行一些莱迪思样张。我使用了格子连接操作的非标准公理化,从中可以明显看出连接是可交换的,关联的和幂等的。 (我可以让Prover9证明它是 - 最终。)

我知道Prover9会查找这些属性以帮助它更快地搜索。我已经尝试将这些属性放在附加输入部分(我运行GUI版本0.5),

formulas(hints).
x v y = y v x.
% etc
end_of_list.

Q1:这是让它看一下提示的方法吗?

第二季度:有没有一个好地方可以寻求有关加快校样/提示和技巧的帮助?     (如果我能让这个工作,还有其他的操作员我想提供一些提示。)

对于ref,我的公理是(双格子只有一个原始操作):

x ^ y = y ^ x.                % lattice meet
x ^ x = x.
(x ^ y) ^ z = x ^ (y ^ z).
x ^ (x v y) = x.              % standard absorption for join
x ^ z = x & y ^ z = y <-> z ^ (x v y) = (x v y).
                              % non-standard absorption

(Dougs&#39的答案发布后编辑。)

哇!谢谢。订单量级加速。

如果可能的话,可以采取一些后续行动......

问题3:生成的提示似乎包括所有初始公理加上目标 - 这是我应该期待的吗? (大概是因为你的评论不需要所有的提示。我确实经历过删除公理会使证明变得更快。)

问题4:如果我添加提示(事实证明)不能用公理证明是什么?他们被忽略了吗?

问:如果我添加与公理相矛盾的提示怎么办? (从一些试验中,这并没有使Prover9误推。)

问题6:对于超时的证明(尝试),有没有办法检索到目前为止推断的公式并回收它们以提示下一次尝试的提示? (我觉得在我的水域中,尽管我已经看过Q3和Q4,但这会引起某种谬误。)

2 个答案:

答案 0 :(得分:2)

Q1:是的,这应该适用于提示。但是,为了更好地测试它,请使用您拥有的证据,然后使用“重新格式化”选项并检查“提示”部分。然后将所有这些提示复制并粘贴到“公式(提示)”中。名单。 (你不一定都需要它们......而只使用它们中的一些可能会导致更短的证据,如果它存在,但我离题了)。然后再次运行证明,如果它像命题计算中的证据那样运行,那么你就可以“在瞬间”得到证据。

以防万一......您需要点击“其他输入”标签,然后将提示列表放在那里。

Q2:对于策略,Prover9 manual提供了有关加权,提示和语义指导的有用信息(我没有尝试过语义指导)。您可能还希望看到Bob Veroff的page(他的一些工作是在OTTER中完成的,但程序类似)。还有一些有用的信息Larry Wos的notebooks,以及Wos博士的已发表的作品,尽管Wos最近的所有工作都是使用OTTER完成的(同样,程序也相似)。

答案 1 :(得分:2)

问题3:是的,您应该期望包含公理和目标作为提示。它们都可以起到有用的作用。我更多的意思是你可能会看到像&#34; $ F&#34;作为一个提示似乎并没有给我增添太多,而且这些提示也会让你首先走上一条特定的道路,这会让你更难或更容易找到更短的证据。但是,如果您只是想要更快的证明,那么使用所有建议的提示可能是最佳选择。

问题4:提示不需要从公理中推导出来。

问题5:当然,提示可能与公理相矛盾。

手册说&#34;如果一个派生子句包含提示,则匹配一个提示。

...

简而言之,hints_part参数的默认值表示选择匹配提示(最轻的第一个)的子句,只要有可用。&#34;

&#34; C条款包含D条款,如果C的变量可以实例化为D的子条款。如果C包含D,那么D可以被丢弃,因为它弱于或等价C.(有一些证明程序要求保留包含的条款。)&#34;

所以,让我们说你放

 1. x ^((y^z) V v)=x V y as a hint.

然后如果Prover9生成

 2. x ^ ((x^x) V v)=x V x

x ^((x ^ x)V v)= x V x将在可用时被选中,因为它与提示相匹配。

这个解释并不完整,因为我并不完全确定&#34;子条款&#34;得到了定义。

仍然,不是使用原始公理和Prover9用于生成公式的任何过程生成公式,而是将匹配提示的公式放在列表的前面以生成公式。这可以提高程序的速度,但从我所读到的其他一些问题来看,似乎许多困难的问题基本上都没有得到自动证明,如果它不是像提示这样的东西,加权和其他策略。

问题6:我不确定您指的是哪些公式。当然,在Prover9中,您可以点击&#34;显示输出&#34;并浏览它产生的数十个公式。您还可以设置您认为有用的外汇作为附加目标,然后使用Prooftrans从这些引理生成提示,以便在下次运行时用作提示。或者您可以使用这些引理的证明步骤作为下一次运行的提示。如果您使用这些证明的步骤作为提示或Prooftrans建议的提示,那么在推理方面没有任何谬误,因为提示实际上并未将任何假设添加到初始集合中。提示机制起作用,至少根据我粗略的理解,通过更改搜索过程来使用匹配提示的子句一次我们有一些匹配提示的东西(也就是说,程序必须推导出与提示相匹配的东西,然后才能使用与提示匹配的内容。