#const maxtime=3. % G1 fluent(gateStatus). action(push). action(pull). % G2, G3, G4 possVal(gateStatus, open). possVal(gateStatus, shut). possVal(gateStatus, broken). % G5 causesValue(push, gateStatus, shut, T) :- time(T), valueOf(gateStatus, T, V), V != broken. % G6 causesValue(pull, gateStatus, open, T) :- time(T), valueOf(gateStatus, T, V), V != broken. % G7 -valueOf(gateStatus, 0, broken). % G8 happens(pull, 2). happens(push, 2). #hide. #show valueOf/3. #show happens/2.