module major_body_movement depends on changing_position sort declarations sit_down :: orient stand_up :: orient function declarations fluents basic is_sitting : entity -> booleans is_standing : entity -> booleans axioms false if instance(X, sit_down), -defined_agent(X). object(X, Y) if instance(X, sit_down), agent(X, Y). occurs(X) causes is_sitting(A) if instance(X, sit_down), agent(X, A). occurs(X) causes -is_standing(A) if instance(X, sit_down), agent(X, A). impossible occurs(X) if instance(X, sit_down), agent(X, A), is_sitting(A). false if instance(X, stand_up), -defined_agent(X). object(X, Y) if instance(X, stand_up), agent(X, Y). occurs(X) causes is_standing(A) if instance(X, stand_up), agent(X, A). occurs(X) causes -is_sitting(A) if instance(X, stand_up), agent(X, A). impossible occurs(X) if instance(X, stand_up), agent(X, A), is_standing(A).