agent(From, S),
connected(From, To, _),
not(crate(_, To, S)).
+
poss(push(From, Direction), S) :-
agent(From, S),
connected(From, CrateLocation, Direction),
% --- Successor state axioms ------------------------------------------
agent(AgentPlek, result(A, S)) :-
A = move(_, AgentPlek);
- A = push(OudeAgentPlek1, Richting),
- connected(OudeAgentPlek1, AgentPlek, Richting);
+ A = push(OudeAgentPlek, Richting),
+ connected(OudeAgentPlek, AgentPlek, Richting);
not(A = move(AgentPlek, _)), not(A = push(AgentPlek, _)),
agent(AgentPlek, S).