1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Mueller2006/Chapter3/Telephone1.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%; @book{Mueller:2006, 15%; author = "Erik T. Mueller", 16%; year = "2006", 17%; title = "Commonsense Reasoning", 18%; address = "San Francisco", 19%; publisher = "Morgan Kaufmann/Elsevier", 20%; } 21%; 22 23% load foundations/Root.e 24 25% load foundations/EC.e 26 27% sort agent 28==> sort(agent). 29 30% sort phone 31==> sort(phone). 32 33% agent Agent1, Agent2 34==> t(agent,agent1). 35==> t(agent,agent2). 36 37% phone Phone1, Phone2 38==> t(phone,phone1). 39==> t(phone,phone2). 40 41% fluent Ringing(phone,phone) 42 % fluent(ringing(phone,phone)). 43==> mpred_prop(ringing(phone,phone),fluent). 44==> meta_argtypes(ringing(phone,phone)). 45 46% fluent DialTone(phone) 47 % fluent(dialTone(phone)). 48==> mpred_prop(dialTone(phone),fluent). 49==> meta_argtypes(dialTone(phone)). 50 51% fluent BusySignal(phone) 52 % fluent(busySignal(phone)). 53==> mpred_prop(busySignal(phone),fluent). 54==> meta_argtypes(busySignal(phone)). 55 56% fluent Idle(phone) 57 % fluent(idle(phone)). 58==> mpred_prop(idle(phone),fluent). 59==> meta_argtypes(idle(phone)). 60 61% fluent Connected(phone,phone) 62 % fluent(connected(phone,phone)). 63==> mpred_prop(connected(phone,phone),fluent). 64==> meta_argtypes(connected(phone,phone)). 65 66% fluent Disconnected(phone) 67 % fluent(disconnected(phone)). 68==> mpred_prop(disconnected(phone),fluent). 69==> meta_argtypes(disconnected(phone)). 70 71% event PickUp(agent,phone) 72 % event(pickUp(agent,phone)). 73==> mpred_prop(pickUp(agent,phone),event). 74==> meta_argtypes(pickUp(agent,phone)). 75 76% event SetDown(agent,phone) 77 % event(setDown(agent,phone)). 78==> mpred_prop(setDown(agent,phone),event). 79==> meta_argtypes(setDown(agent,phone)). 80 81% event Dial(agent,phone,phone) 82 % event(dial(agent,phone,phone)). 83==> mpred_prop(dial(agent,phone,phone),event). 84==> meta_argtypes(dial(agent,phone,phone)). 85 86 87% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:39 88%; Sigma 89% [agent,phone,time] 90% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:42 91% HoldsAt(Idle(phone),time) -> 92% Initiates(PickUp(agent,phone),DialTone(phone),time). 93% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:43 94axiom(initiates(pickUp(Agent, Phone), dialTone(Phone), Time), 95 [holds_at(idle(Phone), Time)]). 96 97 98% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:45 99% [agent,phone,time] 100% HoldsAt(Idle(phone),time) -> 101% Terminates(PickUp(agent,phone),Idle(phone),time). 102% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:47 103axiom(terminates(pickUp(Agent, Phone), idle(Phone), Time), 104 [holds_at(idle(Phone), Time)]). 105 106 107% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:49 108% [agent,phone,time] 109% HoldsAt(DialTone(phone),time) -> 110% Initiates(SetDown(agent,phone),Idle(phone),time). 111% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:51 112axiom(initiates(setDown(Agent, Phone), idle(Phone), Time), 113 [holds_at(dialTone(Phone), Time)]). 114 115 116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:53 117% [agent,phone,time] 118% HoldsAt(DialTone(phone),time) -> 119% Terminates(SetDown(agent,phone),DialTone(phone),time). 120% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:55 121axiom(terminates(setDown(Agent, Phone), dialTone(Phone), Time), 122 [holds_at(dialTone(Phone), Time)]). 123 124 125% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:57 126% [agent,phone1,phone2,time] 127% HoldsAt(DialTone(phone1),time) & 128% HoldsAt(Idle(phone2),time) -> 129% Initiates(Dial(agent,phone1,phone2),Ringing(phone1,phone2),time). 130% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:60 131axiom(initiates(dial(Agent, Phone1, Phone2), ringing(Phone1, Phone2), Time), 132 133 [ holds_at(dialTone(Phone1), Time), 134 holds_at(idle(Phone2), Time) 135 ]). 136 137 138% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:62 139% [agent,phone1,phone2,time] 140% HoldsAt(DialTone(phone1),time) & 141% HoldsAt(Idle(phone2),time) -> 142% Terminates(Dial(agent,phone1,phone2),DialTone(phone1),time). 143% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:65 144axiom(terminates(dial(Agent, Phone1, Phone2), dialTone(Phone1), Time), 145 146 [ holds_at(dialTone(Phone1), Time), 147 holds_at(idle(Phone2), Time) 148 ]). 149 150 151% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:67 152% [agent,phone1,phone2,time] 153% HoldsAt(DialTone(phone1),time) & 154% HoldsAt(Idle(phone2),time) -> 155% Terminates(Dial(agent,phone1,phone2),Idle(phone2),time). 156% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:70 157axiom(terminates(dial(Agent, Phone1, Phone2), idle(Phone2), Time), 158 159 [ holds_at(dialTone(Phone1), Time), 160 holds_at(idle(Phone2), Time) 161 ]). 162 163 164% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:72 165% [agent,phone1,phone2,time] 166% HoldsAt(DialTone(phone1),time) & 167% !HoldsAt(Idle(phone2),time) -> 168% Initiates(Dial(agent,phone1,phone2),BusySignal(phone1),time). 169% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:75 170axiom(initiates(dial(Agent, Phone1, Phone2), busySignal(Phone1), Time), 171 172 [ holds_at(dialTone(Phone1), Time), 173 not(holds_at(idle(Phone2), Time)) 174 ]). 175 176 177% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:77 178% [agent,phone1,phone2,time] 179% HoldsAt(DialTone(phone1),time) & 180% !HoldsAt(Idle(phone2),time) -> 181% Terminates(Dial(agent,phone1,phone2),DialTone(phone1),time). 182% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:80 183axiom(terminates(dial(Agent, Phone1, Phone2), dialTone(Phone1), Time), 184 185 [ holds_at(dialTone(Phone1), Time), 186 not(holds_at(idle(Phone2), Time)) 187 ]). 188 189 190% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:82 191% [agent,phone,time] 192% HoldsAt(BusySignal(phone),time) -> 193% Initiates(SetDown(agent,phone),Idle(phone),time). 194% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:84 195axiom(initiates(setDown(Agent, Phone), idle(Phone), Time), 196 [holds_at(busySignal(Phone), Time)]). 197 198 199% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:86 200% [agent,phone,time] 201% HoldsAt(BusySignal(phone),time) -> 202% Terminates(SetDown(agent,phone),BusySignal(phone),time). 203% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:88 204axiom(terminates(setDown(Agent, Phone), busySignal(Phone), Time), 205 [holds_at(busySignal(Phone), Time)]). 206 207 208% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:90 209% [agent,phone1,phone2,time] 210% HoldsAt(Ringing(phone1,phone2),time) -> 211% Initiates(SetDown(agent,phone1),Idle(phone1),time). 212% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:92 213axiom(initiates(setDown(Agent, Phone1), idle(Phone1), Time), 214 [holds_at(ringing(Phone1, Phone2), Time)]). 215 216 217% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:94 218% [agent,phone1,phone2,time] 219% HoldsAt(Ringing(phone1,phone2),time) -> 220% Initiates(SetDown(agent,phone1),Idle(phone2),time). 221% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:96 222axiom(initiates(setDown(Agent, Phone1), idle(Phone2), Time), 223 [holds_at(ringing(Phone1, Phone2), Time)]). 224 225 226% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:98 227% [agent,phone1,phone2,time] 228% HoldsAt(Ringing(phone1,phone2),time) -> 229% Terminates(SetDown(agent,phone1),Ringing(phone1,phone2),time). 230% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:100 231axiom(terminates(setDown(Agent, Phone1), ringing(Phone1, Phone2), Time), 232 [holds_at(ringing(Phone1, Phone2), Time)]). 233 234 235% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:102 236% [agent,phone1,phone2,time] 237% HoldsAt(Ringing(phone1,phone2),time) -> 238% Initiates(PickUp(agent,phone2),Connected(phone1,phone2),time). 239% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:104 240axiom(initiates(pickUp(Agent, Phone2), connected(Phone1, Phone2), Time), 241 [holds_at(ringing(Phone1, Phone2), Time)]). 242 243 244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:106 245% [agent,phone1,phone2,time] 246% HoldsAt(Ringing(phone1,phone2),time) -> 247% Terminates(PickUp(agent,phone2),Ringing(phone1,phone2),time). 248% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:108 249axiom(terminates(pickUp(Agent, Phone2), ringing(Phone1, Phone2), Time), 250 [holds_at(ringing(Phone1, Phone2), Time)]). 251 252 253% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:110 254% [agent,phone1,phone2,time] 255% HoldsAt(Connected(phone1,phone2),time) -> 256% Initiates(SetDown(agent,phone1),Idle(phone1),time). 257% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:112 258axiom(initiates(setDown(Agent, Phone1), idle(Phone1), Time), 259 [holds_at(connected(Phone1, Phone2), Time)]). 260 261 262% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:114 263% [agent,phone1,phone2,time] 264% HoldsAt(Connected(phone1,phone2),time) -> 265% Initiates(SetDown(agent,phone1),Disconnected(phone2),time). 266% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:116 267axiom(initiates(setDown(Agent, Phone1), disconnected(Phone2), Time), 268 [holds_at(connected(Phone1, Phone2), Time)]). 269 270 271% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:118 272% [agent,phone1,phone2,time] 273% HoldsAt(Connected(phone1,phone2),time) -> 274% Terminates(SetDown(agent,phone1),Connected(phone1,phone2),time). 275% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:120 276axiom(terminates(setDown(Agent, Phone1), connected(Phone1, Phone2), Time), 277 [holds_at(connected(Phone1, Phone2), Time)]). 278 279 280% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:122 281% [agent,phone1,phone2,time] 282% HoldsAt(Connected(phone1,phone2),time) -> 283% Initiates(SetDown(agent,phone2),Idle(phone2),time). 284% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:124 285axiom(initiates(setDown(Agent, Phone2), idle(Phone2), Time), 286 [holds_at(connected(Phone1, Phone2), Time)]). 287 288 289% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:126 290% [agent,phone1,phone2,time] 291% HoldsAt(Connected(phone1,phone2),time) -> 292% Initiates(SetDown(agent,phone2),Disconnected(phone1),time). 293% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:128 294axiom(initiates(setDown(Agent, Phone2), disconnected(Phone1), Time), 295 [holds_at(connected(Phone1, Phone2), Time)]). 296 297 298% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:130 299% [agent,phone1,phone2,time] 300% HoldsAt(Connected(phone1,phone2),time) -> 301% Terminates(SetDown(agent,phone2),Connected(phone1,phone2),time). 302% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:132 303axiom(terminates(setDown(Agent, Phone2), connected(Phone1, Phone2), Time), 304 [holds_at(connected(Phone1, Phone2), Time)]). 305 306 307% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:134 308% [agent,phone,time] 309% HoldsAt(Disconnected(phone),time) -> 310% Initiates(SetDown(agent,phone),Idle(phone),time). 311% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:136 312axiom(initiates(setDown(Agent, Phone), idle(Phone), Time), 313 [holds_at(disconnected(Phone), Time)]). 314 315 316% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:138 317% [agent,phone,time] 318% HoldsAt(Disconnected(phone),time) -> 319% Terminates(SetDown(agent,phone),Disconnected(phone),time). 320% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:140 321axiom(terminates(setDown(Agent, Phone), disconnected(Phone), Time), 322 [holds_at(disconnected(Phone), Time)]). 323 324 325% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:142 326%; Delta 327 328% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:144 329% Delta: 330next_axiom_uses(delta). 331 332 333 334% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:144 335% Happens(PickUp(Agent1,Phone1),0). 336axiom(happens(pickUp(agent1, phone1), t), 337 [is_time(0)]). 338 339% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:145 340% Delta: 341next_axiom_uses(delta). 342 343 344 345% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:145 346% Happens(Dial(Agent1,Phone1,Phone2),1). 347axiom(happens(dial(agent1, phone1, phone2), start), 348 [is_time(1), b(t, start), ignore(t+1=start)]). 349 350% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:146 351% Delta: 352next_axiom_uses(delta). 353 354 355 356% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:146 357% Happens(PickUp(Agent2,Phone2),2). 358axiom(happens(pickUp(agent2, phone2), t2), 359 [is_time(2), b(t, t2), ignore(t+2=t2)]). 360 361 362% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:148 363%; Gamma 364% [phone] 365 % HoldsAt(Idle(phone),0). 366% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:150 367axiom(initially(idle(Phone)), 368 []). 369 370 371% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:151 372% [phone] 373 % !HoldsAt(DialTone(phone),0). 374 % not(initially(dialTone(Phone))). 375axiom(not(initially(dialTone(DialTone_Ret))), 376 []). 377 378 379% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:152 380% [phone] 381 % !HoldsAt(BusySignal(phone),0). 382 % not(initially(busySignal(Phone))). 383axiom(not(initially(busySignal(BusySignal_Ret))), 384 []). 385 386 387% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:153 388% [phone1,phone2] 389 % !HoldsAt(Ringing(phone1,phone2),0). 390 % not(initially(ringing(Phone1,Phone2))). 391axiom(not(initially(ringing(Ringing_Param, Ringing_Ret))), 392 []). 393 394 395% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:154 396% [phone1,phone2] 397 % !HoldsAt(Connected(phone1,phone2),0). 398 % not(initially(connected(Phone1,Phone2))). 399axiom(not(initially(connected(Connected_Param, Connected_Ret))), 400 []). 401 402 403% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:155 404% [phone] 405 % !HoldsAt(Disconnected(phone),0). 406 % not(initially(disconnected(Phone))). 407axiom(not(initially(disconnected(Disconnected_Ret))), 408 []). 409 410% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:157 411% completion Delta Happens 412% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:158 413==> completion(delta). 414==> completion(happens). 415 416% range time 0 3 417% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:160 418==> range(time,0,3). 419 420% range offset 1 1 421% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter3/Telephone1.e:161 422==> range(offset,1,1). 423%; End of file.