1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'ecnet/RTSpace.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%; RTSpace: room-scale topological space
   15%;
   16%; We use topological and metric representations of space,
   17%; at two levels of granularity---room-scale and object-scale.
   18%; The RTSpace representation deals with topological space at
   19%; the scale of rooms and outdoor locations.
   20%; This representation of space consists of locations, which
   21%; are connected by portals. There are two types of locations:
   22%; rooms and outside areas (outsides).
   23%;
   24%; object is at location.
   25
   26% fluent At(object,location)
   27 %  fluent(at(object,location)).
   28==> mpred_prop(at(object,location),fluent).
   29==> meta_argtypes(at(object,location)).
   30
   31% manualrelease At
   32manualrelease(at).
   33
   34
   35% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:25
   36% [object1,location,time]
   37% (
   38% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:26
   39% {object2} PartOf(object1,object2)) ->
   40% ReleasedAt(At(object1,location),time).
   41
   42 /*  exists([Object2],
   43          if(partOf(Object1,Object2),
   44   	  releasedAt(at(Object1,Location),Time))).
   45 */
   46
   47 /*  releasedAt(at(At_Param, Location5), Time6) :-
   48       partOf(At_Param, Some_Param),
   49       some(Some_Param,
   50            '$kolem_Fn_183'(At_Param, Location5, Time6)).
   51 */
   52% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:27
   53axiom(releasedAt(at(At_Param, Location5), Time6),
   54   
   55    [ partOf(At_Param, Some_Param),
   56      some(Some_Param,
   57           '$kolem_Fn_183'(At_Param, Location5, Time6))
   58    ]).
   59
   60 /*  not(partOf(PartOf_Param, Some_Param12)) :-
   61       not(releasedAt(at(PartOf_Param, Location9), Time10)),
   62       some(Some_Param12,
   63            '$kolem_Fn_183'(PartOf_Param, Location9, Time10)).
   64 */
   65axiom(not(partOf(PartOf_Param, Some_Param12)),
   66   
   67    [ not(releasedAt(at(PartOf_Param, Location9), Time10)),
   68      some(Some_Param12,
   69           '$kolem_Fn_183'(PartOf_Param, Location9, Time10))
   70    ]).
   71
   72 /*  not(some(Some_Param15, '$kolem_Fn_183'(Fn_183_Param, Location13, Time14))) :-
   73       not(releasedAt(at(Fn_183_Param, Location13), Time14)),
   74       partOf(Fn_183_Param, Some_Param15).
   75 */
   76axiom(not(some(Some_Param15, '$kolem_Fn_183'(Fn_183_Param, Location13, Time14))),
   77   
   78    [ not(releasedAt(at(Fn_183_Param, Location13), Time14)),
   79      partOf(Fn_183_Param, Some_Param15)
   80    ]).
   81
   82
   83% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:29
   84%; A state constraint says that an object
   85%; is at one location at a time:
   86% [object,location1,location2,time]
   87% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:32
   88% HoldsAt(At(object,location1),time) &
   89% HoldsAt(At(object,location2),time) ->
   90% location1=location2.
   91% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:34
   92axiom(Location1=Location2,
   93   
   94    [ holds_at(at(Object, Location1), Time),
   95      holds_at(at(Object, Location2), Time)
   96    ]).
   97
   98
   99% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:36
  100%; connectivity
  101%; Side one of portal is location.
  102
  103% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:39
  104% function Side1(portal): location
  105 %  functional_predicate(side1(portal,location)).
  106% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:40
  107==> mpred_prop(side1(portal,location),functional_predicate).
  108==> meta_argtypes(side1(portal,location)).
  109resultIsa(side1,location).
  110%; Side two of portal is location.
  111
  112% function Side2(portal): location
  113 %  functional_predicate(side2(portal,location)).
  114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:42
  115==> mpred_prop(side2(portal,location),functional_predicate).
  116==> meta_argtypes(side2(portal,location)).
  117resultIsa(side2,location).
  118%; The building of room is building.
  119
  120% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:44
  121% function BuildingOf(room): building
  122 %  functional_predicate(buildingOf(room,building)).
  123% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:45
  124==> mpred_prop(buildingOf(room,building),functional_predicate).
  125==> meta_argtypes(buildingOf(room,building)).
  126resultIsa(buildingOf,building).
  127%; object is at a location that has portal.
  128
  129% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:47
  130% fluent NearPortal(object,portal)
  131 %  fluent(nearPortal(object,portal)).
  132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:48
  133==> mpred_prop(nearPortal(object,portal),fluent).
  134==> meta_argtypes(nearPortal(object,portal)).
  135
  136% noninertial NearPortal
  137% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:49
  138==> noninertial(nearPortal).
  139%; A state constraint says that an object is near
  140%; a portal if and only if there is a location such that
  141%; the object is at the location and one of the sides
  142%; of the portal is the location:
  143% [object,portal,time]
  144% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:55
  145% HoldsAt(NearPortal(object,portal),time) <->
  146% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:56
  147% {location}% 
  148%  (Side1(portal)=location|
  149%   Side2(portal)=location) &
  150%  HoldsAt(At(object,location),time).
  151
  152 /*   exists([Location],
  153             equiv(holds_at(nearPortal(Object, Portal), Time),
  154                    ((side1(Portal)=Location;side2(Portal)=Location), holds_at(at(Object, Location), Time)))).
  155 */
  156
  157 /*  not(some(Location6, '$kolem_Fn_184'(Fn_184_Param, NearPortal_Ret, Time5))) :-
  158       (   holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  159                    Time5),
  160           (   not(equals(side1(NearPortal_Ret), Location6)),
  161               not(equals(side2(NearPortal_Ret), Location6))
  162           ;   not(holds_at(at(Fn_184_Param, Location6), Time5))
  163           )
  164       ;   not(holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  165                        Time5)),
  166           holds_at(at(Fn_184_Param, Location6), Time5),
  167           (   equals(side1(NearPortal_Ret), Location6)
  168           ;   equals(side2(NearPortal_Ret), Location6)
  169           )
  170       ).
  171 */
  172% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:59
  173axiom(not(some(Location6, '$kolem_Fn_184'(Fn_184_Param, NearPortal_Ret, Time5))),
  174   
  175    [ not(equals(side1(NearPortal_Ret), Location6)),
  176      not(equals(side2(NearPortal_Ret), Location6)),
  177      holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  178               Time5)
  179    ]).
  180axiom(not(some(Location6, '$kolem_Fn_184'(Fn_184_Param, NearPortal_Ret, Time5))),
  181   
  182    [ not(holds_at(at(Fn_184_Param, Location6), Time5)),
  183      holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  184               Time5)
  185    ]).
  186axiom(not(some(Location6, '$kolem_Fn_184'(Fn_184_Param, NearPortal_Ret, Time5))),
  187   
  188    [ equals(side1(NearPortal_Ret), Location6),
  189      not(holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  190                   Time5)),
  191      holds_at(at(Fn_184_Param, Location6), Time5)
  192    ]).
  193axiom(not(some(Location6, '$kolem_Fn_184'(Fn_184_Param, NearPortal_Ret, Time5))),
  194   
  195    [ equals(side2(NearPortal_Ret), Location6),
  196      not(holds_at(nearPortal(Fn_184_Param, NearPortal_Ret),
  197                   Time5)),
  198      holds_at(at(Fn_184_Param, Location6), Time5)
  199    ]).
  200
  201 /*  not(holds_at(nearPortal(NearPortal_Param, NearPortal_Ret12), Time9)) :-
  202       (   not(equals(side1(NearPortal_Ret12), Location10)),
  203           not(equals(side2(NearPortal_Ret12), Location10))
  204       ;   not(holds_at(at(NearPortal_Param, Location10), Time9))
  205       ),
  206       some(Location10,
  207            '$kolem_Fn_184'(NearPortal_Param,
  208                            NearPortal_Ret12,
  209                            Time9)).
  210 */
  211axiom(not(holds_at(nearPortal(NearPortal_Param, NearPortal_Ret12), Time9)),
  212   
  213    [ not(equals(side1(NearPortal_Ret12), Location10)),
  214      not(equals(side2(NearPortal_Ret12), Location10)),
  215      some(Location10,
  216           '$kolem_Fn_184'(NearPortal_Param,
  217                           NearPortal_Ret12,
  218                           Time9))
  219    ]).
  220axiom(not(holds_at(nearPortal(NearPortal_Param, NearPortal_Ret12), Time9)),
  221   
  222    [ not(holds_at(at(NearPortal_Param, Location10), Time9)),
  223      some(Location10,
  224           '$kolem_Fn_184'(NearPortal_Param,
  225                           NearPortal_Ret12,
  226                           Time9))
  227    ]).
  228
  229 /*  equals(side1(Side1_Ret), Some_Param) :-
  230       not(equals(side2(Side1_Ret), Some_Param)),
  231       holds_at(nearPortal(NearPortal_Param14, Side1_Ret),
  232                Time13),
  233       some(Some_Param,
  234            '$kolem_Fn_184'(NearPortal_Param14, Side1_Ret, Time13)).
  235 */
  236axiom(equals(side1(Side1_Ret), Some_Param),
  237   
  238    [ not(equals(side2(Side1_Ret), Some_Param)),
  239      holds_at(nearPortal(NearPortal_Param14, Side1_Ret),
  240               Time13),
  241      some(Some_Param,
  242           '$kolem_Fn_184'(NearPortal_Param14,
  243                           Side1_Ret,
  244                           Time13))
  245    ]).
  246
  247 /*  equals(side2(Side2_Ret), Some_Param19) :-
  248       not(equals(side1(Side2_Ret), Some_Param19)),
  249       holds_at(nearPortal(NearPortal_Param18, Side2_Ret),
  250                Time17),
  251       some(Some_Param19,
  252            '$kolem_Fn_184'(NearPortal_Param18, Side2_Ret, Time17)).
  253 */
  254axiom(equals(side2(Side2_Ret), Some_Param19),
  255   
  256    [ not(equals(side1(Side2_Ret), Some_Param19)),
  257      holds_at(nearPortal(NearPortal_Param18, Side2_Ret),
  258               Time17),
  259      some(Some_Param19,
  260           '$kolem_Fn_184'(NearPortal_Param18,
  261                           Side2_Ret,
  262                           Time17))
  263    ]).
  264
  265 /*  holds_at(at(At_Param, Location21), Time22) :-
  266       holds_at(nearPortal(At_Param, NearPortal_Ret24), Time22),
  267       some(Location21,
  268            '$kolem_Fn_184'(At_Param, NearPortal_Ret24, Time22)).
  269 */
  270axiom(holds_at(at(At_Param, Location21), Time22),
  271   
  272    [ holds_at(nearPortal(At_Param, NearPortal_Ret24), Time22),
  273      some(Location21,
  274           '$kolem_Fn_184'(At_Param, NearPortal_Ret24, Time22))
  275    ]).
  276
  277 /*  holds_at(nearPortal(NearPortal_Param27, NearPortal_Ret28), Time25) :-
  278       ( holds_at(at(NearPortal_Param27, Location26), Time25),
  279         (   equals(side1(NearPortal_Ret28), Location26)
  280         ;   equals(side2(NearPortal_Ret28), Location26)
  281         )
  282       ),
  283       some(Location26,
  284            '$kolem_Fn_184'(NearPortal_Param27,
  285                            NearPortal_Ret28,
  286                            Time25)).
  287 */
  288axiom(holds_at(nearPortal(NearPortal_Param27, NearPortal_Ret28), Time25),
  289   
  290    [ equals(side1(NearPortal_Ret28), Location26),
  291      holds_at(at(NearPortal_Param27, Location26), Time25),
  292      some(Location26,
  293           '$kolem_Fn_184'(NearPortal_Param27,
  294                           NearPortal_Ret28,
  295                           Time25))
  296    ]).
  297axiom(holds_at(nearPortal(NearPortal_Param27, NearPortal_Ret28), Time25),
  298   
  299    [ equals(side2(NearPortal_Ret28), Location26),
  300      holds_at(at(NearPortal_Param27, Location26), Time25),
  301      some(Location26,
  302           '$kolem_Fn_184'(NearPortal_Param27,
  303                           NearPortal_Ret28,
  304                           Time25))
  305    ]).
  306
  307 /*  not(holds_at(at(At_Param31, Location29), Time30)) :-
  308       (   equals(side1(Side1_Ret32), Location29)
  309       ;   equals(side2(Side1_Ret32), Location29)
  310       ),
  311       not(holds_at(nearPortal(At_Param31, Side1_Ret32), Time30)),
  312       some(Location29,
  313            '$kolem_Fn_184'(At_Param31, Side1_Ret32, Time30)).
  314 */
  315axiom(not(holds_at(at(At_Param31, Location29), Time30)),
  316   
  317    [ equals(side1(Side1_Ret32), Location29),
  318      not(holds_at(nearPortal(At_Param31, Side1_Ret32),
  319                   Time30)),
  320      some(Location29,
  321           '$kolem_Fn_184'(At_Param31, Side1_Ret32, Time30))
  322    ]).
  323axiom(not(holds_at(at(At_Param31, Location29), Time30)),
  324   
  325    [ equals(side2(Side1_Ret32), Location29),
  326      not(holds_at(nearPortal(At_Param31, Side1_Ret32),
  327                   Time30)),
  328      some(Location29,
  329           '$kolem_Fn_184'(At_Param31, Side1_Ret32, Time30))
  330    ]).
  331
  332 /*  not(equals(side1(Side1_Ret36), Location33)) :-
  333       holds_at(at(At_Param35, Location33), Time34),
  334       not(holds_at(nearPortal(At_Param35, Side1_Ret36), Time34)),
  335       some(Location33,
  336            '$kolem_Fn_184'(At_Param35, Side1_Ret36, Time34)).
  337 */
  338axiom(not(equals(side1(Side1_Ret36), Location33)),
  339   
  340    [ holds_at(at(At_Param35, Location33), Time34),
  341      not(holds_at(nearPortal(At_Param35, Side1_Ret36),
  342                   Time34)),
  343      some(Location33,
  344           '$kolem_Fn_184'(At_Param35, Side1_Ret36, Time34))
  345    ]).
  346
  347 /*  not(equals(side2(Side2_Ret40), Location37)) :-
  348       holds_at(at(At_Param39, Location37), Time38),
  349       not(holds_at(nearPortal(At_Param39, Side2_Ret40), Time38)),
  350       some(Location37,
  351            '$kolem_Fn_184'(At_Param39, Side2_Ret40, Time38)).
  352 */
  353axiom(not(equals(side2(Side2_Ret40), Location37)),
  354   
  355    [ holds_at(at(At_Param39, Location37), Time38),
  356      not(holds_at(nearPortal(At_Param39, Side2_Ret40),
  357                   Time38)),
  358      some(Location37,
  359           '$kolem_Fn_184'(At_Param39, Side2_Ret40, Time38))
  360    ]).
  361
  362
  363% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:61
  364%; locking and unlocking doors
  365%; agent unlocks door.
  366
  367% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:64
  368% event DoorUnlock(agent,door)
  369 %  event(doorUnlock(agent,door)).
  370% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:65
  371==> mpred_prop(doorUnlock(agent,door),event).
  372==> meta_argtypes(doorUnlock(agent,door)).
  373
  374
  375% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:65
  376%; agent locks door.
  377
  378% event DoorLock(agent,door)
  379 %  event(doorLock(agent,door)).
  380% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:67
  381==> mpred_prop(doorLock(agent,door),event).
  382==> meta_argtypes(doorLock(agent,door)).
  383
  384
  385% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:67
  386%; door is unlocked.
  387
  388% fluent DoorUnlocked(door)
  389 %  fluent(doorUnlocked(door)).
  390% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:69
  391==> mpred_prop(doorUnlocked(door),fluent).
  392==> meta_argtypes(doorUnlocked(door)).
  393
  394
  395% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:70
  396%; A precondition axiom states that
  397%; for an agent to unlock a door,
  398%; the agent must be awake,
  399%; the door must not already be unlocked, and
  400%; the agent must be near the door:
  401% [agent,door,time]
  402% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:76
  403% Happens(DoorUnlock(agent,door),time) ->
  404% HoldsAt(Awake(agent),time) &
  405% !HoldsAt(DoorUnlocked(door),time) &
  406% HoldsAt(NearPortal(agent,door),time).
  407% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:79
  408axiom(requires(doorUnlock(Agent, Door), Time),
  409   
  410    [ holds_at(awake(Agent), Time),
  411      not(holds_at(doorUnlocked(Door), Time)),
  412      holds_at(nearPortal(Agent, Door), Time)
  413    ]).
  414
  415
  416% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:81
  417%; An effect axiom states that
  418%; if an agent unlocks a door,
  419%; the door will be unlocked:
  420% [agent,door,time]
  421% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:85
  422% Initiates(DoorUnlock(agent,door),DoorUnlocked(door),time).
  423axiom(initiates(doorUnlock(Agent, Door), doorUnlocked(Door), Time),
  424    []).
  425
  426
  427% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:87
  428%; A precondition axiom states that
  429%; for an agent to lock a door,
  430%; the agent must be awake,
  431%; the door must be unlocked, and
  432%; the agent must be near the door:
  433% [agent,door,time]
  434% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:93
  435% Happens(DoorLock(agent,door),time) ->
  436% HoldsAt(Awake(agent),time) &
  437% HoldsAt(DoorUnlocked(door),time) &
  438% HoldsAt(NearPortal(agent,door),time).
  439% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:96
  440axiom(requires(doorLock(Agent, Door), Time),
  441   
  442    [ holds_at(awake(Agent), Time),
  443      holds_at(doorUnlocked(Door), Time),
  444      holds_at(nearPortal(Agent, Door), Time)
  445    ]).
  446
  447
  448% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:98
  449%; An effect axiom states that
  450%; if an agent locks a door,
  451%; the door will no longer be unlocked.
  452% [agent,door,time]
  453% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:102
  454% Terminates(DoorLock(agent,door),DoorUnlocked(door),time).
  455axiom(terminates(doorLock(Agent, Door), doorUnlocked(Door), Time),
  456    []).
  457
  458
  459% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:104
  460%; A state constraint says that if a door is open,
  461%; it is unlocked:
  462% [door,time]
  463% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:107
  464% HoldsAt(DoorIsOpen(door),time) -> HoldsAt(DoorUnlocked(door),time).
  465axiom(holds_at(doorUnlocked(Door), Time),
  466    [holds_at(doorIsOpen(Door), Time)]).
  467
  468
  469% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:109
  470%; opening and closing doors
  471%; agent opens door.
  472
  473% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:112
  474% event DoorOpen(agent,door)
  475 %  event(doorOpen(agent,door)).
  476% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:113
  477==> mpred_prop(doorOpen(agent,door),event).
  478==> meta_argtypes(doorOpen(agent,door)).
  479
  480
  481% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:113
  482%; agent closes door.
  483
  484% event DoorClose(agent,door)
  485 %  event(doorClose(agent,door)).
  486% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:115
  487==> mpred_prop(doorClose(agent,door),event).
  488==> meta_argtypes(doorClose(agent,door)).
  489
  490
  491% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:115
  492%; door is open.
  493
  494% fluent DoorIsOpen(door)
  495 %  fluent(doorIsOpen(door)).
  496% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:117
  497==> mpred_prop(doorIsOpen(door),fluent).
  498==> meta_argtypes(doorIsOpen(door)).
  499
  500
  501% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:118
  502%; A precondition axiom states that
  503%; for an agent to open a door,
  504%; the agent must be awake,
  505%; the door must not already be open,
  506%; the door must be unlocked, and
  507%; the agent must be near the door:
  508% [agent,door,time]
  509% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:125
  510% Happens(DoorOpen(agent,door),time) ->
  511% HoldsAt(Awake(agent),time) &
  512% !HoldsAt(DoorIsOpen(door),time) &
  513% HoldsAt(DoorUnlocked(door),time) &
  514% HoldsAt(NearPortal(agent,door),time).
  515% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:129
  516axiom(requires(doorOpen(Agent, Door), Time),
  517   
  518    [ holds_at(awake(Agent), Time),
  519      not(holds_at(doorIsOpen(Door), Time)),
  520      holds_at(doorUnlocked(Door), Time),
  521      holds_at(nearPortal(Agent, Door), Time)
  522    ]).
  523
  524
  525% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:131
  526%; An effect axiom states that
  527%; if an agent opens a door,
  528%; the door will be open:
  529% [agent,door,time]
  530% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:135
  531% Initiates(DoorOpen(agent,door),DoorIsOpen(door),time).
  532axiom(initiates(doorOpen(Agent, Door), doorIsOpen(Door), Time),
  533    []).
  534
  535
  536% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:137
  537%; A precondition axiom states that
  538%; for an agent to close a door,
  539%; the agent must be awake,
  540%; the door must be open,
  541%; the door must be unlocked, and
  542%; the agent must be near the door:
  543% [agent,door,time]
  544% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:144
  545% Happens(DoorClose(agent,door),time) ->
  546% HoldsAt(Awake(agent),time) &
  547% HoldsAt(DoorIsOpen(door),time) &
  548% HoldsAt(DoorUnlocked(door),time) &
  549% HoldsAt(NearPortal(agent,door),time).
  550% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:148
  551axiom(requires(doorClose(Agent, Door), Time),
  552   
  553    [ holds_at(awake(Agent), Time),
  554      holds_at(doorIsOpen(Door), Time),
  555      holds_at(doorUnlocked(Door), Time),
  556      holds_at(nearPortal(Agent, Door), Time)
  557    ]).
  558
  559
  560% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:150
  561%; An effect axiom states that
  562%; if an agent closes a door,
  563%; the door will no longer be open:
  564% [agent,door,time]
  565% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:154
  566% Terminates(DoorClose(agent,door),DoorIsOpen(door),time).
  567axiom(terminates(doorClose(Agent, Door), doorIsOpen(Door), Time),
  568    []).
  569
  570
  571% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:156
  572%; passing through doors
  573%; agent walks through side one of door.
  574
  575% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:159
  576% event WalkThroughDoor12(agent,door)
  577 %  event(walkThroughDoor12(agent,door)).
  578% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:160
  579==> mpred_prop(walkThroughDoor12(agent,door),event).
  580==> meta_argtypes(walkThroughDoor12(agent,door)).
  581
  582
  583% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:160
  584%; agent walks through side two of door.
  585
  586% event WalkThroughDoor21(agent,door)
  587 %  event(walkThroughDoor21(agent,door)).
  588% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:162
  589==> mpred_prop(walkThroughDoor21(agent,door),event).
  590==> meta_argtypes(walkThroughDoor21(agent,door)).
  591
  592
  593% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:163
  594%; Precondition axioms state that
  595%; for an agent to walk through a side of a door,
  596%; the agent must be awake and standing,
  597%; the door must be open, and
  598%; the agent must be at the side of the door that
  599%; the agent walks through:
  600% [agent,door,time]
  601% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:170
  602% Happens(WalkThroughDoor12(agent,door),time) ->
  603% HoldsAt(Awake(agent),time) &
  604% HoldsAt(Standing(agent),time) &
  605% HoldsAt(DoorIsOpen(door),time) &
  606% HoldsAt(At(agent,Side1(door)),time).
  607% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:174
  608axiom(requires(walkThroughDoor12(Agent, Door), Time),
  609   
  610    [ holds_at(awake(Agent), Time),
  611      holds_at(standing(Agent), Time),
  612      holds_at(doorIsOpen(Door), Time),
  613      holds_at(at(Agent, side1(Door)), Time)
  614    ]).
  615
  616
  617% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:176
  618% [agent,door,time]
  619% Happens(WalkThroughDoor21(agent,door),time) ->
  620% HoldsAt(Awake(agent),time) &
  621% HoldsAt(Standing(agent),time) &
  622% HoldsAt(DoorIsOpen(door),time) &
  623% HoldsAt(At(agent,Side2(door)),time).
  624% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:181
  625axiom(requires(walkThroughDoor21(Agent, Door), Time),
  626   
  627    [ holds_at(awake(Agent), Time),
  628      holds_at(standing(Agent), Time),
  629      holds_at(doorIsOpen(Door), Time),
  630      holds_at(at(Agent, side2(Door)), Time)
  631    ]).
  632
  633
  634% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:183
  635%; Effect axioms state that
  636%; if an agent walks through one side of a door,
  637%; the agent will be at the other side of the door:
  638% [agent,door,location,time]
  639% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:187
  640% Side2(door)=location ->
  641% Initiates(WalkThroughDoor12(agent,door),At(agent,location),time).
  642% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:188
  643axiom(initiates(walkThroughDoor12(Agent, Door), at(Agent, Location), Time),
  644    [equals(side2(Door), Location)]).
  645
  646
  647% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:190
  648% [agent,door,location,time]
  649% Side1(door)=location ->
  650% Initiates(WalkThroughDoor21(agent,door),At(agent,location),time).
  651% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:192
  652axiom(initiates(walkThroughDoor21(Agent, Door), at(Agent, Location), Time),
  653    [equals(side1(Door), Location)]).
  654
  655
  656% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:194
  657% [agent,door,location,time]
  658% Side1(door)=location ->
  659% Terminates(WalkThroughDoor12(agent,door),At(agent,location),time).
  660% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:196
  661axiom(terminates(walkThroughDoor12(Agent, Door), at(Agent, Location), Time),
  662    [equals(side1(Door), Location)]).
  663
  664
  665% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:198
  666% [agent,door,location,time]
  667% Side2(door)=location ->
  668% Terminates(WalkThroughDoor21(agent,door),At(agent,location),time).
  669% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:200
  670axiom(terminates(walkThroughDoor21(Agent, Door), at(Agent, Location), Time),
  671    [equals(side2(Door), Location)]).
  672
  673
  674% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:202
  675%; walking from one end of a street to another
  676%; agent walks from the first end of street to the second end.
  677
  678% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:205
  679% event WalkStreet12(agent,street)
  680 %  event(walkStreet12(agent,street)).
  681% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:206
  682==> mpred_prop(walkStreet12(agent,street),event).
  683==> meta_argtypes(walkStreet12(agent,street)).
  684
  685
  686% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:206
  687%; agent walks from the second end of street to the first end.
  688
  689% event WalkStreet21(agent,street)
  690 %  event(walkStreet21(agent,street)).
  691% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:208
  692==> mpred_prop(walkStreet21(agent,street),event).
  693==> meta_argtypes(walkStreet21(agent,street)).
  694
  695
  696% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:209
  697%; Precondition axioms state that
  698%; for an agent to walk from one end of a street to another,
  699%; the agent must be awake,
  700%; the agent must be standing, and
  701%; the agent must be at the first end of the street:
  702% [agent,street,time]
  703% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:215
  704% Happens(WalkStreet12(agent,street),time) ->
  705% HoldsAt(Awake(agent),time) &
  706% HoldsAt(Standing(agent),time) &
  707% HoldsAt(At(agent,Side1(street)),time).
  708% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:218
  709axiom(requires(walkStreet12(Agent, Street), Time),
  710   
  711    [ holds_at(awake(Agent), Time),
  712      holds_at(standing(Agent), Time),
  713      holds_at(at(Agent, side1(Street)), Time)
  714    ]).
  715
  716
  717% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:220
  718% [agent,street,time]
  719% Happens(WalkStreet21(agent,street),time) ->
  720% HoldsAt(Awake(agent),time) &
  721% HoldsAt(Standing(agent),time) &
  722% HoldsAt(At(agent,Side2(street)),time).
  723% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:224
  724axiom(requires(walkStreet21(Agent, Street), Time),
  725   
  726    [ holds_at(awake(Agent), Time),
  727      holds_at(standing(Agent), Time),
  728      holds_at(at(Agent, side2(Street)), Time)
  729    ]).
  730
  731
  732% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:226
  733%; Effect axioms state that
  734%; if an agent walks from one end of a street to another,
  735%; the agent will be at the other end of the street:
  736% [agent,street,location,time]
  737% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:230
  738% Side2(street)=location ->
  739% Initiates(WalkStreet12(agent,street),At(agent,location),time).
  740% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:231
  741axiom(initiates(walkStreet12(Agent, Street), at(Agent, Location), Time),
  742    [equals(side2(Street), Location)]).
  743
  744
  745% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:233
  746% [agent,street,location,time]
  747% Side1(street)=location ->
  748% Initiates(WalkStreet21(agent,street),At(agent,location),time).
  749% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:235
  750axiom(initiates(walkStreet21(Agent, Street), at(Agent, Location), Time),
  751    [equals(side1(Street), Location)]).
  752
  753
  754% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:237
  755% [agent,street,location,time]
  756% Side1(street)=location ->
  757% Terminates(WalkStreet12(agent,street),At(agent,location),time).
  758% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:239
  759axiom(terminates(walkStreet12(Agent, Street), at(Agent, Location), Time),
  760    [equals(side1(Street), Location)]).
  761
  762
  763% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:241
  764% [agent,street,location,time]
  765% Side2(street)=location ->
  766% Terminates(WalkStreet21(agent,street),At(agent,location),time).
  767% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:243
  768axiom(terminates(walkStreet21(Agent, Street), at(Agent, Location), Time),
  769    [equals(side2(Street), Location)]).
  770
  771
  772% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:245
  773%; floors
  774%; The floor of room is integer.
  775
  776% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:248
  777% function Floor(room): integer
  778 %  functional_predicate(floor(room,integer)).
  779% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:249
  780==> mpred_prop(floor(room,integer),functional_predicate).
  781==> meta_argtypes(floor(room,integer)).
  782resultIsa(floor,integer).
  783%; walking up and down staircases
  784%; agent walks down staircase.
  785
  786% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:253
  787% event WalkDownStaircase(agent,staircase)
  788 %  event(walkDownStaircase(agent,staircase)).
  789% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:254
  790==> mpred_prop(walkDownStaircase(agent,staircase),event).
  791==> meta_argtypes(walkDownStaircase(agent,staircase)).
  792
  793
  794% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:254
  795%; agent walks up staircase.
  796
  797% event WalkUpStaircase(agent,staircase)
  798 %  event(walkUpStaircase(agent,staircase)).
  799% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:256
  800==> mpred_prop(walkUpStaircase(agent,staircase),event).
  801==> meta_argtypes(walkUpStaircase(agent,staircase)).
  802
  803
  804% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:257
  805%; Precondition axioms state that
  806%; for an agent to walk down (up) a staircase,
  807%; the agent must be awake, standing, and
  808%; at the top (bottom) of the staircase:
  809% [agent,staircase,time]
  810% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:262
  811% Happens(WalkDownStaircase(agent,staircase),time) ->
  812% HoldsAt(Awake(agent),time) &
  813% HoldsAt(Standing(agent),time) &
  814% HoldsAt(At(agent,Side2(staircase)),time).
  815% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:265
  816axiom(requires(walkDownStaircase(Agent, Staircase), Time),
  817   
  818    [ holds_at(awake(Agent), Time),
  819      holds_at(standing(Agent), Time),
  820      holds_at(at(Agent, side2(Staircase)), Time)
  821    ]).
  822
  823
  824% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:267
  825% [agent,staircase,time]
  826% Happens(WalkUpStaircase(agent,staircase),time) ->
  827% HoldsAt(Awake(agent),time) &
  828% HoldsAt(Standing(agent),time) &
  829% HoldsAt(At(agent,Side1(staircase)),time).
  830% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:271
  831axiom(requires(walkUpStaircase(Agent, Staircase), Time),
  832   
  833    [ holds_at(awake(Agent), Time),
  834      holds_at(standing(Agent), Time),
  835      holds_at(at(Agent, side1(Staircase)), Time)
  836    ]).
  837
  838
  839% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:273
  840%; Effect axioms state that
  841%; if an agent walks down (up) a staircase,
  842%; the agent will be at the bottom (top) of the staircase:
  843% [agent,staircase,room,time]
  844% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:277
  845% Side1(staircase)=room ->
  846% Initiates(WalkDownStaircase(agent,staircase),At(agent,room),time).
  847% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:278
  848axiom(initiates(walkDownStaircase(Agent, Staircase), at(Agent, Room), Time),
  849    [equals(side1(Staircase), Room)]).
  850
  851
  852% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:280
  853% [agent,staircase,room,time]
  854% Side2(staircase)=room ->
  855% Terminates(WalkDownStaircase(agent,staircase),At(agent,room),time).
  856% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:282
  857axiom(terminates(walkDownStaircase(Agent, Staircase), at(Agent, Room), Time),
  858    [equals(side2(Staircase), Room)]).
  859
  860
  861% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:284
  862% [agent,staircase,room,time]
  863% Side2(staircase)=room ->
  864% Initiates(WalkUpStaircase(agent,staircase),At(agent,room),time).
  865% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:286
  866axiom(initiates(walkUpStaircase(Agent, Staircase), at(Agent, Room), Time),
  867    [equals(side2(Staircase), Room)]).
  868
  869
  870% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:288
  871% [agent,staircase,room,time]
  872% Side1(staircase)=room ->
  873% Terminates(WalkUpStaircase(agent,staircase),At(agent,room),time).
  874% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:290
  875axiom(terminates(walkUpStaircase(Agent, Staircase), at(Agent, Room), Time),
  876    [equals(side1(Staircase), Room)]).
  877
  878
  879% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:292
  880%; A state constraint says that if an agent is outside,
  881%; the agent is dressed.
  882% [agent,outside,time]
  883% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:295
  884% HoldsAt(At(agent,outside),time) ->
  885% HoldsAt(Dressed(agent),time).
  886% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:296
  887axiom(holds_at(dressed(Agent), Time),
  888    [holds_at(at(Agent, Outside), Time)]).
  889
  890
  891% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:298
  892%; room looks out onto outside.
  893
  894% function LookOutOnto(room): outside
  895 %  functional_predicate(lookOutOnto(room,outside)).
  896% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:300
  897==> mpred_prop(lookOutOnto(room,outside),functional_predicate).
  898==> meta_argtypes(lookOutOnto(room,outside)).
  899resultIsa(lookOutOnto,outside).
  900%; location1 is adjacent to location2.
  901
  902% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:302
  903% predicate Adjacent(location,location)
  904 %  predicate(adjacent(location,location)).
  905% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:303
  906==> mpred_prop(adjacent(location,location),predicate).
  907==> meta_argtypes(adjacent(location,location)).
  908
  909
  910% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:304
  911%; A state constraint says that
  912%; two locations are adjacent if and only if
  913%; they have a portal in common:
  914% [location1,location2]
  915 
  916% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:307
  917% Adjacent(location1,location2) <->
  918% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:308
  919% {portal}% 
  920% (Side1(portal)=location1 &
  921%  Side2(portal)=location2) |
  922% (Side2(portal)=location1 &
  923%  Side1(portal)=location2).
  924
  925 /*   exists([Portal],
  926             equiv(adjacent(Location1, Location2),
  927                    (side1(Portal)=Location1, side2(Portal)=Location2;side2(Portal)=Location1, side1(Portal)=Location2))).
  928 */
  929
  930 /*  not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))) :-
  931       (   not(adjacent(Fn_185_Param, Fn_185_Ret)),
  932           (   equals(side1(Some_Param), Fn_185_Param),
  933               equals(side2(Some_Param), Fn_185_Ret)
  934           ;   equals(side2(Some_Param), Fn_185_Param),
  935               equals(side1(Some_Param), Fn_185_Ret)
  936           )
  937       ;   adjacent(Fn_185_Param, Fn_185_Ret),
  938           (   not(equals(side1(Some_Param), Fn_185_Param))
  939           ;   not(equals(side2(Some_Param), Fn_185_Ret))
  940           ),
  941           (   not(equals(side2(Some_Param), Fn_185_Param))
  942           ;   not(equals(side1(Some_Param), Fn_185_Ret))
  943           )
  944       ).
  945 */
  946% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:312
  947axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  948   
  949    [ equals(side1(Some_Param), Fn_185_Param),
  950      equals(side2(Some_Param), Fn_185_Ret),
  951      not(adjacent(Fn_185_Param, Fn_185_Ret))
  952    ]).
  953axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  954   
  955    [ equals(side2(Some_Param), Fn_185_Param),
  956      equals(side1(Some_Param), Fn_185_Ret),
  957      not(adjacent(Fn_185_Param, Fn_185_Ret))
  958    ]).
  959axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  960   
  961    [ not(equals(side2(Some_Param), Fn_185_Param)),
  962      not(equals(side1(Some_Param), Fn_185_Param)),
  963      adjacent(Fn_185_Param, Fn_185_Ret)
  964    ]).
  965axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  966   
  967    [ not(equals(side1(Some_Param), Fn_185_Ret)),
  968      not(equals(side1(Some_Param), Fn_185_Param)),
  969      adjacent(Fn_185_Param, Fn_185_Ret)
  970    ]).
  971axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  972   
  973    [ not(equals(side2(Some_Param), Fn_185_Param)),
  974      not(equals(side2(Some_Param), Fn_185_Ret)),
  975      adjacent(Fn_185_Param, Fn_185_Ret)
  976    ]).
  977axiom(not(some(Some_Param, '$kolem_Fn_185'(Fn_185_Param, Fn_185_Ret))),
  978   
  979    [ not(equals(side1(Some_Param), Fn_185_Ret)),
  980      not(equals(side2(Some_Param), Fn_185_Ret)),
  981      adjacent(Fn_185_Param, Fn_185_Ret)
  982    ]).
  983
  984 /*  adjacent(Adjacent_Param, Adjacent_Ret) :-
  985       (   equals(side1(Some_Param8), Adjacent_Param),
  986           equals(side2(Some_Param8), Adjacent_Ret)
  987       ;   equals(side2(Some_Param8), Adjacent_Param),
  988           equals(side1(Some_Param8), Adjacent_Ret)
  989       ),
  990       some(Some_Param8,
  991            '$kolem_Fn_185'(Adjacent_Param, Adjacent_Ret)).
  992 */
  993axiom(adjacent(Adjacent_Param, Adjacent_Ret),
  994   
  995    [ equals(side1(Some_Param8), Adjacent_Param),
  996      equals(side2(Some_Param8), Adjacent_Ret),
  997      some(Some_Param8,
  998           '$kolem_Fn_185'(Adjacent_Param, Adjacent_Ret))
  999    ]).
 1000axiom(adjacent(Adjacent_Param, Adjacent_Ret),
 1001   
 1002    [ equals(side2(Some_Param8), Adjacent_Param),
 1003      equals(side1(Some_Param8), Adjacent_Ret),
 1004      some(Some_Param8,
 1005           '$kolem_Fn_185'(Adjacent_Param, Adjacent_Ret))
 1006    ]).
 1007
 1008 /*  not(equals(side1(Some_Param11), Adjacent_Param10)) :-
 1009       equals(side2(Some_Param11), Equals_Ret),
 1010       not(adjacent(Adjacent_Param10, Equals_Ret)),
 1011       some(Some_Param11,
 1012            '$kolem_Fn_185'(Adjacent_Param10, Equals_Ret)).
 1013 */
 1014axiom(not(equals(side1(Some_Param11), Adjacent_Param10)),
 1015   
 1016    [ equals(side2(Some_Param11), Equals_Ret),
 1017      not(adjacent(Adjacent_Param10, Equals_Ret)),
 1018      some(Some_Param11,
 1019           '$kolem_Fn_185'(Adjacent_Param10, Equals_Ret))
 1020    ]).
 1021
 1022 /*  not(equals(side2(Some_Param14), Equals_Ret15)) :-
 1023       equals(side1(Some_Param14), Adjacent_Param13),
 1024       not(adjacent(Adjacent_Param13, Equals_Ret15)),
 1025       some(Some_Param14,
 1026            '$kolem_Fn_185'(Adjacent_Param13, Equals_Ret15)).
 1027 */
 1028axiom(not(equals(side2(Some_Param14), Equals_Ret15)),
 1029   
 1030    [ equals(side1(Some_Param14), Adjacent_Param13),
 1031      not(adjacent(Adjacent_Param13, Equals_Ret15)),
 1032      some(Some_Param14,
 1033           '$kolem_Fn_185'(Adjacent_Param13, Equals_Ret15))
 1034    ]).
 1035
 1036 /*  not(equals(side2(Some_Param17), Adjacent_Param16)) :-
 1037       equals(side1(Some_Param17), Equals_Ret18),
 1038       not(adjacent(Adjacent_Param16, Equals_Ret18)),
 1039       some(Some_Param17,
 1040            '$kolem_Fn_185'(Adjacent_Param16, Equals_Ret18)).
 1041 */
 1042axiom(not(equals(side2(Some_Param17), Adjacent_Param16)),
 1043   
 1044    [ equals(side1(Some_Param17), Equals_Ret18),
 1045      not(adjacent(Adjacent_Param16, Equals_Ret18)),
 1046      some(Some_Param17,
 1047           '$kolem_Fn_185'(Adjacent_Param16, Equals_Ret18))
 1048    ]).
 1049
 1050 /*  not(equals(side1(Some_Param20), Equals_Ret21)) :-
 1051       equals(side2(Some_Param20), Adjacent_Param19),
 1052       not(adjacent(Adjacent_Param19, Equals_Ret21)),
 1053       some(Some_Param20,
 1054            '$kolem_Fn_185'(Adjacent_Param19, Equals_Ret21)).
 1055 */
 1056axiom(not(equals(side1(Some_Param20), Equals_Ret21)),
 1057   
 1058    [ equals(side2(Some_Param20), Adjacent_Param19),
 1059      not(adjacent(Adjacent_Param19, Equals_Ret21)),
 1060      some(Some_Param20,
 1061           '$kolem_Fn_185'(Adjacent_Param19, Equals_Ret21))
 1062    ]).
 1063
 1064 /*  not(adjacent(Adjacent_Param22, Adjacent_Ret24)) :-
 1065       ( (   not(equals(side1(Some_Param23), Adjacent_Param22))
 1066         ;   not(equals(side2(Some_Param23), Adjacent_Ret24))
 1067         ),
 1068         (   not(equals(side2(Some_Param23), Adjacent_Param22))
 1069         ;   not(equals(side1(Some_Param23), Adjacent_Ret24))
 1070         )
 1071       ),
 1072       some(Some_Param23,
 1073            '$kolem_Fn_185'(Adjacent_Param22, Adjacent_Ret24)).
 1074 */
 1075axiom(not(adjacent(Adjacent_Param22, Adjacent_Ret24)),
 1076   
 1077    [ not(equals(side2(Some_Param23), Adjacent_Param22)),
 1078      not(equals(side1(Some_Param23), Adjacent_Param22)),
 1079      some(Some_Param23,
 1080           '$kolem_Fn_185'(Adjacent_Param22, Adjacent_Ret24))
 1081    ]).
 1082axiom(not(adjacent(Adjacent_Param22, Adjacent_Ret24)),
 1083   
 1084    [ not(equals(side1(Some_Param23), Adjacent_Ret24)),
 1085      not(equals(side1(Some_Param23), Adjacent_Param22)),
 1086      some(Some_Param23,
 1087           '$kolem_Fn_185'(Adjacent_Param22, Adjacent_Ret24))
 1088    ]).
 1089axiom(not(adjacent(Adjacent_Param22, Adjacent_Ret24)),
 1090   
 1091    [ not(equals(side2(Some_Param23), Adjacent_Param22)),
 1092      not(equals(side2(Some_Param23), Adjacent_Ret24)),
 1093      some(Some_Param23,
 1094           '$kolem_Fn_185'(Adjacent_Param22, Adjacent_Ret24))
 1095    ]).
 1096axiom(not(adjacent(Adjacent_Param22, Adjacent_Ret24)),
 1097   
 1098    [ not(equals(side1(Some_Param23), Adjacent_Ret24)),
 1099      not(equals(side2(Some_Param23), Adjacent_Ret24)),
 1100      some(Some_Param23,
 1101           '$kolem_Fn_185'(Adjacent_Param22, Adjacent_Ret24))
 1102    ]).
 1103
 1104 /*  equals(side1(Some_Param26), Adjacent_Param25) :-
 1105       (   not(equals(side2(Some_Param26), Adjacent_Param25))
 1106       ;   not(equals(side1(Some_Param26), Equals_Ret27))
 1107       ),
 1108       adjacent(Adjacent_Param25, Equals_Ret27),
 1109       some(Some_Param26,
 1110            '$kolem_Fn_185'(Adjacent_Param25, Equals_Ret27)).
 1111 */
 1112axiom(equals(side1(Some_Param26), Adjacent_Param25),
 1113   
 1114    [ not(equals(side2(Some_Param26), Adjacent_Param25)),
 1115      adjacent(Adjacent_Param25, Equals_Ret27),
 1116      some(Some_Param26,
 1117           '$kolem_Fn_185'(Adjacent_Param25, Equals_Ret27))
 1118    ]).
 1119axiom(equals(side1(Some_Param26), Adjacent_Param25),
 1120   
 1121    [ not(equals(side1(Some_Param26), Equals_Ret27)),
 1122      adjacent(Adjacent_Param25, Equals_Ret27),
 1123      some(Some_Param26,
 1124           '$kolem_Fn_185'(Adjacent_Param25, Equals_Ret27))
 1125    ]).
 1126
 1127 /*  equals(side2(Some_Param29), Equals_Ret30) :-
 1128       (   not(equals(side2(Some_Param29), Adjacent_Param28))
 1129       ;   not(equals(side1(Some_Param29), Equals_Ret30))
 1130       ),
 1131       adjacent(Adjacent_Param28, Equals_Ret30),
 1132       some(Some_Param29,
 1133            '$kolem_Fn_185'(Adjacent_Param28, Equals_Ret30)).
 1134 */
 1135axiom(equals(side2(Some_Param29), Equals_Ret30),
 1136   
 1137    [ not(equals(side2(Some_Param29), Adjacent_Param28)),
 1138      adjacent(Adjacent_Param28, Equals_Ret30),
 1139      some(Some_Param29,
 1140           '$kolem_Fn_185'(Adjacent_Param28, Equals_Ret30))
 1141    ]).
 1142axiom(equals(side2(Some_Param29), Equals_Ret30),
 1143   
 1144    [ not(equals(side1(Some_Param29), Equals_Ret30)),
 1145      adjacent(Adjacent_Param28, Equals_Ret30),
 1146      some(Some_Param29,
 1147           '$kolem_Fn_185'(Adjacent_Param28, Equals_Ret30))
 1148    ]).
 1149
 1150 /*  equals(side2(Some_Param32), Adjacent_Param31) :-
 1151       (   not(equals(side1(Some_Param32), Adjacent_Param31))
 1152       ;   not(equals(side2(Some_Param32), Equals_Ret33))
 1153       ),
 1154       adjacent(Adjacent_Param31, Equals_Ret33),
 1155       some(Some_Param32,
 1156            '$kolem_Fn_185'(Adjacent_Param31, Equals_Ret33)).
 1157 */
 1158axiom(equals(side2(Some_Param32), Adjacent_Param31),
 1159   
 1160    [ not(equals(side1(Some_Param32), Adjacent_Param31)),
 1161      adjacent(Adjacent_Param31, Equals_Ret33),
 1162      some(Some_Param32,
 1163           '$kolem_Fn_185'(Adjacent_Param31, Equals_Ret33))
 1164    ]).
 1165axiom(equals(side2(Some_Param32), Adjacent_Param31),
 1166   
 1167    [ not(equals(side2(Some_Param32), Equals_Ret33)),
 1168      adjacent(Adjacent_Param31, Equals_Ret33),
 1169      some(Some_Param32,
 1170           '$kolem_Fn_185'(Adjacent_Param31, Equals_Ret33))
 1171    ]).
 1172
 1173 /*  equals(side1(Some_Param35), Equals_Ret36) :-
 1174       (   not(equals(side1(Some_Param35), Adjacent_Param34))
 1175       ;   not(equals(side2(Some_Param35), Equals_Ret36))
 1176       ),
 1177       adjacent(Adjacent_Param34, Equals_Ret36),
 1178       some(Some_Param35,
 1179            '$kolem_Fn_185'(Adjacent_Param34, Equals_Ret36)).
 1180 */
 1181axiom(equals(side1(Some_Param35), Equals_Ret36),
 1182   
 1183    [ not(equals(side1(Some_Param35), Adjacent_Param34)),
 1184      adjacent(Adjacent_Param34, Equals_Ret36),
 1185      some(Some_Param35,
 1186           '$kolem_Fn_185'(Adjacent_Param34, Equals_Ret36))
 1187    ]).
 1188axiom(equals(side1(Some_Param35), Equals_Ret36),
 1189   
 1190    [ not(equals(side2(Some_Param35), Equals_Ret36)),
 1191      adjacent(Adjacent_Param34, Equals_Ret36),
 1192      some(Some_Param35,
 1193           '$kolem_Fn_185'(Adjacent_Param34, Equals_Ret36))
 1194    ]).
 1195
 1196
 1197% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:314
 1198%; The ground of outside is ground.
 1199
 1200% function GroundOf(outside): ground
 1201 %  functional_predicate(groundOf(outside,ground)).
 1202% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:316
 1203==> mpred_prop(groundOf(outside,ground),functional_predicate).
 1204==> meta_argtypes(groundOf(outside,ground)).
 1205resultIsa(groundOf,ground).
 1206%; The sky of outside is sky.
 1207
 1208% function SkyOf(outside): sky
 1209 %  functional_predicate(skyOf(outside,sky)).
 1210% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:318
 1211==> mpred_prop(skyOf(outside,sky),functional_predicate).
 1212==> meta_argtypes(skyOf(outside,sky)).
 1213resultIsa(skyOf,sky).
 1214%; State constraints fix the location of ground and sky:
 1215% [outside,ground,time]
 1216% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:321
 1217% GroundOf(outside) = ground ->
 1218% HoldsAt(At(ground,outside),time).
 1219% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:322
 1220axiom(holds_at(at(Ground, Outside), Time),
 1221    [equals(groundOf(Outside), Ground)]).
 1222
 1223
 1224% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:324
 1225% [outside,sky,time]
 1226% SkyOf(outside) = sky ->
 1227% HoldsAt(At(sky,outside),time).
 1228% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:326
 1229axiom(holds_at(at(Sky, Outside), Time),
 1230    [equals(skyOf(Outside), Sky)]).
 1231
 1232
 1233% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/RTSpace.e:328
 1234%; End of file.