fluents: on(B,L) requires block(B), location(L). occupied(B) requires location(B). supported(B) requires block(B). actions: move(B,L) requires block(B), location(L). always: executable move(B,L) if not occupied(B), B <> L. inertial on(B,L). caused false if on(B,L),on(B,LL),L<>LL. caused false if on(B,B). caused occupied(B) if on(B1,B), block(B). total on(B,L) after move(B,L1). caused -on(B,L1) after move(B,L), on(B,L1), L <> L1. caused supported(B) if on(B,table). caused supported(B) if on(B,B1), supported(B1). caused false if not supported(B). caused false if on(B1,B), on(B2,B), block(B), B1<>B2. noConcurrency. initially: on(x,table). on(a,table). on(p,a). on(r,i). on(i,table). on(s,table). goal: on(x,table), on(p,a), on(a,r), on(r,i), on(i,s), on(s,table)? (6)