Prolog-如果二元关系是对称的,则为true

Prolog-如果二元关系是对称的,则为true,prolog,relation,symmetric,Prolog,Relation,Symmetric,我有二元关系,如果所有二元关系都是对称的,我想得到结果true,否则为false。到目前为止,我有: married(mary, tom). married(sam, linda). married(linda, sam). spouse(X, Y) :- married(X, Y), married(Y, X). 结果如下: ?- spouse(X, Y). X = sam, Y = linda ; X = linda, Y = sam ; false. 但在这种情况下,我想得到假结果,

我有二元关系,如果所有二元关系都是对称的,我想得到结果true,否则为false。到目前为止,我有:

married(mary, tom).
married(sam, linda).
married(linda, sam).

spouse(X, Y) :- married(X, Y), married(Y, X).
结果如下:

?- spouse(X, Y).
X = sam,
Y = linda ;
X = linda,
Y = sam ;
false.
但在这种情况下,我想得到假结果,因为不存在已婚的二元关系(汤姆,玛丽)(根据公式)∀x、 y:xRy⇒yRx)。另一方面,当我有这些二元关系时:

married(tom, mary).
married(mary, tom).
married(sam, linda).
married(linda, sam).
我希望得到的结果为真,因为二元关系是对称的。我该怎么做?我正在使用SWI Prolog

如果所有二元关系都是对称的,我想得到结果true,否则为false

第一个例子是:

?- all_relations_symmetric.
false.
关于第二个问题:

?- all_relations_symmetric.
true.
?- all_relations_symmetric.
true.