Professional Documents
Culture Documents
pl
parent(pam,bob).
parent(tom,bob).
parent(tom,liz).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).
offspring(Y,X):-parent(X,Y).
female(pam).
female(liz).
female(pat).
female(ann).
male(tom).
male(bob).
male(jim).
mother(X,Y):-parent(X,Y),female(X).
grandparent(X,Z):-parent(X,Y),parent(Y,Z).
sister(X,Y):-parent(Z,X),parent(Z,Y),female(X).
sister(X,Y):-parent(Z,X),parent(Z,Y),female(X),different(X,Y).
hasachild(X):-parent(X,Y).
happy(X):-parent(X,Y).
hastwochildren(X):-parent(X,Y),sister(Z,Y).
grandchild(X,Z):-parent(Y,X),parent(Z,Y).
aunt(X,Y):-parent(Z,Y),sister(X,Z).
predecessor(X,Z):-parent(X,Z).
predecessor(X,Z):-parent(X,Y),parent(Y,Z).
predecessor(X,Z):-parent(X,Y1),parent(Y1,Y2),parent(Y2,Z).
predecessor(X,Z):-parent(X,Y1),parent(Y1,Y2),parent(Y2,Y3),parent(Y3,Z).
son(X,Y):-offspring(X,Y),male(X).
daughter(X,Y):-offspring(X,Y),female(X).
wife(X,Y):-parent(X,Z),parent(Y,Z),female(X).
spouse(X,Y):-parent(X,Z),parent(Y,Z).
brother(X,Y):-parent(Z,X),parent(Z,Y),male(X).
brother(X,Y):-parent(Z,X),parent(Z,Y),male(X),different(X,Y).
greatGrandParent(X,Z):-parent(X,Z).
greatGrandParent(X,Z):-parent(X,Y),parent(Y,Z).
greatGrandParent(X,Z):-parent(X,Y1),parent(Y1,Y2),parent(Y2,Z).
greatGrandParent(X,Z):-parent(X,Y1),parent(Y1,Y2),parent(Y2,Y3),parent(Y3,Z).
uncle(X,Y):-brother(X,Z),parent(Z,Y).
aunt(X,Y):-sister(X,Z),parent(Z,Y).
//test
?-
| wife(pam,tom).
true.
?- wife(tom,pam).
false.
?- spouse(tom,pam).
true .
?- spouse(pam,tom).
true.
?- aunt(liz,ann).
true .
?- greatGrandParent(pam,pat).
true .
?- wife(X,Y).
X = Y, Y = pam ;
X = pam,
Y = tom ;
X = Y, Y = pat.
?- daughter(X,Y).
X = liz,
Y = tom ;
X = ann,
Y = bob ;
X = pat,
Y = bob ;
false.
?- daughter(liz,tom).
true.
?-
| hasachild(pam).
true.
?- hastwochildren(bob).
true