Logic 未使用Prover9提示

Logic 未使用Prover9提示,logic,theorem-proving,Logic,Theorem Proving,我正在通过Prover9/Mace4运行一些晶格证明。我正在使用一个非标准的格连接操作公理化,从这个公理化中,连接是交换的、结合的和幂等的并不明显。(最终,我可以让Prover9证明它是正确的。) 我知道Prover9会查找这些属性以帮助它更快地搜索。我尝试将这些属性放在附加输入部分(我运行的是GUI版本0.5),使用 问题1:这是让它看提示的方法吗 问题2:是否有一个好地方可以寻求帮助,以加快校对/提示和技巧? (如果我能让它工作,我想给更多的操作员一些提示。) 对于ref,我的公理是(只有一

我正在通过Prover9/Mace4运行一些晶格证明。我正在使用一个非标准的格连接操作公理化,从这个公理化中,连接是交换的、结合的和幂等的并不明显。(最终,我可以让Prover9证明它是正确的。)

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

问题1:这是让它看提示的方法吗

问题2:是否有一个好地方可以寻求帮助,以加快校对/提示和技巧? (如果我能让它工作,我想给更多的操作员一些提示。)

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

x^y=y^x.%点阵相遇
x^x=x。
(x^y)^z=x^(y^z)。
x^(x v y)=x.%连接的标准吸收
x^z=x&y^z=yz^(xvy)=(xvy)。
%非标准吸收
(在道格斯的答案发布后编辑。)

哇!非常感谢。数量级的加速

如果我可以的话,一些后续的q

问题3:生成的提示似乎包含了所有的初始公理和目标——这是我应该期望的吗?(大概就是你关于不需要所有提示的评论。我确实体验过删除公理会使证明更快。)

问题4:如果我添加了(事实证明)不符合公理的提示怎么办?他们被忽视了吗

问题5:如果我添加了与公理相矛盾的提示怎么办?(从一些试验来看,这并不意味着Prover9推断错误。)


问题6:对于超时的证明(尝试),有没有办法检索到目前为止推断出的公式,并循环使用它们以获得提示,从而加快下一次尝试?(尽管我在第三季度和第四季度看到了这些,但我觉得这会拖入某种谬论。)

Q1:是的,这应该可以作为提示。但是,为了更好地测试它,请获取您拥有的证据,然后使用“重新格式化”选项并检查“提示”部分。然后将所有提示复制并粘贴到“公式(提示)”列表中。(好吧,你不一定需要它们全部……如果存在的话,只使用其中的一些可能会导致更短的证明,但我离题了)。然后再次运行证明,如果它像我在命题演算中的证明一样运行,并且有提示,那么“马上”你就会得到证明

以防万一。。。您需要单击“附加输入”选项卡,并将提示列表放在那里


问题2:对于策略,有关于权重、提示和语义指导的有用信息(我没有尝试过语义指导)。您可能还想看看Bob Veroff的(他的一些工作是在OTTER中完成的,但程序是类似的)。还有一些有用的信息,拉里·沃斯,以及沃斯博士发表的作品,尽管沃斯最近的所有作品都是用水獭完成的(同样,程序也是类似的)。

Q1:是的,这应该可以作为提示。但是,为了更好地测试它,请获取您拥有的证据,然后使用“重新格式化”选项并检查“提示”部分。然后将所有提示复制并粘贴到“公式(提示)”列表中。(好吧,你不一定需要它们全部……如果存在的话,只使用其中的一些可能会导致更短的证明,但我离题了)。然后再次运行证明,如果它像我在命题演算中的证明一样运行,并且有提示,那么“马上”你就会得到证明

以防万一。。。您需要单击“附加输入”选项卡,并将提示列表放在那里


问题2:对于策略,有关于权重、提示和语义指导的有用信息(我没有尝试过语义指导)。您可能还想看看Bob Veroff的(他的一些工作是在OTTER中完成的,但程序是类似的)。还有一些有用的信息,拉里·沃斯,以及沃斯博士发表的作品,尽管沃斯最近的所有作品都是用OTTER完成的(同样,程序也是类似的)。

Q3:是的,你应该期待公理和目标作为提示。这两种方法都很有用。我更多的意思是,你可能会看到像“$F”这样的提示对我来说似乎没有多大帮助,而这些提示也会首先引导你走上一条特定的道路,这会使你更难或更容易找到较短的证明。然而,如果你只是想要一个更快的证明,那么使用所有建议的提示可能是最好的选择

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

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

手册上说:“如果派生子句包含提示,则它与提示匹配

简而言之,hints_part参数的默认值表示,只要有提示可用,就选择匹配提示的子句(最轻的优先)。”

“如果C的变量可以实例化为D的子类,则C包含D。如果C包含D,则D可以丢弃,因为它比C弱或等效。(有一些证明程序要求保留包含的子句)。”

假设你把

 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将在任何时候被选中,因为它与提示匹配

这个解释并不完整,因为我不确定“子类”是如何定义的

尽管如此,与使用原始公理和Prover9用于生成公式的任何过程生成公式不同,匹配提示的公式将被放在生成公式的列表的前面。这可以加快程序的速度,但从我读到的一些其他问题来看,如果没有提示、权重和其他策略,许多困难的问题基本上不会自动得到证明

问题6:我不确定你指的是哪些公式。当然,在Prover9中,您可以单击“显示输出”并查看thr
 1. x ^((y^z) V v)=x V y as a hint.
 2. x ^ ((x^x) V v)=x V x