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). }