%log term : highlevel. (* you can uncomment these to get more output: %log counters : highlevel. %log timers : highlevel. %log sel : highlevel. *) (* predicates loc : type cargo : type plane : type cargoAt : cargo -> loc -> prop planeAt : plane -> loc -> prop aboard : cargo -> plane -> prop hasFuel,noFuel : plane -> prop gasAvail : loc -> prop *) (* axioms Suggestion: use four axioms: load : ??? unload : ??? fly : ??? refuel : ??? *) (* Tests *) % can load cargo into a plane %prove cargoAt(O1,NY) -o planeAt(P747,NY) -o aboard(O1,P747) * #. % can move refuel and then move cargo (* O1 : cargo, O2: cargo, P747 : plane, NY : loc, SF : loc *) %prove cargoAt(O1,NY) -o cargoAt(O2,NY) -o planeAt(P747, NY) -o gasAvail(NY) -o noFuel(P747) -o (cargoAt(O1,LA) * cargoAt(O2, LA) * planeAt(P747, LA) * noFuel(P747) * gasAvail(NY)).