#lang racklog

parent(john,douglas).
parent(john,douglas)?
% parent(john, douglas).

parent(john,ebbon)?

parent(bob,john).
parent(ebbon,bob).
parent(A,B)?
% parent(john, douglas).
% parent(bob, john).
% parent(ebbon, bob).

parent(john,B)?
% parent(john, douglas).

parent(A,A)?

ancestor(A,B) :- parent(A,B).
ancestor(A,B) :- parent(A,C), ancestor(C, B).
ancestor(A, B)?
% ancestor(ebbon, bob).
% ancestor(bob, john).
% ancestor(john, douglas).
% ancestor(bob, douglas).
% ancestor(ebbon, john).
% ancestor(ebbon, douglas).

ancestor(X,john)?
% ancestor(bob, john).
% ancestor(ebbon, john).

% XXX parent(bob, john)~
% XXX parent(A,B)?
% parent(john, douglas).
% parent(ebbon, bob).

% XXX ancestor(A,B)?
% ancestor(john, douglas).
% ancestor(ebbon, bob).
