\begin{verbatim} fluent(loaded). fluent(alive). action(load). action(shoot). time(0..1). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% holds(alive,0). occurs(shoot,0). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% holds(F, T+1) :- fluent(F), time(T), action(A), holds(F,T), occurs(A,T), not ab(F, A, T). not_holds(F, T+1) :- fluent(F), time(T), action(A), not_holds(F,T), occurs(A,T), not ab(F, A, T). % holds(loaded, T+1) :- time(T), % occurs(load, T). % ab(loaded, load, T) :- time(T). not_holds(alive, T+1) :- time(T), occurs(shoot, T), holds(loaded, T). ab(alive, shoot, T) :- time(T), not not_holds(loaded, T). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% holds(loaded, T) :- time(T), occurs(shoot,T), holds(alive,T), not_holds(alive, T+1). not_holds(loaded, T) :- time(T), occurs(shoot,T), holds(alive, T+1). not_holds(F,T) :- time(T), fluent(F), action(A), occurs(A,T), not_holds(F, T+1), not ab(F, A, T). holds(F,T) :- time(T), fluent(F), action(A), occurs(A,T), holds(F, T+1), not ab(F, A, T). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% holds(alive,1). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :- fluent(F), time(T), holds(F,T), not_holds(F,T). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hide fluent(F). hide action(A). hide time(T). %hide ab(F,A,T). %hide occurs(A,T). \end{verbatim}