假设我以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)$。这更有可能(启发性地)使您掌握索赔的证明。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top