parent.lp 306 B

12345678910
  1. % Define
  2. parent(lucie,robert). parent(robert,mattis). parent(robert,anna).
  3. % Generate
  4. child(C, P) :- parent(P, C).
  5. grandparent(G, C) :- parent(G, P), parent(P, C).
  6. sibling(S1, S2) :- parent(P, S1), parent(P, S2), S1 > S2.
  7. ancester(X, Y) :- parent(X, Y).
  8. ancester(X, Z) :- ancester(X, Y), ancester(Y, Z).