1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/Mueller2006/Chapter10/TwoScreens.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, L4, L5
   46==> t(location,l1).
   47==> t(location,l2).
   48==> t(location,l3).
   49==> t(location,l4).
   50==> t(location,l5).
   51
   52% predicate Adjacent(location,location)
   53 %  predicate(adjacent(location,location)).
   54==> mpred_prop(adjacent(location,location),predicate).
   55==> meta_argtypes(adjacent(location,location)).
   56
   57% predicate Equal(object,object)
   58 %  predicate(equal(object,object)).
   59==> mpred_prop(equal(object,object),predicate).
   60==> meta_argtypes(equal(object,object)).
   61
   62% fluent At(object,location)
   63 %  fluent(at(object,location)).
   64==> mpred_prop(at(object,location),fluent).
   65==> meta_argtypes(at(object,location)).
   66
   67% event Move(object,location,location)
   68 %  event(move(object,location,location)).
   69==> mpred_prop(move(object,location,location),event).
   70==> meta_argtypes(move(object,location,location)).
   71
   72
   73% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:42
   74%; Sigma
   75% [object,location1,location2,time]
   76% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:45
   77% HoldsAt(At(object,location1),time) &
   78% Adjacent(location1,location2) ->
   79% Initiates(Move(object,location1,location2),At(object,location2),time).
   80% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:47
   81axiom(initiates(move(Object, Location1, Location2), at(Object, Location2), Time),
   82   
   83    [ holds_at(at(Object, Location1), Time),
   84      adjacent(Location1, Location2)
   85    ]).
   86
   87
   88% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:49
   89% [object,location1,location2,time]
   90% HoldsAt(At(object,location1),time) &
   91% Adjacent(location1,location2) ->
   92% Terminates(Move(object,location1,location2),At(object,location1),time).
   93% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:52
   94axiom(terminates(move(Object, Location1, Location2), at(Object, Location1), Time),
   95   
   96    [ holds_at(at(Object, Location1), Time),
   97      adjacent(Location1, Location2)
   98    ]).
   99
  100
  101% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:54
  102%; Psi
  103% [object,location1,location2,time]
  104% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:57
  105% HoldsAt(At(object,location1),time) &
  106% HoldsAt(At(object,location2),time) ->
  107% location1=location2.
  108% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:59
  109axiom(Location1=Location2,
  110   
  111    [ holds_at(at(Object, Location1), Time),
  112      holds_at(at(Object, Location2), Time)
  113    ]).
  114
  115
  116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:61
  117% [object,time]
  118% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:62
  119% {location} % HoldsAt(At(object,location),time).
  120
  121 /*  exists([Location],
  122          holds_at(at(Object,Location),Time)).
  123 */
  124
  125 /*  holds_at(at(At_Param, Location4), Time5) :-
  126       some(Location4, '$kolem_Fn_2'(At_Param, Time5)).
  127 */
  128axiom(holds_at(at(At_Param, Location4), Time5),
  129    [some(Location4, '$kolem_Fn_2'(At_Param, Time5))]).
  130
  131 /*  not(some(Location7, '$kolem_Fn_2'(Fn_2_Param, Time8))) :-
  132       not(holds_at(at(Fn_2_Param, Location7), Time8)).
  133 */
  134axiom(not(some(Location7, '$kolem_Fn_2'(Fn_2_Param, Time8))),
  135    [not(holds_at(at(Fn_2_Param, Location7), Time8))]).
  136
  137
  138% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:64
  139% [object1,object2,location,time]
  140% HoldsAt(At(object1,location),time) &
  141% HoldsAt(At(object2,location),time) ->
  142% Equal(object1,object2).
  143% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:67
  144axiom(equal(Object1, Object2),
  145   
  146    [ holds_at(at(Object1, Location), Time),
  147      holds_at(at(Object2, Location), Time)
  148    ]).
  149
  150
  151% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:69
  152% [location1, location2]
  153% Adjacent(location1,location2) <->
  154% Adjacent(location2,location1).
  155
  156 /*  adjacent(Location1, Location2) <->
  157       adjacent(Location2, Location1).
  158 */
  159% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:71
  160axiom(adjacent(Location1, Location2),
  161    [adjacent(Location2, Location1)]).
  162axiom(adjacent(Location2, Location1),
  163    [adjacent(Location1, Location2)]).
  164
  165
  166% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:73
  167% [object1,object2]
  168% Equal(object1,object2) <->
  169% Equal(object2,object1).
  170
  171 /*  equal(Object1, Object2) <->
  172       equal(Object2, Object1).
  173 */
  174% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:75
  175axiom(equal(Object1, Object2),
  176    [equal(Object2, Object1)]).
  177axiom(equal(Object2, Object1),
  178    [equal(Object1, Object2)]).
  179
  180
  181% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:77
  182%; Gamma
  183% [location1,location2]
  184% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:80
  185% Adjacent(location1,location2) <->
  186% (location1=L1 & location2=L2) |
  187% (location1=L2 & location2=L1) |
  188% (location1=L2 & location2=L3) |
  189% (location1=L3 & location2=L2) |
  190% (location1=L3 & location2=L4) |
  191% (location1=L4 & location2=L3) |
  192% (location1=L4 & location2=L5) |
  193% (location1=L5 & location2=L4).
  194
  195 /*  adjacent(Location1, Location2) <->
  196       (   Location1=l1,
  197           Location2=l2
  198       ;   Location1=l2,
  199           Location2=l1
  200       ;   Location1=l2,
  201           Location2=l3
  202       ;   Location1=l3,
  203           Location2=l2
  204       ;   Location1=l3,
  205           Location2=l4
  206       ;   Location1=l4,
  207           Location2=l3
  208       ;   Location1=l4,
  209           Location2=l5
  210       ;   Location1=l5,
  211           Location2=l4
  212       ).
  213 */
  214% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:88
  215axiom(adjacent(Location1, Location2),
  216    [equals(Location1, l1), equals(Location2, l2)]).
  217axiom(adjacent(Location1, Location2),
  218    [equals(Location1, l2), equals(Location2, l1)]).
  219axiom(adjacent(Location1, Location2),
  220    [equals(Location1, l2), equals(Location2, l3)]).
  221axiom(adjacent(Location1, Location2),
  222    [equals(Location1, l3), equals(Location2, l2)]).
  223axiom(adjacent(Location1, Location2),
  224    [equals(Location1, l3), equals(Location2, l4)]).
  225axiom(adjacent(Location1, Location2),
  226    [equals(Location1, l4), equals(Location2, l3)]).
  227axiom(adjacent(Location1, Location2),
  228    [equals(Location1, l4), equals(Location2, l5)]).
  229axiom(adjacent(Location1, Location2),
  230    [equals(Location1, l5), equals(Location2, l4)]).
  231
  232 /*   if(adjacent(Location1, Location2),
  233          (Location1=l1, Location2=l2;Location1=l2, Location2=l1;Location1=l2, Location2=l3;Location1=l3, Location2=l2;Location1=l3, Location2=l4;Location1=l4, Location2=l3;Location1=l4, Location2=l5;Location1=l5, Location2=l4)).
  234 */
  235todo_later(if(adjacent(Location1, Location2),  (Location1=l1, Location2=l2;Location1=l2, Location2=l1;Location1=l2, Location2=l3;Location1=l3, Location2=l2;Location1=l3, Location2=l4;Location1=l4, Location2=l3;Location1=l4, Location2=l5;Location1=l5, Location2=l4)), [(not(adjacent(Adjacent_Param, Equals_Param)):-(not(equals(Adjacent_Param, l1));not(equals(Equals_Param, l2))), (not(equals(Adjacent_Param, l2));not(equals(Equals_Param, l1))), (not(equals(Adjacent_Param, l2));not(equals(Equals_Param, l3))), (not(equals(Adjacent_Param, l3));not(equals(Equals_Param, l2))), (not(equals(Adjacent_Param, l3));not(equals(Equals_Param, l4))), (not(equals(Adjacent_Param, l4));not(equals(Equals_Param, l3))), (not(equals(Adjacent_Param, l4));not(equals(Equals_Param, l5))), (not(equals(Adjacent_Param, l5));not(equals(Equals_Param, l4)))),  (equals(Equals_Param4, l1):-((not(equals(Equals_Param4, l2));not(equals(Equals_Param5, l1))), (not(equals(Equals_Param4, l2));not(equals(Equals_Param5, l3))), (not(equals(Equals_Param4, l3));not(equals(Equals_Param5, l2))), (not(equals(Equals_Param4, l3));not(equals(Equals_Param5, l4))), (not(equals(Equals_Param4, l4));not(equals(Equals_Param5, l3))), (not(equals(Equals_Param4, l4));not(equals(Equals_Param5, l5))), (not(equals(Equals_Param4, l5));not(equals(Equals_Param5, l4)))), adjacent(Equals_Param4, Equals_Param5)),  (equals(Equals_Param6, l2):-((not(equals(Equals_Param7, l2));not(equals(Equals_Param6, l1))), (not(equals(Equals_Param7, l2));not(equals(Equals_Param6, l3))), (not(equals(Equals_Param7, l3));not(equals(Equals_Param6, l2))), (not(equals(Equals_Param7, l3));not(equals(Equals_Param6, l4))), (not(equals(Equals_Param7, l4));not(equals(Equals_Param6, l3))), (not(equals(Equals_Param7, l4));not(equals(Equals_Param6, l5))), (not(equals(Equals_Param7, l5));not(equals(Equals_Param6, l4)))), adjacent(Equals_Param7, Equals_Param6)),  (equals(Equals_Param8, l2):-((not(equals(Equals_Param8, l2));not(equals(Equals_Param9, l3))), (not(equals(Equals_Param8, l3));not(equals(Equals_Param9, l2))), (not(equals(Equals_Param8, l3));not(equals(Equals_Param9, l4))), (not(equals(Equals_Param8, l4));not(equals(Equals_Param9, l3))), (not(equals(Equals_Param8, l4));not(equals(Equals_Param9, l5))), (not(equals(Equals_Param8, l5));not(equals(Equals_Param9, l4)))), (not(equals(Equals_Param8, l1));not(equals(Equals_Param9, l2))), adjacent(Equals_Param8, Equals_Param9)),  (equals(Equals_Param10, l1):-((not(equals(Equals_Param11, l2));not(equals(Equals_Param10, l3))), (not(equals(Equals_Param11, l3));not(equals(Equals_Param10, l2))), (not(equals(Equals_Param11, l3));not(equals(Equals_Param10, l4))), (not(equals(Equals_Param11, l4));not(equals(Equals_Param10, l3))), (not(equals(Equals_Param11, l4));not(equals(Equals_Param10, l5))), (not(equals(Equals_Param11, l5));not(equals(Equals_Param10, l4)))), (not(equals(Equals_Param11, l1));not(equals(Equals_Param10, l2))), adjacent(Equals_Param11, Equals_Param10)),  (equals(Equals_Param12, l2):-((not(equals(Equals_Param12, l3));not(equals(Equals_Param13, l2))), (not(equals(Equals_Param12, l3));not(equals(Equals_Param13, l4))), (not(equals(Equals_Param12, l4));not(equals(Equals_Param13, l3))), (not(equals(Equals_Param12, l4));not(equals(Equals_Param13, l5))), (not(equals(Equals_Param12, l5));not(equals(Equals_Param13, l4)))), (not(equals(Equals_Param12, l2));not(equals(Equals_Param13, l1))), (not(equals(Equals_Param12, l1));not(equals(Equals_Param13, l2))), adjacent(Equals_Param12, Equals_Param13)),  (equals(Equals_Param14, l3):-((not(equals(Equals_Param15, l3));not(equals(Equals_Param14, l2))), (not(equals(Equals_Param15, l3));not(equals(Equals_Param14, l4))), (not(equals(Equals_Param15, l4));not(equals(Equals_Param14, l3))), (not(equals(Equals_Param15, l4));not(equals(Equals_Param14, l5))), (not(equals(Equals_Param15, l5));not(equals(Equals_Param14, l4)))), (not(equals(Equals_Param15, l2));not(equals(Equals_Param14, l1))), (not(equals(Equals_Param15, l1));not(equals(Equals_Param14, l2))), adjacent(Equals_Param15, Equals_Param14)),  (equals(Equals_Param16, l3):-((not(equals(Equals_Param16, l3));not(equals(Equals_Param17, l4))), (not(equals(Equals_Param16, l4));not(equals(Equals_Param17, l3))), (not(equals(Equals_Param16, l4));not(equals(Equals_Param17, l5))), (not(equals(Equals_Param16, l5));not(equals(Equals_Param17, l4)))), (not(equals(Equals_Param16, l2));not(equals(Equals_Param17, l3))), (not(equals(Equals_Param16, l2));not(equals(Equals_Param17, l1))), (not(equals(Equals_Param16, l1));not(equals(Equals_Param17, l2))), adjacent(Equals_Param16, Equals_Param17)),  (equals(Equals_Param18, l2):-((not(equals(Equals_Param19, l3));not(equals(Equals_Param18, l4))), (not(equals(Equals_Param19, l4));not(equals(Equals_Param18, l3))), (not(equals(Equals_Param19, l4));not(equals(Equals_Param18, l5))), (not(equals(Equals_Param19, l5));not(equals(Equals_Param18, l4)))), (not(equals(Equals_Param19, l2));not(equals(Equals_Param18, l3))), (not(equals(Equals_Param19, l2));not(equals(Equals_Param18, l1))), (not(equals(Equals_Param19, l1));not(equals(Equals_Param18, l2))), adjacent(Equals_Param19, Equals_Param18)),  (equals(Equals_Param20, l3):-((not(equals(Equals_Param20, l4));not(equals(Equals_Param21, l3))), (not(equals(Equals_Param20, l4));not(equals(Equals_Param21, l5))), (not(equals(Equals_Param20, l5));not(equals(Equals_Param21, l4)))), (not(equals(Equals_Param20, l3));not(equals(Equals_Param21, l2))), (not(equals(Equals_Param20, l2));not(equals(Equals_Param21, l3))), (not(equals(Equals_Param20, l2));not(equals(Equals_Param21, l1))), (not(equals(Equals_Param20, l1));not(equals(Equals_Param21, l2))), adjacent(Equals_Param20, Equals_Param21)),  (equals(Equals_Param22, l4):-((not(equals(Equals_Param23, l4));not(equals(Equals_Param22, l3))), (not(equals(Equals_Param23, l4));not(equals(Equals_Param22, l5))), (not(equals(Equals_Param23, l5));not(equals(Equals_Param22, l4)))), (not(equals(Equals_Param23, l3));not(equals(Equals_Param22, l2))), (not(equals(Equals_Param23, l2));not(equals(Equals_Param22, l3))), (not(equals(Equals_Param23, l2));not(equals(Equals_Param22, l1))), (not(equals(Equals_Param23, l1));not(equals(Equals_Param22, l2))), adjacent(Equals_Param23, Equals_Param22)),  (equals(Equals_Param24, l4):-((not(equals(Equals_Param24, l4));not(equals(Equals_Param25, l5))), (not(equals(Equals_Param24, l5));not(equals(Equals_Param25, l4)))), (not(equals(Equals_Param24, l3));not(equals(Equals_Param25, l4))), (not(equals(Equals_Param24, l3));not(equals(Equals_Param25, l2))), (not(equals(Equals_Param24, l2));not(equals(Equals_Param25, l3))), (not(equals(Equals_Param24, l2));not(equals(Equals_Param25, l1))), (not(equals(Equals_Param24, l1));not(equals(Equals_Param25, l2))), adjacent(Equals_Param24, Equals_Param25)),  (equals(Equals_Param26, l3):-((not(equals(Equals_Param27, l4));not(equals(Equals_Param26, l5))), (not(equals(Equals_Param27, l5));not(equals(Equals_Param26, l4)))), (not(equals(Equals_Param27, l3));not(equals(Equals_Param26, l4))), (not(equals(Equals_Param27, l3));not(equals(Equals_Param26, l2))), (not(equals(Equals_Param27, l2));not(equals(Equals_Param26, l3))), (not(equals(Equals_Param27, l2));not(equals(Equals_Param26, l1))), (not(equals(Equals_Param27, l1));not(equals(Equals_Param26, l2))), adjacent(Equals_Param27, Equals_Param26)),  (equals(Equals_Param28, l4):-(not(equals(Equals_Param28, l5));not(equals(Equals_Param29, l4))), (not(equals(Equals_Param28, l4));not(equals(Equals_Param29, l3))), (not(equals(Equals_Param28, l3));not(equals(Equals_Param29, l4))), (not(equals(Equals_Param28, l3));not(equals(Equals_Param29, l2))), (not(equals(Equals_Param28, l2));not(equals(Equals_Param29, l3))), (not(equals(Equals_Param28, l2));not(equals(Equals_Param29, l1))), (not(equals(Equals_Param28, l1));not(equals(Equals_Param29, l2))), adjacent(Equals_Param28, Equals_Param29)),  (equals(Equals_Param30, l5):-(not(equals(Equals_Param31, l5));not(equals(Equals_Param30, l4))), (not(equals(Equals_Param31, l4));not(equals(Equals_Param30, l3))), (not(equals(Equals_Param31, l3));not(equals(Equals_Param30, l4))), (not(equals(Equals_Param31, l3));not(equals(Equals_Param30, l2))), (not(equals(Equals_Param31, l2));not(equals(Equals_Param30, l3))), (not(equals(Equals_Param31, l2));not(equals(Equals_Param30, l1))), (not(equals(Equals_Param31, l1));not(equals(Equals_Param30, l2))), adjacent(Equals_Param31, Equals_Param30)),  (equals(Equals_Param32, l5):-(not(equals(Equals_Param32, l4));not(equals(Equals_Param33, l5))), (not(equals(Equals_Param32, l4));not(equals(Equals_Param33, l3))), (not(equals(Equals_Param32, l3));not(equals(Equals_Param33, l4))), (not(equals(Equals_Param32, l3));not(equals(Equals_Param33, l2))), (not(equals(Equals_Param32, l2));not(equals(Equals_Param33, l3))), (not(equals(Equals_Param32, l2));not(equals(Equals_Param33, l1))), (not(equals(Equals_Param32, l1));not(equals(Equals_Param33, l2))), adjacent(Equals_Param32, Equals_Param33)),  (equals(Equals_Param34, l4):-(not(equals(Equals_Param35, l4));not(equals(Equals_Param34, l5))), (not(equals(Equals_Param35, l4));not(equals(Equals_Param34, l3))), (not(equals(Equals_Param35, l3));not(equals(Equals_Param34, l4))), (not(equals(Equals_Param35, l3));not(equals(Equals_Param34, l2))), (not(equals(Equals_Param35, l2));not(equals(Equals_Param34, l3))), (not(equals(Equals_Param35, l2));not(equals(Equals_Param34, l1))), (not(equals(Equals_Param35, l1));not(equals(Equals_Param34, l2))), adjacent(Equals_Param35, Equals_Param34))], 17==17).
  236
  237
  238% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:90
  239% HoldsAt(At(O1,L1),0).
  240axiom(initially(at(o1, l1)),
  241    []).
  242
  243
  244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:91
  245% [object]
  246 % !HoldsAt(At(object,L5),0).
  247 %  not(initially(at(Object,l5))).
  248axiom(not(initially(at(At_Param, l5))),
  249    []).
  250
  251
  252% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:93
  253% HoldsAt(At(O2,L5),4).
  254holds_at(at(o2,l5),4).
  255
  256
  257% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:94
  258% [object]
  259 % !HoldsAt(At(object,L1),4).
  260 %  not(holds_at(at(Object,l1),4)).
  261axiom(not(holds_at(at(At_Param, l1), t4)),
  262    [b(t, t4), ignore(t+4=t4)]).
  263
  264
  265% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:96
  266% [object,time]
  267 % !HoldsAt(At(object,L3),time).
  268 %  not(holds_at(at(Object,l3),Time)).
  269axiom(not(holds_at(at(At_Param, l3), Time2)),
  270    []).
  271
  272
  273% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:98
  274%; ADDED:
  275% [object,location1,location2,time]
  276% Happens(Move(object,location1,location2),time) ->
  277% HoldsAt(At(object,location1),time) &
  278% Adjacent(location1,location2).
  279% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:102
  280axiom(requires(move(Object, Location1, Location2), Time),
  281   
  282    [ holds_at(at(Object, Location1), Time),
  283      adjacent(Location1, Location2)
  284    ]).
  285
  286
  287% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:104
  288% [object1,object2,location1,location2,time]
  289% Equal(object1,object2) &
  290% Happens(Move(object1,location1,location2),time) ->
  291% Happens(Move(object2,location1,location2),time).
  292% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:107
  293axiom(happens(move(Object2, Location1, Location2), Time),
  294   
  295    [ equal(Object1, Object2),
  296      happens(move(Object1, Location1, Location2), Time)
  297    ]).
  298
  299
  300% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:109
  301%; entailed: !Equal(O1,O2).
  302
  303% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:111
  304% range time 0 4
  305% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:112
  306==> range(time,0,4).
  307
  308% range offset 1 1
  309% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter10/TwoScreens.e:113
  310==> range(offset,1,1).
  311%; End of file.