module impairment depends on entity_event_and_action sort declarations impair :: actions repair :: actions function declarations fluents basic is_broken : entity -> booleans is_ruined : entity -> booleans axioms is_broken(X) if is_ruined(X). -is_ruined(X) if -is_broken(X). false if instance(X, impair), -defined_object(X). false if instance(X, impair), object(X, O), -instance(O, tangible_entity). false if instance(X, repair), -defined_object(X). false if instance(X, repair), object(X, O), -instance(O, tangible_entity). occurs(X) causes -is_broken(O) if instance(X, repair), object(X, O). impossible occurs(X) if instance(X, repair), object(X, O), -is_broken(O). impossible occurs(X) if instance(X, repair), object(X, O), is_ruined(O).