block(b0).
block(b1).
block(b2).
block(b3).
block(b4).
block(b5).
block(b6).
block(b7).
block(b8).
block(b9).
block(b10).

on(b0 ,table,t0).
on(b1 ,b0   ,t0).
on(b2 ,b1   ,t0).
on(b3 ,table,t0).
on(b4 ,b3   ,t0).
on(b5 ,table,t0).
on(b6 ,b5   ,t0).
on(b7 ,b6   ,t0).
on(b8 ,b7   ,t0).
on(b9 ,b4   ,t0).
on(b10,b9   ,t0).

time(t0).
time(t1).
time(t2).
time(t3).
time(t4).
time(t5).
time(t6).
time(t7).


%                      b1
%      b10 b8          b2
%  b2  b9  b7  ->  b7  b10 b0
%  b1  b4  b6      b8  b5  b4
%  b0  b3  b5      b3  b6  b9

goal(T) :- time(T),
on(b3 ,table,T),
on(b6 ,table,T),
on(b9 ,table,T),
on(b4 ,b9   ,T),
on(b8 ,b3   ,T),
on(b5 ,b6   ,T),
on(b0 ,b4   ,T),
on(b7 ,b8   ,T),
on(b10,b5   ,T),
on(b2 ,b10  ,T),
on(b1 ,b2   ,T).
