1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/Mueller2006/Chapter10/OneScreen.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%; @phdthesis{Cassimatis:2002,
   15%;   author = "Nicholas L. Cassimatis",
   16%;   year = "2002",
   17%;   title = "Polyscheme: A Cognitive Architecture for Integrating Multiple Representation and Inference Schemes",
   18%;   address = "Cambridge, MA",
   19%;   school = "Program in Media Arts and Sciences, School of Architecture and Planning, Massachusetts Institute of Technology",
   20%; }
   21%;
   22%; @book{Mueller:2006,
   23%;   author = "Erik T. Mueller",
   24%;   year = "2006",
   25%;   title = "Commonsense Reasoning",
   26%;   address = "San Francisco",
   27%;   publisher = "Morgan Kaufmann/Elsevier",
   28%; }
   29%;
   30
   31% load foundations/Root.e
   32
   33% load foundations/EC.e
   34
   35% sort object
   36==> sort(object).
   37
   38% sort location
   39==> sort(location).
   40
   41% object O1, O2
   42==> t(object,o1).
   43==> t(object,o2).
   44
   45% location L1, L2, L3
   46==> t(location,l1).
   47==> t(location,l2).
   48==> t(location,l3).
   49
   50% predicate Adjacent(location,location)
   51 %  predicate(adjacent(location,location)).
   52==> mpred_prop(adjacent(location,location),predicate).
   53==> meta_argtypes(adjacent(location,location)).
   54
   55% predicate Equal(object,object)
   56 %  predicate(equal(object,object)).
   57==> mpred_prop(equal(object,object),predicate).
   58==> meta_argtypes(equal(object,object)).
   59
   60% fluent At(object,location)
   61 %  fluent(at(object,location)).
   62==> mpred_prop(at(object,location),fluent).
   63==> meta_argtypes(at(object,location)).
   64
   65% event Move(object,location,location)
   66 %  event(move(object,location,location)).
   67==> mpred_prop(move(object,location,location),event).
   68==> meta_argtypes(move(object,location,location)).
   69
   70
   71% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:42
   72%; Sigma
   73% [object,location1,location2,time]
   74% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:45
   75% HoldsAt(At(object,location1),time) &
   76% Adjacent(location1,location2) ->
   77% Initiates(Move(object,location1,location2),At(object,location2),time).
   78% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:47
   79axiom(initiates(move(Object, Location1, Location2), at(Object, Location2), Time),
   80   
   81    [ holds_at(at(Object, Location1), Time),
   82      adjacent(Location1, Location2)
   83    ]).
   84
   85
   86% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:49
   87% [object,location1,location2,time]
   88% HoldsAt(At(object,location1),time) &
   89% Adjacent(location1,location2) ->
   90% Terminates(Move(object,location1,location2),At(object,location1),time).
   91% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:52
   92axiom(terminates(move(Object, Location1, Location2), at(Object, Location1), Time),
   93   
   94    [ holds_at(at(Object, Location1), Time),
   95      adjacent(Location1, Location2)
   96    ]).
   97
   98
   99% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:54
  100%; Psi
  101% [object,location1,location2,time]
  102% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:57
  103% HoldsAt(At(object,location1),time) &
  104% HoldsAt(At(object,location2),time) ->
  105% location1=location2.
  106% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:59
  107axiom(Location1=Location2,
  108   
  109    [ holds_at(at(Object, Location1), Time),
  110      holds_at(at(Object, Location2), Time)
  111    ]).
  112
  113
  114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:61
  115% [object,time]
  116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:62
  117% {location} % HoldsAt(At(object,location),time).
  118
  119 /*  exists([Location],
  120          holds_at(at(Object,Location),Time)).
  121 */
  122
  123 /*  holds_at(at(At_Param, Location4), Time5) :-
  124       some(Location4, '$kolem_Fn_1'(At_Param, Time5)).
  125 */
  126axiom(holds_at(at(At_Param, Location4), Time5),
  127    [some(Location4, '$kolem_Fn_1'(At_Param, Time5))]).
  128
  129 /*  not(some(Location7, '$kolem_Fn_1'(Fn_1_Param, Time8))) :-
  130       not(holds_at(at(Fn_1_Param, Location7), Time8)).
  131 */
  132axiom(not(some(Location7, '$kolem_Fn_1'(Fn_1_Param, Time8))),
  133    [not(holds_at(at(Fn_1_Param, Location7), Time8))]).
  134
  135
  136% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:64
  137% [object1,object2,location,time]
  138% HoldsAt(At(object1,location),time) &
  139% HoldsAt(At(object2,location),time) ->
  140% Equal(object1,object2).
  141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:67
  142axiom(equal(Object1, Object2),
  143   
  144    [ holds_at(at(Object1, Location), Time),
  145      holds_at(at(Object2, Location), Time)
  146    ]).
  147
  148
  149% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:69
  150% [location1, location2]
  151% Adjacent(location1,location2) <->
  152% Adjacent(location2,location1).
  153
  154 /*  adjacent(Location1, Location2) <->
  155       adjacent(Location2, Location1).
  156 */
  157% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:71
  158axiom(adjacent(Location1, Location2),
  159    [adjacent(Location2, Location1)]).
  160axiom(adjacent(Location2, Location1),
  161    [adjacent(Location1, Location2)]).
  162
  163
  164% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:73
  165% [object1,object2]
  166% Equal(object1,object2) <->
  167% Equal(object2,object1).
  168
  169 /*  equal(Object1, Object2) <->
  170       equal(Object2, Object1).
  171 */
  172% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:75
  173axiom(equal(Object1, Object2),
  174    [equal(Object2, Object1)]).
  175axiom(equal(Object2, Object1),
  176    [equal(Object1, Object2)]).
  177
  178
  179% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:77
  180%; Gamma
  181% [location1,location2]
  182% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:80
  183% Adjacent(location1,location2) <->
  184% (location1=L1 & location2=L2) |
  185% (location1=L2 & location2=L1) |
  186% (location1=L2 & location2=L3) |
  187% (location1=L3 & location2=L2).
  188
  189 /*  adjacent(Location1, Location2) <->
  190       (   Location1=l1,
  191           Location2=l2
  192       ;   Location1=l2,
  193           Location2=l1
  194       ;   Location1=l2,
  195           Location2=l3
  196       ;   Location1=l3,
  197           Location2=l2
  198       ).
  199 */
  200% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:84
  201axiom(adjacent(Location1, Location2),
  202    [equals(Location1, l1), equals(Location2, l2)]).
  203axiom(adjacent(Location1, Location2),
  204    [equals(Location1, l2), equals(Location2, l1)]).
  205axiom(adjacent(Location1, Location2),
  206    [equals(Location1, l2), equals(Location2, l3)]).
  207axiom(adjacent(Location1, Location2),
  208    [equals(Location1, l3), equals(Location2, l2)]).
  209
  210 /*   if(adjacent(Location1, Location2),
  211          (Location1=l1, Location2=l2;Location1=l2, Location2=l1;Location1=l2, Location2=l3;Location1=l3, Location2=l2)).
  212 */
  213
  214 /*  not(adjacent(Adjacent_Param, Equals_Param)) :-
  215       (   not(equals(Adjacent_Param, l1))
  216       ;   not(equals(Equals_Param, l2))
  217       ),
  218       (   not(equals(Adjacent_Param, l2))
  219       ;   not(equals(Equals_Param, l1))
  220       ),
  221       (   not(equals(Adjacent_Param, l2))
  222       ;   not(equals(Equals_Param, l3))
  223       ),
  224       (   not(equals(Adjacent_Param, l3))
  225       ;   not(equals(Equals_Param, l2))
  226       ).
  227 */
  228axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  229   
  230    [ not(equals(Adjacent_Param, l3)),
  231      not(equals(Adjacent_Param, l2)),
  232      not(equals(Adjacent_Param, l2)),
  233      not(equals(Adjacent_Param, l1))
  234    ]).
  235axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  236   
  237    [ not(equals(Equals_Param, l2)),
  238      not(equals(Adjacent_Param, l2)),
  239      not(equals(Adjacent_Param, l2)),
  240      not(equals(Adjacent_Param, l1))
  241    ]).
  242axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  243   
  244    [ not(equals(Adjacent_Param, l3)),
  245      not(equals(Equals_Param, l3)),
  246      not(equals(Adjacent_Param, l2)),
  247      not(equals(Adjacent_Param, l1))
  248    ]).
  249axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  250   
  251    [ not(equals(Equals_Param, l2)),
  252      not(equals(Equals_Param, l3)),
  253      not(equals(Adjacent_Param, l2)),
  254      not(equals(Adjacent_Param, l1))
  255    ]).
  256axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  257   
  258    [ not(equals(Adjacent_Param, l3)),
  259      not(equals(Adjacent_Param, l2)),
  260      not(equals(Equals_Param, l1)),
  261      not(equals(Adjacent_Param, l1))
  262    ]).
  263axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  264   
  265    [ not(equals(Equals_Param, l2)),
  266      not(equals(Adjacent_Param, l2)),
  267      not(equals(Equals_Param, l1)),
  268      not(equals(Adjacent_Param, l1))
  269    ]).
  270axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  271   
  272    [ not(equals(Adjacent_Param, l3)),
  273      not(equals(Equals_Param, l3)),
  274      not(equals(Equals_Param, l1)),
  275      not(equals(Adjacent_Param, l1))
  276    ]).
  277axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  278   
  279    [ not(equals(Equals_Param, l2)),
  280      not(equals(Equals_Param, l3)),
  281      not(equals(Equals_Param, l1)),
  282      not(equals(Adjacent_Param, l1))
  283    ]).
  284axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  285   
  286    [ not(equals(Adjacent_Param, l3)),
  287      not(equals(Adjacent_Param, l2)),
  288      not(equals(Adjacent_Param, l2)),
  289      not(equals(Equals_Param, l2))
  290    ]).
  291axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  292   
  293    [ not(equals(Equals_Param, l2)),
  294      not(equals(Adjacent_Param, l2)),
  295      not(equals(Adjacent_Param, l2)),
  296      not(equals(Equals_Param, l2))
  297    ]).
  298axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  299   
  300    [ not(equals(Adjacent_Param, l3)),
  301      not(equals(Equals_Param, l3)),
  302      not(equals(Adjacent_Param, l2)),
  303      not(equals(Equals_Param, l2))
  304    ]).
  305axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  306   
  307    [ not(equals(Equals_Param, l2)),
  308      not(equals(Equals_Param, l3)),
  309      not(equals(Adjacent_Param, l2)),
  310      not(equals(Equals_Param, l2))
  311    ]).
  312axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  313   
  314    [ not(equals(Adjacent_Param, l3)),
  315      not(equals(Adjacent_Param, l2)),
  316      not(equals(Equals_Param, l1)),
  317      not(equals(Equals_Param, l2))
  318    ]).
  319axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  320   
  321    [ not(equals(Equals_Param, l2)),
  322      not(equals(Adjacent_Param, l2)),
  323      not(equals(Equals_Param, l1)),
  324      not(equals(Equals_Param, l2))
  325    ]).
  326axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  327   
  328    [ not(equals(Adjacent_Param, l3)),
  329      not(equals(Equals_Param, l3)),
  330      not(equals(Equals_Param, l1)),
  331      not(equals(Equals_Param, l2))
  332    ]).
  333axiom(not(adjacent(Adjacent_Param, Equals_Param)),
  334   
  335    [ not(equals(Equals_Param, l2)),
  336      not(equals(Equals_Param, l3)),
  337      not(equals(Equals_Param, l1)),
  338      not(equals(Equals_Param, l2))
  339    ]).
  340
  341 /*  equals(Equals_Param4, l1) :-
  342       ( (   not(equals(Equals_Param4, l2))
  343         ;   not(equals(Equals_Param5, l1))
  344         ),
  345         (   not(equals(Equals_Param4, l2))
  346         ;   not(equals(Equals_Param5, l3))
  347         ),
  348         (   not(equals(Equals_Param4, l3))
  349         ;   not(equals(Equals_Param5, l2))
  350         )
  351       ),
  352       adjacent(Equals_Param4, Equals_Param5).
  353 */
  354axiom(equals(Equals_Param4, l1),
  355   
  356    [ not(equals(Equals_Param4, l3)),
  357      not(equals(Equals_Param4, l2)),
  358      not(equals(Equals_Param4, l2)),
  359      adjacent(Equals_Param4, Equals_Param5)
  360    ]).
  361axiom(equals(Equals_Param4, l1),
  362   
  363    [ not(equals(Equals_Param5, l2)),
  364      not(equals(Equals_Param4, l2)),
  365      not(equals(Equals_Param4, l2)),
  366      adjacent(Equals_Param4, Equals_Param5)
  367    ]).
  368axiom(equals(Equals_Param4, l1),
  369   
  370    [ not(equals(Equals_Param4, l3)),
  371      not(equals(Equals_Param5, l3)),
  372      not(equals(Equals_Param4, l2)),
  373      adjacent(Equals_Param4, Equals_Param5)
  374    ]).
  375axiom(equals(Equals_Param4, l1),
  376   
  377    [ not(equals(Equals_Param5, l2)),
  378      not(equals(Equals_Param5, l3)),
  379      not(equals(Equals_Param4, l2)),
  380      adjacent(Equals_Param4, Equals_Param5)
  381    ]).
  382axiom(equals(Equals_Param4, l1),
  383   
  384    [ not(equals(Equals_Param4, l3)),
  385      not(equals(Equals_Param4, l2)),
  386      not(equals(Equals_Param5, l1)),
  387      adjacent(Equals_Param4, Equals_Param5)
  388    ]).
  389axiom(equals(Equals_Param4, l1),
  390   
  391    [ not(equals(Equals_Param5, l2)),
  392      not(equals(Equals_Param4, l2)),
  393      not(equals(Equals_Param5, l1)),
  394      adjacent(Equals_Param4, Equals_Param5)
  395    ]).
  396axiom(equals(Equals_Param4, l1),
  397   
  398    [ not(equals(Equals_Param4, l3)),
  399      not(equals(Equals_Param5, l3)),
  400      not(equals(Equals_Param5, l1)),
  401      adjacent(Equals_Param4, Equals_Param5)
  402    ]).
  403axiom(equals(Equals_Param4, l1),
  404   
  405    [ not(equals(Equals_Param5, l2)),
  406      not(equals(Equals_Param5, l3)),
  407      not(equals(Equals_Param5, l1)),
  408      adjacent(Equals_Param4, Equals_Param5)
  409    ]).
  410
  411 /*  equals(Equals_Param6, l2) :-
  412       ( (   not(equals(Equals_Param7, l2))
  413         ;   not(equals(Equals_Param6, l1))
  414         ),
  415         (   not(equals(Equals_Param7, l2))
  416         ;   not(equals(Equals_Param6, l3))
  417         ),
  418         (   not(equals(Equals_Param7, l3))
  419         ;   not(equals(Equals_Param6, l2))
  420         )
  421       ),
  422       adjacent(Equals_Param7, Equals_Param6).
  423 */
  424axiom(equals(Equals_Param6, l2),
  425   
  426    [ not(equals(Equals_Param7, l3)),
  427      not(equals(Equals_Param7, l2)),
  428      not(equals(Equals_Param7, l2)),
  429      adjacent(Equals_Param7, Equals_Param6)
  430    ]).
  431axiom(equals(Equals_Param6, l2),
  432   
  433    [ not(equals(Equals_Param6, l2)),
  434      not(equals(Equals_Param7, l2)),
  435      not(equals(Equals_Param7, l2)),
  436      adjacent(Equals_Param7, Equals_Param6)
  437    ]).
  438axiom(equals(Equals_Param6, l2),
  439   
  440    [ not(equals(Equals_Param7, l3)),
  441      not(equals(Equals_Param6, l3)),
  442      not(equals(Equals_Param7, l2)),
  443      adjacent(Equals_Param7, Equals_Param6)
  444    ]).
  445axiom(equals(Equals_Param6, l2),
  446   
  447    [ not(equals(Equals_Param6, l2)),
  448      not(equals(Equals_Param6, l3)),
  449      not(equals(Equals_Param7, l2)),
  450      adjacent(Equals_Param7, Equals_Param6)
  451    ]).
  452axiom(equals(Equals_Param6, l2),
  453   
  454    [ not(equals(Equals_Param7, l3)),
  455      not(equals(Equals_Param7, l2)),
  456      not(equals(Equals_Param6, l1)),
  457      adjacent(Equals_Param7, Equals_Param6)
  458    ]).
  459axiom(equals(Equals_Param6, l2),
  460   
  461    [ not(equals(Equals_Param6, l2)),
  462      not(equals(Equals_Param7, l2)),
  463      not(equals(Equals_Param6, l1)),
  464      adjacent(Equals_Param7, Equals_Param6)
  465    ]).
  466axiom(equals(Equals_Param6, l2),
  467   
  468    [ not(equals(Equals_Param7, l3)),
  469      not(equals(Equals_Param6, l3)),
  470      not(equals(Equals_Param6, l1)),
  471      adjacent(Equals_Param7, Equals_Param6)
  472    ]).
  473axiom(equals(Equals_Param6, l2),
  474   
  475    [ not(equals(Equals_Param6, l2)),
  476      not(equals(Equals_Param6, l3)),
  477      not(equals(Equals_Param6, l1)),
  478      adjacent(Equals_Param7, Equals_Param6)
  479    ]).
  480
  481 /*  equals(Equals_Param8, l2) :-
  482       ( (   not(equals(Equals_Param8, l2))
  483         ;   not(equals(Equals_Param9, l3))
  484         ),
  485         (   not(equals(Equals_Param8, l3))
  486         ;   not(equals(Equals_Param9, l2))
  487         )
  488       ),
  489       (   not(equals(Equals_Param8, l1))
  490       ;   not(equals(Equals_Param9, l2))
  491       ),
  492       adjacent(Equals_Param8, Equals_Param9).
  493 */
  494axiom(equals(Equals_Param8, l2),
  495   
  496    [ not(equals(Equals_Param8, l1)),
  497      not(equals(Equals_Param8, l3)),
  498      not(equals(Equals_Param8, l2)),
  499      adjacent(Equals_Param8, Equals_Param9)
  500    ]).
  501axiom(equals(Equals_Param8, l2),
  502   
  503    [ not(equals(Equals_Param9, l2)),
  504      not(equals(Equals_Param8, l3)),
  505      not(equals(Equals_Param8, l2)),
  506      adjacent(Equals_Param8, Equals_Param9)
  507    ]).
  508axiom(equals(Equals_Param8, l2),
  509   
  510    [ not(equals(Equals_Param8, l1)),
  511      not(equals(Equals_Param9, l2)),
  512      not(equals(Equals_Param8, l2)),
  513      adjacent(Equals_Param8, Equals_Param9)
  514    ]).
  515axiom(equals(Equals_Param8, l2),
  516   
  517    [ not(equals(Equals_Param9, l2)),
  518      not(equals(Equals_Param9, l2)),
  519      not(equals(Equals_Param8, l2)),
  520      adjacent(Equals_Param8, Equals_Param9)
  521    ]).
  522axiom(equals(Equals_Param8, l2),
  523   
  524    [ not(equals(Equals_Param8, l1)),
  525      not(equals(Equals_Param8, l3)),
  526      not(equals(Equals_Param9, l3)),
  527      adjacent(Equals_Param8, Equals_Param9)
  528    ]).
  529axiom(equals(Equals_Param8, l2),
  530   
  531    [ not(equals(Equals_Param9, l2)),
  532      not(equals(Equals_Param8, l3)),
  533      not(equals(Equals_Param9, l3)),
  534      adjacent(Equals_Param8, Equals_Param9)
  535    ]).
  536axiom(equals(Equals_Param8, l2),
  537   
  538    [ not(equals(Equals_Param8, l1)),
  539      not(equals(Equals_Param9, l2)),
  540      not(equals(Equals_Param9, l3)),
  541      adjacent(Equals_Param8, Equals_Param9)
  542    ]).
  543axiom(equals(Equals_Param8, l2),
  544   
  545    [ not(equals(Equals_Param9, l2)),
  546      not(equals(Equals_Param9, l2)),
  547      not(equals(Equals_Param9, l3)),
  548      adjacent(Equals_Param8, Equals_Param9)
  549    ]).
  550
  551 /*  equals(Equals_Param10, l1) :-
  552       ( (   not(equals(Equals_Param11, l2))
  553         ;   not(equals(Equals_Param10, l3))
  554         ),
  555         (   not(equals(Equals_Param11, l3))
  556         ;   not(equals(Equals_Param10, l2))
  557         )
  558       ),
  559       (   not(equals(Equals_Param11, l1))
  560       ;   not(equals(Equals_Param10, l2))
  561       ),
  562       adjacent(Equals_Param11, Equals_Param10).
  563 */
  564axiom(equals(Equals_Param10, l1),
  565   
  566    [ not(equals(Equals_Param11, l1)),
  567      not(equals(Equals_Param11, l3)),
  568      not(equals(Equals_Param11, l2)),
  569      adjacent(Equals_Param11, Equals_Param10)
  570    ]).
  571axiom(equals(Equals_Param10, l1),
  572   
  573    [ not(equals(Equals_Param10, l2)),
  574      not(equals(Equals_Param11, l3)),
  575      not(equals(Equals_Param11, l2)),
  576      adjacent(Equals_Param11, Equals_Param10)
  577    ]).
  578axiom(equals(Equals_Param10, l1),
  579   
  580    [ not(equals(Equals_Param11, l1)),
  581      not(equals(Equals_Param10, l2)),
  582      not(equals(Equals_Param11, l2)),
  583      adjacent(Equals_Param11, Equals_Param10)
  584    ]).
  585axiom(equals(Equals_Param10, l1),
  586   
  587    [ not(equals(Equals_Param10, l2)),
  588      not(equals(Equals_Param10, l2)),
  589      not(equals(Equals_Param11, l2)),
  590      adjacent(Equals_Param11, Equals_Param10)
  591    ]).
  592axiom(equals(Equals_Param10, l1),
  593   
  594    [ not(equals(Equals_Param11, l1)),
  595      not(equals(Equals_Param11, l3)),
  596      not(equals(Equals_Param10, l3)),
  597      adjacent(Equals_Param11, Equals_Param10)
  598    ]).
  599axiom(equals(Equals_Param10, l1),
  600   
  601    [ not(equals(Equals_Param10, l2)),
  602      not(equals(Equals_Param11, l3)),
  603      not(equals(Equals_Param10, l3)),
  604      adjacent(Equals_Param11, Equals_Param10)
  605    ]).
  606axiom(equals(Equals_Param10, l1),
  607   
  608    [ not(equals(Equals_Param11, l1)),
  609      not(equals(Equals_Param10, l2)),
  610      not(equals(Equals_Param10, l3)),
  611      adjacent(Equals_Param11, Equals_Param10)
  612    ]).
  613axiom(equals(Equals_Param10, l1),
  614   
  615    [ not(equals(Equals_Param10, l2)),
  616      not(equals(Equals_Param10, l2)),
  617      not(equals(Equals_Param10, l3)),
  618      adjacent(Equals_Param11, Equals_Param10)
  619    ]).
  620
  621 /*  equals(Equals_Param12, l2) :-
  622       (   not(equals(Equals_Param12, l3))
  623       ;   not(equals(Equals_Param13, l2))
  624       ),
  625       (   not(equals(Equals_Param12, l2))
  626       ;   not(equals(Equals_Param13, l1))
  627       ),
  628       (   not(equals(Equals_Param12, l1))
  629       ;   not(equals(Equals_Param13, l2))
  630       ),
  631       adjacent(Equals_Param12, Equals_Param13).
  632 */
  633axiom(equals(Equals_Param12, l2),
  634   
  635    [ not(equals(Equals_Param12, l1)),
  636      not(equals(Equals_Param12, l2)),
  637      not(equals(Equals_Param12, l3)),
  638      adjacent(Equals_Param12, Equals_Param13)
  639    ]).
  640axiom(equals(Equals_Param12, l2),
  641   
  642    [ not(equals(Equals_Param13, l2)),
  643      not(equals(Equals_Param12, l2)),
  644      not(equals(Equals_Param12, l3)),
  645      adjacent(Equals_Param12, Equals_Param13)
  646    ]).
  647axiom(equals(Equals_Param12, l2),
  648   
  649    [ not(equals(Equals_Param12, l1)),
  650      not(equals(Equals_Param13, l1)),
  651      not(equals(Equals_Param12, l3)),
  652      adjacent(Equals_Param12, Equals_Param13)
  653    ]).
  654axiom(equals(Equals_Param12, l2),
  655   
  656    [ not(equals(Equals_Param13, l2)),
  657      not(equals(Equals_Param13, l1)),
  658      not(equals(Equals_Param12, l3)),
  659      adjacent(Equals_Param12, Equals_Param13)
  660    ]).
  661axiom(equals(Equals_Param12, l2),
  662   
  663    [ not(equals(Equals_Param12, l1)),
  664      not(equals(Equals_Param12, l2)),
  665      not(equals(Equals_Param13, l2)),
  666      adjacent(Equals_Param12, Equals_Param13)
  667    ]).
  668axiom(equals(Equals_Param12, l2),
  669   
  670    [ not(equals(Equals_Param13, l2)),
  671      not(equals(Equals_Param12, l2)),
  672      not(equals(Equals_Param13, l2)),
  673      adjacent(Equals_Param12, Equals_Param13)
  674    ]).
  675axiom(equals(Equals_Param12, l2),
  676   
  677    [ not(equals(Equals_Param12, l1)),
  678      not(equals(Equals_Param13, l1)),
  679      not(equals(Equals_Param13, l2)),
  680      adjacent(Equals_Param12, Equals_Param13)
  681    ]).
  682axiom(equals(Equals_Param12, l2),
  683   
  684    [ not(equals(Equals_Param13, l2)),
  685      not(equals(Equals_Param13, l1)),
  686      not(equals(Equals_Param13, l2)),
  687      adjacent(Equals_Param12, Equals_Param13)
  688    ]).
  689
  690 /*  equals(Equals_Param14, l3) :-
  691       (   not(equals(Equals_Param15, l3))
  692       ;   not(equals(Equals_Param14, l2))
  693       ),
  694       (   not(equals(Equals_Param15, l2))
  695       ;   not(equals(Equals_Param14, l1))
  696       ),
  697       (   not(equals(Equals_Param15, l1))
  698       ;   not(equals(Equals_Param14, l2))
  699       ),
  700       adjacent(Equals_Param15, Equals_Param14).
  701 */
  702axiom(equals(Equals_Param14, l3),
  703   
  704    [ not(equals(Equals_Param15, l1)),
  705      not(equals(Equals_Param15, l2)),
  706      not(equals(Equals_Param15, l3)),
  707      adjacent(Equals_Param15, Equals_Param14)
  708    ]).
  709axiom(equals(Equals_Param14, l3),
  710   
  711    [ not(equals(Equals_Param14, l2)),
  712      not(equals(Equals_Param15, l2)),
  713      not(equals(Equals_Param15, l3)),
  714      adjacent(Equals_Param15, Equals_Param14)
  715    ]).
  716axiom(equals(Equals_Param14, l3),
  717   
  718    [ not(equals(Equals_Param15, l1)),
  719      not(equals(Equals_Param14, l1)),
  720      not(equals(Equals_Param15, l3)),
  721      adjacent(Equals_Param15, Equals_Param14)
  722    ]).
  723axiom(equals(Equals_Param14, l3),
  724   
  725    [ not(equals(Equals_Param14, l2)),
  726      not(equals(Equals_Param14, l1)),
  727      not(equals(Equals_Param15, l3)),
  728      adjacent(Equals_Param15, Equals_Param14)
  729    ]).
  730axiom(equals(Equals_Param14, l3),
  731   
  732    [ not(equals(Equals_Param15, l1)),
  733      not(equals(Equals_Param15, l2)),
  734      not(equals(Equals_Param14, l2)),
  735      adjacent(Equals_Param15, Equals_Param14)
  736    ]).
  737axiom(equals(Equals_Param14, l3),
  738   
  739    [ not(equals(Equals_Param14, l2)),
  740      not(equals(Equals_Param15, l2)),
  741      not(equals(Equals_Param14, l2)),
  742      adjacent(Equals_Param15, Equals_Param14)
  743    ]).
  744axiom(equals(Equals_Param14, l3),
  745   
  746    [ not(equals(Equals_Param15, l1)),
  747      not(equals(Equals_Param14, l1)),
  748      not(equals(Equals_Param14, l2)),
  749      adjacent(Equals_Param15, Equals_Param14)
  750    ]).
  751axiom(equals(Equals_Param14, l3),
  752   
  753    [ not(equals(Equals_Param14, l2)),
  754      not(equals(Equals_Param14, l1)),
  755      not(equals(Equals_Param14, l2)),
  756      adjacent(Equals_Param15, Equals_Param14)
  757    ]).
  758
  759 /*  equals(Equals_Param16, l3) :-
  760       (   not(equals(Equals_Param16, l2))
  761       ;   not(equals(Equals_Param17, l3))
  762       ),
  763       (   not(equals(Equals_Param16, l2))
  764       ;   not(equals(Equals_Param17, l1))
  765       ),
  766       (   not(equals(Equals_Param16, l1))
  767       ;   not(equals(Equals_Param17, l2))
  768       ),
  769       adjacent(Equals_Param16, Equals_Param17).
  770 */
  771axiom(equals(Equals_Param16, l3),
  772   
  773    [ not(equals(Equals_Param16, l1)),
  774      not(equals(Equals_Param16, l2)),
  775      not(equals(Equals_Param16, l2)),
  776      adjacent(Equals_Param16, Equals_Param17)
  777    ]).
  778axiom(equals(Equals_Param16, l3),
  779   
  780    [ not(equals(Equals_Param17, l2)),
  781      not(equals(Equals_Param16, l2)),
  782      not(equals(Equals_Param16, l2)),
  783      adjacent(Equals_Param16, Equals_Param17)
  784    ]).
  785axiom(equals(Equals_Param16, l3),
  786   
  787    [ not(equals(Equals_Param16, l1)),
  788      not(equals(Equals_Param17, l1)),
  789      not(equals(Equals_Param16, l2)),
  790      adjacent(Equals_Param16, Equals_Param17)
  791    ]).
  792axiom(equals(Equals_Param16, l3),
  793   
  794    [ not(equals(Equals_Param17, l2)),
  795      not(equals(Equals_Param17, l1)),
  796      not(equals(Equals_Param16, l2)),
  797      adjacent(Equals_Param16, Equals_Param17)
  798    ]).
  799axiom(equals(Equals_Param16, l3),
  800   
  801    [ not(equals(Equals_Param16, l1)),
  802      not(equals(Equals_Param16, l2)),
  803      not(equals(Equals_Param17, l3)),
  804      adjacent(Equals_Param16, Equals_Param17)
  805    ]).
  806axiom(equals(Equals_Param16, l3),
  807   
  808    [ not(equals(Equals_Param17, l2)),
  809      not(equals(Equals_Param16, l2)),
  810      not(equals(Equals_Param17, l3)),
  811      adjacent(Equals_Param16, Equals_Param17)
  812    ]).
  813axiom(equals(Equals_Param16, l3),
  814   
  815    [ not(equals(Equals_Param16, l1)),
  816      not(equals(Equals_Param17, l1)),
  817      not(equals(Equals_Param17, l3)),
  818      adjacent(Equals_Param16, Equals_Param17)
  819    ]).
  820axiom(equals(Equals_Param16, l3),
  821   
  822    [ not(equals(Equals_Param17, l2)),
  823      not(equals(Equals_Param17, l1)),
  824      not(equals(Equals_Param17, l3)),
  825      adjacent(Equals_Param16, Equals_Param17)
  826    ]).
  827
  828 /*  equals(Equals_Param18, l2) :-
  829       (   not(equals(Equals_Param19, l2))
  830       ;   not(equals(Equals_Param18, l3))
  831       ),
  832       (   not(equals(Equals_Param19, l2))
  833       ;   not(equals(Equals_Param18, l1))
  834       ),
  835       (   not(equals(Equals_Param19, l1))
  836       ;   not(equals(Equals_Param18, l2))
  837       ),
  838       adjacent(Equals_Param19, Equals_Param18).
  839 */
  840axiom(equals(Equals_Param18, l2),
  841   
  842    [ not(equals(Equals_Param19, l1)),
  843      not(equals(Equals_Param19, l2)),
  844      not(equals(Equals_Param19, l2)),
  845      adjacent(Equals_Param19, Equals_Param18)
  846    ]).
  847axiom(equals(Equals_Param18, l2),
  848   
  849    [ not(equals(Equals_Param18, l2)),
  850      not(equals(Equals_Param19, l2)),
  851      not(equals(Equals_Param19, l2)),
  852      adjacent(Equals_Param19, Equals_Param18)
  853    ]).
  854axiom(equals(Equals_Param18, l2),
  855   
  856    [ not(equals(Equals_Param19, l1)),
  857      not(equals(Equals_Param18, l1)),
  858      not(equals(Equals_Param19, l2)),
  859      adjacent(Equals_Param19, Equals_Param18)
  860    ]).
  861axiom(equals(Equals_Param18, l2),
  862   
  863    [ not(equals(Equals_Param18, l2)),
  864      not(equals(Equals_Param18, l1)),
  865      not(equals(Equals_Param19, l2)),
  866      adjacent(Equals_Param19, Equals_Param18)
  867    ]).
  868axiom(equals(Equals_Param18, l2),
  869   
  870    [ not(equals(Equals_Param19, l1)),
  871      not(equals(Equals_Param19, l2)),
  872      not(equals(Equals_Param18, l3)),
  873      adjacent(Equals_Param19, Equals_Param18)
  874    ]).
  875axiom(equals(Equals_Param18, l2),
  876   
  877    [ not(equals(Equals_Param18, l2)),
  878      not(equals(Equals_Param19, l2)),
  879      not(equals(Equals_Param18, l3)),
  880      adjacent(Equals_Param19, Equals_Param18)
  881    ]).
  882axiom(equals(Equals_Param18, l2),
  883   
  884    [ not(equals(Equals_Param19, l1)),
  885      not(equals(Equals_Param18, l1)),
  886      not(equals(Equals_Param18, l3)),
  887      adjacent(Equals_Param19, Equals_Param18)
  888    ]).
  889axiom(equals(Equals_Param18, l2),
  890   
  891    [ not(equals(Equals_Param18, l2)),
  892      not(equals(Equals_Param18, l1)),
  893      not(equals(Equals_Param18, l3)),
  894      adjacent(Equals_Param19, Equals_Param18)
  895    ]).
  896
  897
  898% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:86
  899% HoldsAt(At(O1,L1),0).
  900axiom(initially(at(o1, l1)),
  901    []).
  902
  903
  904% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:87
  905% [object]
  906 % !HoldsAt(At(object,L3),0).
  907 %  not(initially(at(Object,l3))).
  908axiom(not(initially(at(At_Param, l3))),
  909    []).
  910
  911
  912% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:89
  913% [object]
  914 % !HoldsAt(At(object,L1),1).
  915 %  not(holds_at(at(Object,l1),1)).
  916axiom(not(holds_at(at(At_Param, l1), start)),
  917    [b(t, start), ignore(t+1=start)]).
  918
  919
  920% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:90
  921% [object]
  922 % !HoldsAt(At(object,L3),1).
  923 %  not(holds_at(at(Object,l3),1)).
  924axiom(not(holds_at(at(At_Param, l3), start)),
  925    [b(t, start), ignore(t+1=start)]).
  926
  927
  928% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:92
  929% HoldsAt(At(O2,L3),2).
  930holds_at(at(o2,l3),2).
  931
  932
  933% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:93
  934% [object]
  935 % !HoldsAt(At(object,L1),2).
  936 %  not(holds_at(at(Object,l1),2)).
  937axiom(not(holds_at(at(At_Param, l1), t2)),
  938    [b(t, t2), ignore(t+2=t2)]).
  939
  940
  941% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:95
  942%; ADDED:
  943% [object,location1,location2,time]
  944% Happens(Move(object,location1,location2),time) ->
  945% HoldsAt(At(object,location1),time) &
  946% Adjacent(location1,location2).
  947% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:99
  948axiom(requires(move(Object, Location1, Location2), Time),
  949   
  950    [ holds_at(at(Object, Location1), Time),
  951      adjacent(Location1, Location2)
  952    ]).
  953
  954
  955% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:101
  956% [object1,object2,location1,location2,time]
  957% Equal(object1,object2) &
  958% Happens(Move(object1,location1,location2),time) ->
  959% Happens(Move(object2,location1,location2),time).
  960% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:104
  961axiom(happens(move(Object2, Location1, Location2), Time),
  962   
  963    [ equal(Object1, Object2),
  964      happens(move(Object1, Location1, Location2), Time)
  965    ]).
  966
  967% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:106
  968% range time 0 2
  969% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:107
  970==> range(time,0,2).
  971
  972% range offset 1 1
  973% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/OneScreen.e:108
  974==> range(offset,1,1).
  975%; End of file.