module activating_and_deactivating depends on accessibility sort declarations activate :: make_accessible deactivate :: make_inaccessible function declarations fluents basic is_activated : entity -> booleans axioms is_accessible(X) if is_activated(X). -is_accessible(X) if -is_activated(X). occurs(X) causes is_activated(O) if instance(X, activate), object(X, O). occurs(X) causes -is_activated(O) if instance(X, deactivate), object(X, O). impossible occurs(X) if instance(X, activate), object(X, O), is_activated(O). impossible occurs(X) if instance(X, deactivate), object(X, O), -is_activated(O).