1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/GiunchigliaEtAl2004/MonkeyBananas.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%; @article{Giunchiglia:2004,
   15%;   author = "Enrico Giunchiglia and Joohyung Lee and Vladimir Lifschitz and Norman C. McCain and Hudson Turner",
   16%;   year = "2004",
   17%;   title = "Nonmonotonic causal theories",
   18%;   journal = "Artificial Intelligence",
   19%;   volume = "153",
   20%;   pages = "49--104",
   21%; }
   22%;
   23
   24% sort object
   25==> sort(object).
   26
   27% sort location
   28==> sort(location).
   29
   30% object Monkey, Bananas, Box
   31==> t(object,monkey).
   32==> t(object,bananas).
   33==> t(object,box).
   34
   35% location L1, L2, L3
   36==> t(location,l1).
   37==> t(location,l2).
   38==> t(location,l3).
   39
   40% fluent At(object,location)
   41 %  fluent(at(object,location)).
   42==> mpred_prop(at(object,location),fluent).
   43==> meta_argtypes(at(object,location)).
   44
   45% fluent OnBox()
   46 %  fluent(onBox()).
   47==> mpred_prop(onBox(),fluent).
   48==> meta_argtypes(onBox()).
   49
   50% fluent HasBananas()
   51 %  fluent(hasBananas()).
   52==> mpred_prop(hasBananas(),fluent).
   53==> meta_argtypes(hasBananas()).
   54
   55% event Walk(location)
   56 %  event(walk(location)).
   57==> mpred_prop(walk(location),event).
   58==> meta_argtypes(walk(location)).
   59
   60% event PushBox(location)
   61 %  event(pushBox(location)).
   62==> mpred_prop(pushBox(location),event).
   63==> meta_argtypes(pushBox(location)).
   64
   65% event ClimbOn()
   66 %  event(climbOn()).
   67==> mpred_prop(climbOn(),event).
   68==> meta_argtypes(climbOn()).
   69
   70% event ClimbOff()
   71 %  event(climbOff()).
   72==> mpred_prop(climbOff(),event).
   73==> meta_argtypes(climbOff()).
   74
   75% event GraspBananas()
   76 %  event(graspBananas()).
   77==> mpred_prop(graspBananas(),event).
   78==> meta_argtypes(graspBananas()).
   79
   80
   81% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:36
   82% [object,location1,location2,time]
   83% HoldsAt(At(object,location1),time) &
   84% HoldsAt(At(object,location2),time) ->
   85% location1=location2.
   86% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:39
   87axiom(Location1=Location2,
   88   
   89    [ holds_at(at(Object, Location1), Time),
   90      holds_at(at(Object, Location2), Time)
   91    ]).
   92
   93
   94% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:41
   95% [object,location,time]
   96% object=% Monkey ->
   97% Initiates(Walk(location),At(object,location),time).
   98% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:43
   99axiom(initiates(walk(Location), at(Object, Location), Time),
  100    [equals(Object, monkey)]).
  101
  102
  103% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:45
  104% [object,location1,location2,time]
  105% object=% Monkey &
  106% HoldsAt(At(object,location1),time) ->
  107% Terminates(Walk(location2),At(object,location1),time).
  108% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:48
  109axiom(terminates(walk(Location2), at(Object, Location1), Time),
  110   
  111    [ equals(Object, monkey),
  112      holds_at(at(Object, Location1), Time)
  113    ]).
  114
  115
  116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:50
  117% [location,time]
  118% Happens(Walk(location),time) ->
  119% !HoldsAt(At(Monkey,location),time) &
  120% !HoldsAt(OnBox(),time).
  121% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:53
  122axiom(requires(walk(Location), Time),
  123   
  124    [ not(holds_at(at(monkey, Location), Time)),
  125      not(holds_at(onBox(), Time))
  126    ]).
  127
  128
  129% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:55
  130% [location,time]
  131% HoldsAt(HasBananas(),time) &
  132% HoldsAt(At(Monkey,location),time) ->
  133% HoldsAt(At(Bananas,location),time).
  134% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:58
  135axiom(holds_at(at(bananas, Location), Time),
  136   
  137    [ holds_at(hasBananas(), Time),
  138      holds_at(at(monkey, Location), Time)
  139    ]).
  140
  141
  142% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:60
  143% [object,location,time]
  144% object=% Box | object=Monkey ->
  145% Initiates(PushBox(location),At(object,location),time).
  146% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:62
  147axiom(initiates(pushBox(Location), at(Object, Location), Time),
  148    [equals(Object, box)]).
  149axiom(initiates(pushBox(Location), at(Object, Location), Time),
  150    [equals(Object, monkey)]).
  151
  152
  153% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:64
  154% [object,location1,location2,time]
  155% (object=Box | object=Monkey) &
  156% HoldsAt(At(object,location1),time) ->
  157% Terminates(PushBox(location2),At(object,location1),time).
  158% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:67
  159axiom(terminates(pushBox(Location2), at(Object, Location1), Time),
  160   
  161    [ equals(Object, box),
  162      holds_at(at(Object, Location1), Time)
  163    ]).
  164axiom(terminates(pushBox(Location2), at(Object, Location1), Time),
  165   
  166    [ equals(Object, monkey),
  167      holds_at(at(Object, Location1), Time)
  168    ]).
  169
  170
  171% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:69
  172% [location,time]
  173% Happens(PushBox(location),time) ->
  174% ({location1}
  175%   HoldsAt(At(Box,location1),time) &
  176%   HoldsAt(At(Monkey,location1),time)) &
  177% !HoldsAt(At(Monkey,location),time) &
  178% !HoldsAt(OnBox(),time).
  179% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:75
  180axiom(requires(pushBox(Location), Time),
  181   
  182    [ holds_at(at(box, Location1), Time),
  183      holds_at(at(monkey, Location1), Time),
  184      not(holds_at(at(monkey, Location), Time)),
  185      not(holds_at(onBox(), Time))
  186    ]).
  187
  188
  189% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:77
  190% [time]
  191 % Initiates(ClimbOn(),OnBox(),time).
  192axiom(initiates(climbOn(), onBox(), Time),
  193    []).
  194
  195
  196% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:79
  197% [time]
  198% Happens(ClimbOn(),time) ->
  199% !HoldsAt(OnBox(),time).
  200% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:81
  201axiom(requires(climbOn(), Time),
  202    [not(holds_at(onBox(), Time))]).
  203
  204
  205% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:83
  206% [time]
  207 % Terminates(ClimbOff(),OnBox(),time).
  208axiom(terminates(climbOff(), onBox(), Time),
  209    []).
  210
  211
  212% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:85
  213% [time]
  214% Happens(ClimbOff(),time) ->
  215% HoldsAt(OnBox(),time).
  216% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:87
  217axiom(requires(climbOff(), Time),
  218    [holds_at(onBox(), Time)]).
  219
  220
  221% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:89
  222% [time]
  223 % Initiates(GraspBananas(),HasBananas(),time).
  224axiom(initiates(graspBananas(), hasBananas(), Time),
  225    []).
  226
  227
  228% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:91
  229% [object,location,time]
  230% object=% Bananas ->
  231% Releases(GraspBananas(),At(object,location),time).
  232% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:93
  233axiom(releases(graspBananas(), at(Object, Location), Time),
  234    [equals(Object, bananas)]).
  235
  236
  237% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:95
  238% [time]
  239% Happens(GraspBananas(),time) ->
  240% ({location1}
  241%   HoldsAt(At(Bananas,location1),time) &
  242%   HoldsAt(At(Monkey,location1),time)) &
  243% HoldsAt(OnBox(),time).
  244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:100
  245axiom(requires(graspBananas(), Time),
  246   
  247    [ holds_at(at(bananas, Location1), Time),
  248      holds_at(at(monkey, Location1), Time),
  249      holds_at(onBox(), Time)
  250    ]).
  251
  252
  253% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:102
  254% [time]
  255% HoldsAt(OnBox(),time) ->
  256% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:104
  257% {location1}%  HoldsAt(At(Box,location1),time) &
  258%             HoldsAt(At(Monkey,location1),time).
  259
  260 /*   exists([Location1],
  261             if(holds_at(onBox(), Time),
  262                 (holds_at(at(box, Location1), Time), holds_at(at(monkey, Location1), Time)))).
  263 */
  264
  265 /*  not(some(Location, '$kolem_Fn_122'(Time3))) :-
  266       holds_at(onBox(), Time3),
  267       (   not(holds_at(at(box, Location), Time3))
  268       ;   not(holds_at(at(monkey, Location), Time3))
  269       ).
  270 */
  271% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:105
  272axiom(not(some(Location, '$kolem_Fn_122'(Time3))),
  273   
  274    [ not(holds_at(at(box, Location), Time3)),
  275      holds_at(onBox(), Time3)
  276    ]).
  277axiom(not(some(Location, '$kolem_Fn_122'(Time3))),
  278   
  279    [ not(holds_at(at(monkey, Location), Time3)),
  280      holds_at(onBox(), Time3)
  281    ]).
  282
  283 /*  not(holds_at(onBox(), Time5)) :-
  284       (   not(holds_at(at(box, Location6), Time5))
  285       ;   not(holds_at(at(monkey, Location6), Time5))
  286       ),
  287       some(Location6, '$kolem_Fn_122'(Time5)).
  288 */
  289axiom(not(holds_at(onBox(), Time5)),
  290   
  291    [ not(holds_at(at(box, Location6), Time5)),
  292      some(Location6, '$kolem_Fn_122'(Time5))
  293    ]).
  294axiom(not(holds_at(onBox(), Time5)),
  295   
  296    [ not(holds_at(at(monkey, Location6), Time5)),
  297      some(Location6, '$kolem_Fn_122'(Time5))
  298    ]).
  299
  300 /*  holds_at(at(box, Location7), Time8) :-
  301       holds_at(onBox(), Time8),
  302       some(Location7, '$kolem_Fn_122'(Time8)).
  303 */
  304axiom(holds_at(at(box, Location7), Time8),
  305   
  306    [ holds_at(onBox(), Time8),
  307      some(Location7, '$kolem_Fn_122'(Time8))
  308    ]).
  309
  310 /*  holds_at(at(monkey, Location9), Time10) :-
  311       holds_at(onBox(), Time10),
  312       some(Location9, '$kolem_Fn_122'(Time10)).
  313 */
  314axiom(holds_at(at(monkey, Location9), Time10),
  315   
  316    [ holds_at(onBox(), Time10),
  317      some(Location9, '$kolem_Fn_122'(Time10))
  318    ]).
  319
  320
  321% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/GiunchigliaEtAl2004/MonkeyBananas.e:107
  322%; End of file.