fluent(foot_broken).
fluent(kick_breaks_foot).
fluent(lock_intact).
fluent(locked).
fluent(foot_broken).
fluent(open).

action(kick).
executable(kick, []).
causes(kick, foot_broken, [kick_breaks_foot]).
causes(kick, lock_intact, [kick_breaks_lock]).
  
action(examine_lock).
executable(examine_lock, []).
%determines(examine_lock, lock_intact).
determines(examine_lock, locked).
determines(examine_lock, neg(locked)).
  
action(pick).
executable(pick, [lock_intact, locked]).
causes(pick, neg(locked), [lock_intact, locked]).

action(open_door).
executable(open_door, [neg(locked)]).
causes(open_door, open, [neg(locked)]).

initially(lock_intact).
initially(neg(foot_broken)).
initially(neg(open)).

%(oneof (kick_breaks_foot) (kick_breaks_lock))

sgoal(open).

