bw_inertia
{
on(B,L,T1) :- on(B,L,T), #succ(T,T1).
}

bw_domain : bw_inertia
{
on(B,L,T1) :- move(B,L,T), #succ(T,T1).
-on(B,L,T1) :- move(B,L1,T), on(B,L,T), #succ(T,T1).

:- move(B,L,T), on(B1,B,T).
:- move(B,B1,T), on(B2,B1,T), block(B1).
:- move(B,B,T).

:- move(B,L,T), move(B1,L1,T), B<>B1.
:- move(B,L,T), move(B1,L1,T), L<>L1.

move(B,L,T) v -move(B,L,T) :- block(B), location(L), actiontime(T).

actiontime(T) :- T < #maxint, #int(T).
location(table) :- #true.
location(B) :- block(B).
}
