
%  Initial State  

on(a,b,s0). on(b,c,s0). on(c,d,s0). on(d,e,s0). ontable(e,s0).
on(f,g,s0). on(g,h,s0). on(h,i,s0). on(i,l,s0). ontable(l,s0). 
clear(a,s0). clear(f,s0). 


%  Goal  

goal(S) :-  on(b,c,S), on(c,d,S), on(d,e,S), on(e,a,S), ontable(a,S),
	on(g,h,S), on(h,i,S), on(i,l,S), on(l,f,S), ontable(f,S).

%  Good towers. 

goodTower(b,S) :- on(b,c,S), goodTower(c,S).
goodTower(c,S) :- on(c,d,S), goodTower(d,S).
goodTower(d,S) :- on(d,e,S), goodTower(e,S).
goodTower(e,S) :- on(e,a,S), goodTower(a,S).
goodTower(a,S) :- ontable(a,S).
goodTower(g,S) :- on(g,h,S), goodTower(h,S).
goodTower(h,S) :- on(h,i,S), goodTower(i,S).
goodTower(i,S) :- on(i,l,S), goodTower(l,S).
goodTower(l,S) :- on(l,f,S), goodTower(f,S).
goodTower(f,S) :- ontable(f,S). 
