logiql.logic 399 B

12345678910111213141516
  1. // ancestors
  2. parentof("douglas", "john").
  3. parentof("john", "bob").
  4. parentof("bob", "ebbon").
  5. parentof("douglas", "jane").
  6. parentof("jane", "jan").
  7. ancestorof(A, B) <- parentof(A, B).
  8. ancestorof(A, C) <- ancestorof(A, B), parentof(B,C).
  9. grandparentof(A, B) <- parentof(A, C), parentof(C, B).
  10. cousins(A,B) <- grandparentof(C,A), grandparentof(C,B).
  11. parentof[`arg](A, B) -> int[32](A), !string(B).