Prolog - 所有含义

时间:2014-03-04 21:04:42

标签: prolog logic

如何在Prolog中表示一个全面的含义?

逻辑:

x is given

For all a, b . [P(a) AND P(b) AND P(x) ---> Q(a,b)]

序言将是

pred(X) :- ....

1 个答案:

答案 0 :(得分:6)

您可以将公式重写为

not exists A,B . not (p(A) and p(B) and p(X) -> q(A,B)).

进一步进入

not exists A,B . (p(A) and p(B) and p(X) and not q(A,B)).

然后在Prolog子句中使用它,如

pred(X) :- \+ ( p(A), p(B), p(X), \+q(A,B) ).

正如其他人所说,一些Prologs为此定义了一个简写,称为forall / 2,所以你应该可以使用

pred(X) :- forall((p(A), p(B), p(X)), q(A,B)).