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.