module resource_management sort declarations consume :: actions replenish :: actions allocate_resource :: actions release_resource :: actions function declarations fluents basic is_available : entity -> booleans available_to : entity * thing -> booleans axioms available_to(X, Y) if is_available(X). -available_to(X, Y) if -is_available(X). false if instance(X, consume), -defined_object(X). false if instance(X, consume), -defined_base(X). false if instance(X, replenish), -defined_object(X). false if instance(X, replenish), -defined_base(X). false if instance(X, allocate_resource), -defined_object(X). occurs(X) causes -is_available(O) if instance(X, allocate_resource), object(X, O), -defined_base(X). occurs(X) causes -available_to(O, B) if instance(X, allocate_resource), object(X, O), base(X, B). impossible occurs(X) if instance(X, allocate_resource), object(X, O), -is_available(O). false if instance(X, release_resource), -defined_object(X). occurs(X) causes is_available(O) if instance(X, release_resource), object(X, O), -defined_base(X). occurs(X) causes available_to(O, B) if instance(X, release_resource), object(X, O), base(X, B). impossible occurs(X) if instance(X, release_resource), object(X, O), is_available(O).