题
假设我以clausal格式显示了知识库的一部分:
[1] p1(banana).
[2] not p1(X) or p2(Y).
[3] p1(X) or not p3(F).
...还有更多规则。
大多数书籍都会做这样的事情:
[1,2] {X=banana} p2(Y).
还有更多步骤。
第一个问题:做类似以下操作的事情同样正确:
[2,3] {X=X} p2(Y) or not p3(F).
然后继续解决。
第二个问题:如果每个子句中使用不同的变量,我可以做与上述相同的变量,例如我们有:
[2] not p1(X1) or p2(Y1).
[3] p1(X2) or not p3(F2).
[2,3] {X1=X2} p2(Y) or not p3(F2).
先感谢您
解决方案
假设这里有$ x $是一个变量,而不是原子命题,然后首先必须指定2和3的量化。我认为它应该是
$ forall x,y neg p1(x) vee p2(y)$,类似于3为了获得命题知识基础,并为此做出努力。
您建议使用2,3的建议仅在普遍的量化下是听起来的,但是如果您只有通用量化,则确实很有用。
对于您的第二个问题:变量的名称没有任何意义,因此您的替代也可以听起来。实际上,索赔$ forall y,p(y)$等于$ forall z,p(z)$。您可以首先更改名称,如果它使您开心:)
我会说,通常在解决方案中,解决具有量化规则的具体表达式更有用。例如,以$ forall xp(x) to q(x)$解决$ p(a)$,以获取$ q(a)$。这更有可能(启发性地)使您掌握索赔的证明。
不隶属于 cs.stackexchange