1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/Mueller2006/Chapter6/CarryingABook1.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 (Effect Axioms)
   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
   26% option modeldiff on
   27:- set_ec_option(modeldiff, on).   28
   29% load foundations/Root.e
   30
   31% load foundations/EC.e
   32
   33% sort object
   34==> sort(object).
   35
   36% sort agent: object
   37==> subsort(agent,object).
   38
   39% sort room
   40==> sort(room).
   41
   42% object Book
   43==> t(object,book).
   44
   45% agent Nathan
   46==> t(agent,nathan).
   47
   48% room LivingRoom, Kitchen
   49==> t(room,livingRoom).
   50==> t(room,kitchen).
   51
   52% event LetGoOf(agent,object)
   53 %  event(letGoOf(agent,object)).
   54==> mpred_prop(letGoOf(agent,object),event).
   55==> meta_argtypes(letGoOf(agent,object)).
   56
   57% event PickUp(agent,object)
   58 %  event(pickUp(agent,object)).
   59==> mpred_prop(pickUp(agent,object),event).
   60==> meta_argtypes(pickUp(agent,object)).
   61
   62% event Walk(agent,room,room)
   63 %  event(walk(agent,room,room)).
   64==> mpred_prop(walk(agent,room,room),event).
   65==> meta_argtypes(walk(agent,room,room)).
   66
   67% fluent InRoom(object,room)
   68 %  fluent(inRoom(object,room)).
   69==> mpred_prop(inRoom(object,room),fluent).
   70==> meta_argtypes(inRoom(object,room)).
   71
   72% fluent Holding(agent,object)
   73 %  fluent(holding(agent,object)).
   74==> mpred_prop(holding(agent,object),fluent).
   75==> meta_argtypes(holding(agent,object)).
   76
   77
   78% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:42
   79%; Sigma
   80% [agent,room1,room2,time]
   81% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:45
   82% Initiates(Walk(agent,room1,room2),InRoom(agent,room2),time).
   83axiom(initiates(walk(Agent, Room1, Room2), inRoom(Agent, Room2), Time),
   84    []).
   85
   86
   87% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:47
   88% [agent,room1,room2,time]
   89% room1!=% room2 ->
   90% Terminates(Walk(agent,room1,room2),InRoom(agent,room1),time).
   91% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:49
   92axiom(terminates(walk(Agent, Room1, Room2), inRoom(Agent, Room1), Time),
   93    [{dif(Room1, Room2)}]).
   94
   95
   96% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:51
   97% [agent,object,room,time]
   98% HoldsAt(InRoom(agent,room),time) &
   99% HoldsAt(InRoom(object,room),time) ->
  100% Initiates(PickUp(agent,object),Holding(agent,object),time).
  101% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:54
  102axiom(initiates(pickUp(Agent, Object), holding(Agent, Object), Time),
  103   
  104    [ holds_at(inRoom(Agent, Room), Time),
  105      holds_at(inRoom(Object, Room), Time)
  106    ]).
  107
  108
  109% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:56
  110% [agent,object,time]
  111% HoldsAt(Holding(agent,object),time) ->
  112% Terminates(LetGoOf(agent,object),Holding(agent,object),time).
  113% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:58
  114axiom(terminates(letGoOf(Agent, Object), holding(Agent, Object), Time),
  115    [holds_at(holding(Agent, Object), Time)]).
  116
  117
  118% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:60
  119% [agent,object,room1,room2,time]
  120% HoldsAt(Holding(agent,object),time) ->
  121% Initiates(Walk(agent,room1,room2),InRoom(object,room2),time).
  122% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:62
  123axiom(initiates(walk(Agent, Room1, Room2), inRoom(Object, Room2), Time),
  124    [holds_at(holding(Agent, Object), Time)]).
  125
  126
  127% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:64
  128% [agent,object,room1,room2,time]
  129% HoldsAt(Holding(agent,object),time) &
  130% room1!=room2 ->
  131% Terminates(Walk(agent,room1,room2),InRoom(object,room1),time).
  132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:67
  133axiom(terminates(walk(Agent, Room1, Room2), inRoom(Object, Room1), Time),
  134   
  135    [ holds_at(holding(Agent, Object), Time),
  136      { dif(Room1, Room2)
  137      }
  138    ]).
  139
  140
  141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:69
  142%; Delta
  143
  144
  145% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:71
  146% Happens(PickUp(Nathan,Book),0).
  147axiom(happens(pickUp(nathan, book), t),
  148    [is_time(0)]).
  149
  150
  151% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:72
  152% Happens(Walk(Nathan,LivingRoom,Kitchen),1).
  153axiom(happens(walk(nathan, livingRoom, kitchen), start),
  154    [is_time(1), b(t, start), ignore(t+1=start)]).
  155
  156
  157% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:74
  158%; Psi
  159% [object,room1,room2,time]
  160% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:77
  161% HoldsAt(InRoom(object,room1),time) &
  162% HoldsAt(InRoom(object,room2),time) ->
  163% room1=room2.
  164% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:79
  165axiom(Room1=Room2,
  166   
  167    [ holds_at(inRoom(Object, Room1), Time),
  168      holds_at(inRoom(Object, Room2), Time)
  169    ]).
  170
  171
  172% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:81
  173%; Gamma
  174
  175
  176% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:83
  177% HoldsAt(InRoom(Nathan,LivingRoom),0).
  178axiom(initially(inRoom(nathan, livingRoom)),
  179    []).
  180
  181
  182% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:84
  183% HoldsAt(InRoom(Book,LivingRoom),0).
  184axiom(initially(inRoom(book, livingRoom)),
  185    []).
  186
  187
  188% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:86
  189%; added:
  190
  191
  192% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:87
  193% !HoldsAt(Holding(Nathan,Book),0).
  194 %  not(initially(holding(nathan,book))).
  195axiom(not(initially(holding(nathan, book))),
  196    []).
  197
  198
  199% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:88
  200% [agent,time]
  201 % !HoldsAt(Holding(agent,agent),time).
  202 %  not(holds_at(holding(Agent,Agent),Time)).
  203axiom(not(holds_at(holding(Holding_Param, Holding_Param), Time2)),
  204    []).
  205
  206% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:90
  207% completion Happens
  208% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:91
  209==> completion(happens).
  210
  211% range time 0 2
  212% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:93
  213==> range(time,0,2).
  214
  215% range offset 1 1
  216% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:94
  217==> range(offset,1,1).
  218%; End of file.