1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Mueller2006/Chapter6/CarryingABook2.e'). 4%; 5%; Copyright (c) 2005 IBM Corporation and others. 6%; All rights reserved. This program and the accompanying materials 7%; are made available under the terms of the Common Public License v1.0 8%; which accompanies this distribution, and is available at 9%; http://www.eclipse.org/legal/cpl-v10.html 10%; 11%; Contributors: 12%; IBM - Initial implementation 13%; 14%; Example: Carrying a Book (Release Axioms and State Constraints) 15%; 16%; @book{Mueller:2006, 17%; author = "Erik T. Mueller", 18%; year = "2006", 19%; title = "Commonsense Reasoning", 20%; address = "San Francisco", 21%; publisher = "Morgan Kaufmann/Elsevier", 22%; } 23%; 24 25% load foundations/Root.e 26 27% load foundations/EC.e 28 29% sort object 30==> sort(object). 31 32% sort agent: object 33==> subsort(agent,object). 34 35% sort room 36==> sort(room). 37 38% object Book 39==> t(object,book). 40 41% agent Nathan 42==> t(agent,nathan). 43 44% room LivingRoom, Kitchen 45==> t(room,livingRoom). 46==> t(room,kitchen). 47 48% event LetGoOf(agent,object) 49 % event(letGoOf(agent,object)). 50==> mpred_prop(letGoOf(agent,object),event). 51==> meta_argtypes(letGoOf(agent,object)). 52 53% event PickUp(agent,object) 54 % event(pickUp(agent,object)). 55==> mpred_prop(pickUp(agent,object),event). 56==> meta_argtypes(pickUp(agent,object)). 57 58% event Walk(agent,room,room) 59 % event(walk(agent,room,room)). 60==> mpred_prop(walk(agent,room,room),event). 61==> meta_argtypes(walk(agent,room,room)). 62 63% fluent InRoom(object,room) 64 % fluent(inRoom(object,room)). 65==> mpred_prop(inRoom(object,room),fluent). 66==> meta_argtypes(inRoom(object,room)). 67 68% fluent Holding(agent,object) 69 % fluent(holding(agent,object)). 70==> mpred_prop(holding(agent,object),fluent). 71==> meta_argtypes(holding(agent,object)). 72 73 74% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:39 75%; Sigma 76% [agent,room1,room2,time] 77% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:42 78% Initiates(Walk(agent,room1,room2),InRoom(agent,room2),time). 79axiom(initiates(walk(Agent, Room1, Room2), inRoom(Agent, Room2), Time), 80 []). 81 82 83% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:44 84% [agent,room1,room2,time] 85% room1!=% room2 -> 86% Terminates(Walk(agent,room1,room2),InRoom(agent,room1),time). 87% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:46 88axiom(terminates(walk(Agent, Room1, Room2), inRoom(Agent, Room1), Time), 89 [{dif(Room1, Room2)}]). 90 91 92% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:48 93% [agent,object,room,time] 94% HoldsAt(InRoom(agent,room),time) & 95% HoldsAt(InRoom(object,room),time) -> 96% Initiates(PickUp(agent,object),Holding(agent,object),time). 97% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:51 98axiom(initiates(pickUp(Agent, Object), holding(Agent, Object), Time), 99 100 [ holds_at(inRoom(Agent, Room), Time), 101 holds_at(inRoom(Object, Room), Time) 102 ]). 103 104 105% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:53 106% [agent,object,time] 107% HoldsAt(Holding(agent,object),time) -> 108% Terminates(LetGoOf(agent,object),Holding(agent,object),time). 109% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:55 110axiom(terminates(letGoOf(Agent, Object), holding(Agent, Object), Time), 111 [holds_at(holding(Agent, Object), Time)]). 112 113 114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:57 115% [agent,object,room,time] 116% Releases(PickUp(agent,object),InRoom(object,room),time). 117% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:58 118axiom(releases(pickUp(Agent, Object), inRoom(Object, Room), Time), 119 []). 120 121 122% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:60 123% [agent,object,room,time] 124% HoldsAt(InRoom(agent,room),time) -> 125% Initiates(LetGoOf(agent,object),InRoom(object,room),time). 126% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:62 127axiom(initiates(letGoOf(Agent, Object), inRoom(Object, Room), Time), 128 [holds_at(inRoom(Agent, Room), Time)]). 129 130 131% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:64 132%; Delta 133 134 135% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:66 136% Happens(PickUp(Nathan,Book),0). 137axiom(happens(pickUp(nathan, book), t), 138 [is_time(0)]). 139 140 141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:67 142% Happens(Walk(Nathan,LivingRoom,Kitchen),1). 143axiom(happens(walk(nathan, livingRoom, kitchen), start), 144 [is_time(1), b(t, start), ignore(t+1=start)]). 145 146 147% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:69 148%; Psi 149% [object,room1,room2,time] 150% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:72 151% HoldsAt(InRoom(object,room1),time) & 152% HoldsAt(InRoom(object,room2),time) -> 153% room1=room2. 154% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:74 155axiom(Room1=Room2, 156 157 [ holds_at(inRoom(Object, Room1), Time), 158 holds_at(inRoom(Object, Room2), Time) 159 ]). 160 161 162% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:76 163% [agent,object,room,time] 164% HoldsAt(Holding(agent,object),time) & 165% HoldsAt(InRoom(agent,room),time) -> 166% HoldsAt(InRoom(object,room),time). 167% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:79 168axiom(holds_at(inRoom(Object, Room), Time), 169 170 [ holds_at(holding(Agent, Object), Time), 171 holds_at(inRoom(Agent, Room), Time) 172 ]). 173 174 175% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:81 176%; Gamma 177 178 179% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:83 180% HoldsAt(InRoom(Nathan,LivingRoom),0). 181axiom(initially(inRoom(nathan, livingRoom)), 182 []). 183 184 185% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:84 186% HoldsAt(InRoom(Book,LivingRoom),0). 187axiom(initially(inRoom(book, livingRoom)), 188 []). 189 190 191% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:86 192%; added: 193 194 195% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:87 196% !HoldsAt(Holding(Nathan,Book),0). 197 % not(initially(holding(nathan,book))). 198axiom(not(initially(holding(nathan, book))), 199 []). 200 201 202% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:88 203% [agent,time] 204 % !HoldsAt(Holding(agent,agent),time). 205 % not(holds_at(holding(Agent,Agent),Time)). 206axiom(not(holds_at(holding(Holding_Param, Holding_Param), Time2)), 207 []). 208 209% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:90 210% completion Happens 211% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:91 212==> completion(happens). 213 214% range time 0 2 215% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:93 216==> range(time,0,2). 217 218% range offset 1 1 219% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook2.e:94 220==> range(offset,1,1). 221%; End of file.