如何在Prolog中表示一个全面的含义?
逻辑:
x is given
For all a, b . [P(a) AND P(b) AND P(x) ---> Q(a,b)]
序言将是
pred(X) :- ....
答案 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)).