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

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

time(t0).
time(t1).
time(t2).
time(t3).
time(t4).

%  b2    b7       b5 b7
%  b3 b4 b6  -->  b0 b3 b2
%  b0 b1 b5       b1 b4 b6

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