1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'ecnet/OMSpace.e').
    4
    5
    6% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:0
    7%;
    8%; Copyright (c) 2005 IBM Corporation and others.
    9%; All rights reserved. This program and the accompanying materials
   10%; are made available under the terms of the Common Public License v1.0
   11%; which accompanies this distribution, and is available at
   12%; http://www.eclipse.org/legal/cpl-v10.html
   13%;
   14%; Contributors:
   15%; IBM - Initial implementation
   16%;
   17%; OMSpace: object-scale metric space
   18%;
   19%; The OMSpace representation deals with metric space at
   20%; the scale of objects.
   21%;
   22%; @article{Morgenstern:2001,
   23%;   author = "Morgenstern, Leora",
   24%;   year = "2001",
   25%;   title = "Mid-sized axiomatizations of commonsense problems: A case study in egg cracking",
   26%;   journal = "Studia Logica",
   27%;   volume = "67",
   28%;   pages = "333--384",
   29%; }
   30%;
   31%; @article{Shanahan:2003,
   32%;   author = "Shanahan, Murray",
   33%;   year = "2004",
   34%;   title = "An attempt to formalise a non-trivial benchmark problem in common sense reasoning",
   35%;   journal = "Artificial Intelligence",
   36%;   volume = "153",
   37%;   pages = "141--165",
   38%; }
   39%;
   40
   41% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:34
   42% sort height: integer
   43% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:35
   44==> subsort(height,integer).
   45
   46% sort distance: integer
   47% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:36
   48==> subsort(distance,integer).
   49%; Height
   50%; The height of object is height.
   51
   52% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:40
   53% fluent Height(object,height)
   54 %  fluent(height(object,height)).
   55% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:41
   56==> mpred_prop(height(object,height),fluent).
   57==> meta_argtypes(height(object,height)).
   58
   59
   60% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:42
   61%; State constraint represent the fact that each
   62%; object has a unique height:
   63% [object,height1,height2,time]
   64% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:45
   65% HoldsAt(Height(object,height1),time) &
   66% HoldsAt(Height(object,height2),time) ->
   67% height1=height2.
   68% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:47
   69axiom(Height1=Height2,
   70   
   71    [ holds_at(height(Object, Height1), Time),
   72      holds_at(height(Object, Height2), Time)
   73    ]).
   74
   75
   76% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:49
   77% [object,time]
   78% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:50
   79% {height}% HoldsAt(Height(object,height),time).
   80
   81 /*  exists([Height],
   82          holds_at(height(Object,Height),Time)).
   83 */
   84
   85 /*  holds_at(height(Height_Param, Some_Param), Time4) :-
   86       some(Some_Param, '$kolem_Fn_147'(Height_Param, Time4)).
   87 */
   88% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:51
   89axiom(holds_at(height(Height_Param, Some_Param), Time4),
   90    [some(Some_Param, '$kolem_Fn_147'(Height_Param, Time4))]).
   91
   92 /*  not(some(Some_Param8, '$kolem_Fn_147'(Fn_147_Param, Time7))) :-
   93       not(holds_at(height(Fn_147_Param, Some_Param8), Time7)).
   94 */
   95axiom(not(some(Some_Param8, '$kolem_Fn_147'(Fn_147_Param, Time7))),
   96    [not(holds_at(height(Fn_147_Param, Some_Param8), Time7))]).
   97
   98
   99% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:53
  100%; falling
  101%; physobj1 is falling from physobj2 to physobj3.
  102
  103% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:56
  104% fluent FallingFromTo(physobj,physobj,physobj)
  105 %  fluent(fallingFromTo(physobj,physobj,physobj)).
  106% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:57
  107==> mpred_prop(fallingFromTo(physobj,physobj,physobj),fluent).
  108==> meta_argtypes(fallingFromTo(physobj,physobj,physobj)).
  109
  110
  111% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:57
  112%; physobj1 starts falling from physobj2 to physobj3.
  113
  114% event StartFallingFromTo(physobj,physobj,physobj)
  115 %  event(startFallingFromTo(physobj,physobj,physobj)).
  116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:59
  117==> mpred_prop(startFallingFromTo(physobj,physobj,physobj),event).
  118==> meta_argtypes(startFallingFromTo(physobj,physobj,physobj)).
  119
  120
  121% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:59
  122%; physobj1 collides with physobj2.
  123
  124% event CollideWith(physobj,physobj)
  125 %  event(collideWith(physobj,physobj)).
  126% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:61
  127==> mpred_prop(collideWith(physobj,physobj),event).
  128==> meta_argtypes(collideWith(physobj,physobj)).
  129
  130
  131% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:62
  132%; An effect axiom states that if a first physical object starts
  133%; falling from a second physical object to a third physical
  134%; object, the first physical object will be falling from the
  135%; second physical object to the third physical object:
  136% [physobj1,physobj2,physobj3,time]
  137% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:67
  138% Initiates(StartFallingFromTo(physobj1,physobj2,physobj3),
  139%           FallingFromTo(physobj1,physobj2,physobj3),
  140%           time).
  141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:69
  142axiom(initiates(startFallingFromTo(Physobj1, Physobj2, Physobj3), fallingFromTo(Physobj1, Physobj2, Physobj3), Time),
  143    []).
  144
  145
  146% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:71
  147%; A precondition axiom states that for
  148%; a first physical object to start
  149%; falling from a second physical object to a third physical
  150%; object,
  151%; the height of the first physical object and the
  152%; second physical object must be the same.
  153% [physobj1,physobj2,physobj3,height1,height2,time]
  154% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:78
  155% Happens(StartFallingFromTo(physobj1,physobj2,physobj3),time) &
  156% HoldsAt(Height(physobj1,height1),time) &
  157% HoldsAt(Height(physobj2,height2),time) ->
  158% height1=height2.
  159% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:81
  160axiom(Height1=Height2,
  161   
  162    [ happens(startFallingFromTo(Physobj1, Physobj2, Physobj3),
  163              Time),
  164      holds_at(height(Physobj1, Height1), Time),
  165      holds_at(height(Physobj2, Height2), Time)
  166    ]).
  167
  168
  169% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:83
  170%; A state constraint says that a physical object
  171%; cannot fall from itself, cannot fall to itself,
  172%; and cannot fall from and to the same physical object:
  173% [physobj1,physobj2,physobj3,time]
  174% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:87
  175% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) ->
  176% physobj1!=physobj2 &
  177% physobj1!=physobj3 &
  178% physobj2!=physobj3.
  179
  180 /*   if(holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3),
  181                  Time),
  182          (Physobj1\=Physobj2, Physobj1\=Physobj3, Physobj2\=Physobj3)).
  183 */
  184
  185 /*  not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)) :-
  186       (   not({dif(FallingFromTo_Param, Dif_Param)})
  187       ;   not({dif(FallingFromTo_Param, FallingFromTo_Ret)})
  188       ;   not({dif(Dif_Param, FallingFromTo_Ret)})
  189       ).
  190 */
  191% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:90
  192axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)),
  193    [not({dif(FallingFromTo_Param, Dif_Param)})]).
  194axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)),
  195    [not({dif(FallingFromTo_Param, FallingFromTo_Ret)})]).
  196axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)),
  197    [not({dif(Dif_Param, FallingFromTo_Ret)})]).
  198
  199 /*  { dif(Dif_Param9, Dif_Ret)
  200   } :-
  201       holds_at(fallingFromTo(Dif_Param9,
  202                              Dif_Ret,
  203                              FallingFromTo_Ret11),
  204                Time8).
  205 */
  206axiom({ dif(Dif_Param9, Dif_Ret)
  207},
  208   
  209    [ holds_at(fallingFromTo(Dif_Param9,
  210                             Dif_Ret,
  211                             FallingFromTo_Ret11),
  212               Time8)
  213    ]).
  214
  215 /*  { dif(Dif_Param13, Dif_Ret14)
  216   } :-
  217       holds_at(fallingFromTo(Dif_Param13, _, Dif_Ret14),
  218                Time12).
  219 */
  220axiom({ dif(Dif_Param13, Dif_Ret14)
  221},
  222   
  223    [ holds_at(fallingFromTo(Dif_Param13, _, Dif_Ret14),
  224               Time12)
  225    ]).
  226
  227 /*  { dif(Dif_Param16, Dif_Ret18)
  228   } :-
  229       holds_at(fallingFromTo(FallingFromTo_Param17,
  230                              Dif_Param16,
  231                              Dif_Ret18),
  232                Time15).
  233 */
  234axiom({ dif(Dif_Param16, Dif_Ret18)
  235},
  236   
  237    [ holds_at(fallingFromTo(FallingFromTo_Param17,
  238                             Dif_Param16,
  239                             Dif_Ret18),
  240               Time15)
  241    ]).
  242
  243
  244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:92
  245%; A state constraint says that the sky cannot fall:
  246% [sky,physobj1,physobj2,time]
  247% !HoldsAt(FallingFromTo(sky,physobj1,physobj2),time).
  248
  249 /*  not(holds_at(fallingFromTo(Sky,Physobj1,Physobj2),
  250   	     Time)).
  251 */
  252% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:94
  253axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, _, FallingFromTo_Ret), Time4)),
  254    []).
  255
  256
  257% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:96
  258%; A releases axiom states that if
  259%; if a first physical object starts
  260%; falling from a second physical object to a third physical
  261%; object, the height of the first physical object
  262%; will be released from inertia:
  263% [physobj1,physobj2,physobj3,height,time]
  264% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:102
  265% Releases(StartFallingFromTo(physobj1,physobj2,physobj3),
  266%          Height(physobj1,height),
  267%          time).
  268% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:104
  269axiom(releases(startFallingFromTo(Physobj1, Physobj2, Physobj3), height(Physobj1, Height), Time),
  270    []).
  271
  272
  273% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:106
  274%; A trajectory axiom states that
  275%; if a first physical object starts falling
  276%; from a second physical object
  277%; to a third physical object
  278%; at a time and
  279%; the first physical object has a height at the time,
  280%; then the first physical object will have a height
  281%; equal to the height minus an offset
  282%; at a time equal to the time plus the offset:
  283% [physobj1,physobj2,physobj3,height1,height2,offset,time]
  284% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:116
  285% HoldsAt(Height(physobj1,height1),time) &
  286% height2=height1-offset ->
  287% Trajectory(FallingFromTo(physobj1,physobj2,physobj3),time,
  288%            Height(physobj1,height2),offset).
  289% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:119
  290axiom(trajectory(fallingFromTo(Physobj1, Physobj2, Physobj3), Time, height(Physobj1, Height2), Offset),
  291   
  292    [ holds_at(height(Physobj1, Height1), Time),
  293      equals(Height2, Height1-Offset)
  294    ]).
  295
  296
  297% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:121
  298%; A trigger axiom states that
  299%; if a first physical object is falling
  300%; from a second physical object
  301%; to a third physical object and
  302%; the height of the first physical object
  303%; is the same as the height of the third physical object,
  304%; the first physical object collides with the
  305%; third physical object:
  306% [physobj1,physobj2,physobj3,height,time]
  307% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:130
  308% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) &
  309% HoldsAt(Height(physobj1,height),time) &
  310% HoldsAt(Height(physobj3,height),time) ->
  311% Happens(CollideWith(physobj1,physobj3),time).
  312% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:133
  313axiom(happens(collideWith(Physobj1, Physobj3), Time),
  314   
  315    [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3),
  316               Time),
  317      holds_at(height(Physobj1, Height), Time),
  318      holds_at(height(Physobj3, Height), Time)
  319    ]).
  320
  321
  322% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:135
  323%; An effect axiom states that
  324%; if a first physical object is falling
  325%; from a second physical object
  326%; to a third physical object and
  327%; the first physical object collides with
  328%; the third physical object,
  329%; the first physical object will be on the third physical object:
  330% [physobj1,physobj2,physobj3,time]
  331% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:143
  332% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) ->
  333% Initiates(CollideWith(physobj1,physobj3),
  334%           On(physobj1,physobj3),
  335%           time).
  336% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:146
  337axiom(initiates(collideWith(Physobj1, Physobj3), on(Physobj1, Physobj3), Time),
  338   
  339    [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3),
  340               Time)
  341    ]).
  342
  343
  344% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:148
  345%; An effect axiom states that
  346%; if a physical object collides with another
  347%; physical object,
  348%; the height of the first physical object will
  349%; be the height of the second physical object:
  350% [physobj1,physobj2,height,time]
  351% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:154
  352% HoldsAt(Height(physobj2,height),time) ->
  353% Initiates(CollideWith(physobj1,physobj2),
  354%           Height(physobj1,height),
  355%           time).
  356% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:157
  357axiom(initiates(collideWith(Physobj1, Physobj2), height(Physobj1, Height), Time),
  358    [holds_at(height(Physobj2, Height), Time)]).
  359
  360
  361% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:159
  362%;[physobj1,physobj2,height1,height2,time]
  363%;HoldsAt(Height(physobj2,height1),time) &
  364%;height1 != height2 ->
  365%;Terminates(CollideWith(physobj1,physobj2),
  366%;           Height(physobj1,height2),
  367%;           time).
  368%; An effect axiom states that
  369%; if a first physical object is falling
  370%; from a second physical object
  371%; to a third physical object and
  372%; the first physical object collides with
  373%; the third physical object,
  374%; the first physical object will no longer be
  375%; falling from the second physical object to the
  376%; third physical object:
  377% [physobj1,physobj2,physobj3,time]
  378% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:176
  379% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) ->
  380% Terminates(CollideWith(physobj1,physobj3),
  381%            FallingFromTo(physobj1,physobj2,physobj3),
  382%            time).
  383% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:179
  384axiom(terminates(collideWith(Physobj1, Physobj3), fallingFromTo(Physobj1, Physobj2, Physobj3), Time),
  385   
  386    [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3),
  387               Time)
  388    ]).
  389
  390
  391% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:181
  392%; flying
  393%; agent is flying from physobj1 to physobj2.
  394
  395% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:184
  396% fluent FlyingFromTo(agent,physobj,physobj)
  397 %  fluent(flyingFromTo(agent,physobj,physobj)).
  398% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:185
  399==> mpred_prop(flyingFromTo(agent,physobj,physobj),fluent).
  400==> meta_argtypes(flyingFromTo(agent,physobj,physobj)).
  401
  402
  403% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:185
  404%; agent starts flying from physobj1 to physobj2.
  405
  406% event StartFlyingFromTo(agent,physobj,physobj)
  407 %  event(startFlyingFromTo(agent,physobj,physobj)).
  408% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:187
  409==> mpred_prop(startFlyingFromTo(agent,physobj,physobj),event).
  410==> meta_argtypes(startFlyingFromTo(agent,physobj,physobj)).
  411
  412
  413% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:187
  414%; agent reaches physobj.
  415
  416% event Reach(agent,physobj)
  417 %  event(reach(agent,physobj)).
  418% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:189
  419==> mpred_prop(reach(agent,physobj),event).
  420==> meta_argtypes(reach(agent,physobj)).
  421
  422
  423% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:190
  424%; An effect axiom states that if an agent starts
  425%; flying from a physical object to another physical object,
  426%; the agent will be flying from the first physical object
  427%; to the second physical object:
  428% [agent,physobj1,physobj2,time]
  429% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:195
  430% Initiates(StartFlyingFromTo(agent,physobj1,physobj2),
  431%           FlyingFromTo(agent,physobj1,physobj2),
  432%           time).
  433% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:197
  434axiom(initiates(startFlyingFromTo(Agent, Physobj1, Physobj2), flyingFromTo(Agent, Physobj1, Physobj2), Time),
  435    []).
  436
  437
  438% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:199
  439%; A precondition axiom states that for
  440%; an agent to start flying from a physical object to
  441%; another physical object,
  442%; the height of the agent and
  443%; the first physical object must be the same:
  444% [agent,physobj1,physobj2,height1,height2,time]
  445% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:205
  446% Happens(StartFlyingFromTo(agent,physobj1,physobj2),time) &
  447% HoldsAt(Height(agent,height1),time) &
  448% HoldsAt(Height(physobj1,height2),time) ->
  449% height1=height2.
  450% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:208
  451axiom(Height1=Height2,
  452   
  453    [ happens(startFlyingFromTo(Agent, Physobj1, Physobj2),
  454              Time),
  455      holds_at(height(Agent, Height1), Time),
  456      holds_at(height(Physobj1, Height2), Time)
  457    ]).
  458
  459
  460% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:210
  461%; A state constraint says that an agent
  462%; cannot fly from and to the same physical object:
  463% [agent,physobj1,physobj2,time]
  464% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:213
  465% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) ->
  466% physobj1!=physobj2.
  467% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:214
  468axiom(Physobj1\=Physobj2,
  469   
  470    [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2),
  471               Time)
  472    ]).
  473
  474
  475% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:216
  476%; A releases axiom states that if an agent
  477%; starts flying from a physical object to another
  478%; physical object, the height of the agent will
  479%; be released from inertia:
  480% [agent,physobj1,physobj2,height,time]
  481% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:221
  482% Releases(StartFlyingFromTo(agent,physobj1,physobj2),
  483%          Height(agent,height),
  484%          time).
  485% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:223
  486axiom(releases(startFlyingFromTo(Agent, Physobj1, Physobj2), height(Agent, Height), Time),
  487    []).
  488
  489
  490% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:225
  491%; A trajectory axiom states that
  492%; if an agent starts flying from
  493%; from a physical object
  494%; to another physical object
  495%; at a time and
  496%; the agent has a height at the time,
  497%; then the agent will have a height
  498%; equal to the height plus an offset
  499%; at a time equal to the time plus the offset:
  500% [agent,physobj1,physobj2,height1,height2,offset,time]
  501% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:235
  502% HoldsAt(Height(agent,height1),time) &
  503% height2=height1+offset ->
  504% Trajectory(FlyingFromTo(agent,physobj1,physobj2),time,
  505%            Height(agent,height2),offset).
  506% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:238
  507axiom(trajectory(flyingFromTo(Agent, Physobj1, Physobj2), Time, height(Agent, Height2), Offset),
  508   
  509    [ holds_at(height(Agent, Height1), Time),
  510      equals(Height2, Height1+Offset)
  511    ]).
  512
  513
  514% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:240
  515%; A trigger axiom states that
  516%; if an agent is flying
  517%; from a physical object
  518%; to another physical object and
  519%; the height of the agent
  520%; is the same as the height of the second physical object,
  521%; the agent reaches the second physical object:
  522% [agent,physobj1,physobj2,height,time]
  523% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:248
  524% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) &
  525% HoldsAt(Height(agent,height),time) &
  526% HoldsAt(Height(physobj2,height),time) ->
  527% Happens(Reach(agent,physobj2),time).
  528% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:251
  529axiom(happens(reach(Agent, Physobj2), Time),
  530   
  531    [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2),
  532               Time),
  533      holds_at(height(Agent, Height), Time),
  534      holds_at(height(Physobj2, Height), Time)
  535    ]).
  536
  537
  538% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:253
  539%; An effect axiom states that
  540%; if an agent reaches a physical object,
  541%; the height of the agent will be the
  542%; height of the physical object:
  543% [agent,physobj,height,time]
  544% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:258
  545% HoldsAt(Height(physobj,height),time) ->
  546% Initiates(Reach(agent,physobj),Height(agent,height),time).
  547% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:259
  548axiom(initiates(reach(Agent, Physobj), height(Agent, Height), Time),
  549    [holds_at(height(Physobj, Height), Time)]).
  550
  551
  552% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:261
  553%;[agent,physobj,height1,height2,time]
  554%;HoldsAt(Height(physobj,height1),time) &
  555%;height1!=height2 ->
  556%;Terminates(Reach(agent,physobj),Height(agent,height2),time).
  557%; An effect axiom states that
  558%; if an agent is flying
  559%; from a physical object
  560%; to another physical object and
  561%; the agent reaches the second physical object,
  562%; the agent will no longer be
  563%; flying from the first physical object
  564%; to the second physical object:
  565% [agent,physobj1,physobj2,time]
  566% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:275
  567% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) ->
  568% Terminates(Reach(agent,physobj2),
  569%            FlyingFromTo(agent,physobj1,physobj2),
  570%            time).
  571% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:278
  572axiom(terminates(reach(Agent, Physobj2), flyingFromTo(Agent, Physobj1, Physobj2), Time),
  573   
  574    [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2),
  575               Time)
  576    ]).
  577
  578
  579% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:280
  580%; A releases axiom states that
  581%; if an agent holds a physical object,
  582%; the height of the physical object is released from inertia:
  583% [agent,physobj,height,time]
  584% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:284
  585% Releases(Hold(agent,physobj),Height(physobj,height),time).
  586axiom(releases(hold(Agent, Physobj), height(Physobj, Height), Time),
  587    []).
  588
  589
  590% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:286
  591%;[agent,physobj,height1,height2,time]
  592%;(!{object} PartOf(physobj,object)) &
  593%;HoldsAt(Height(physobj,height1),time) &
  594%;height1 != height2 ->
  595%;Terminates(LetGoOf(agent,physobj),Height(physobj,height2),time).
  596% [agent,physobj,height,time]
  597% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:293
  598% (!{object} PartOf(physobj,object)) &
  599% HoldsAt(Height(physobj,height),time) ->
  600% Initiates(LetGoOf(agent,physobj),Height(physobj,height),time).
  601% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:295
  602axiom(initiates(letGoOf(Agent, Physobj), height(Physobj, Height), Time),
  603   
  604    [ not(partOf(Physobj, Object)),
  605      holds_at(height(Physobj, Height), Time)
  606    ]).
  607
  608
  609% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:297
  610%; A state constraint says that
  611%; if an agent is holding a physical object and
  612%; the height of the agent is height,
  613%; the height of the physical object is height:
  614% [agent,physobj,height,time]
  615% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:302
  616% HoldsAt(Holding(agent,physobj),time) &
  617% HoldsAt(Height(agent,height),time) ->
  618% HoldsAt(Height(physobj,height),time).
  619% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:304
  620axiom(holds_at(height(Physobj, Height), Time),
  621   
  622    [ holds_at(holding(Agent, Physobj), Time),
  623      holds_at(height(Agent, Height), Time)
  624    ]).
  625
  626
  627% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:306
  628%; A state constraint says that if a physical object
  629%; is part of an object,
  630%; the height of the physical object
  631%; is the same as the height of the object:
  632% [physobj,object,height,time]
  633% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:311
  634% PartOf(physobj,object) &
  635% HoldsAt(Height(object,height),time) ->
  636% HoldsAt(Height(physobj,height),time).
  637% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:313
  638axiom(holds_at(height(Physobj, Height), Time),
  639   
  640    [ partOf(Physobj, Object),
  641      holds_at(height(Object, Height), Time)
  642    ]).
  643
  644
  645% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:315
  646%;event Catch(agent,physobj)
  647%;event HitFromTo(agent,physobj,object,object)
  648%;fluent Distance(physobj,physobj,distance)
  649%;fluent FlyingAcrossFromTo(physobj,object,object)
  650%;[agent,physobj1,physobj2,physobj3,time]
  651%;Initiates(HitFromTo(agent,physobj1,physobj2,physobj3),
  652%;          FlyingAcrossFromTo(physobj1,physobj2,physobj3),
  653%;          time).
  654%;[agent,physobj1,physobj2,physobj3,distance,time]
  655%;Releases(HitFromTo(agent,physobj1,physobj2,physobj3),
  656%;         Distance(physobj1,physobj2,distance),
  657%;         time).
  658%;[agent,physobj1,physobj2,physobj3,distance,time]
  659%;Releases(HitFromTo(agent,physobj1,physobj2,physobj3),
  660%;         Distance(physobj1,physobj3,distance),
  661%;         time).
  662%;[physobj1,physobj2,physobj3,offset,time]
  663%;Trajectory(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time,
  664%;           Distance(physobj1,physobj2,offset),offset).
  665%;[physobj1,physobj2,physobj3,distance1,distance2,offset,time]
  666%;HoldsAt(Distance(physobj2,physobj3,distance1),time) &
  667%;distance2 = distance1 - time ->
  668%;Trajectory(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time,
  669%;           Distance(physobj1,physobj3,distance2),offset).
  670%;[agent,physobj1,physobj2,physobj3,time]
  671%;HoldsAt(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time) ->
  672%;Initiates(Catch(agent,physobj1),
  673%;          Holding(agent,physobj1),
  674%;          time).
  675%;[agent,physobj1,physobj2,physobj3,time]
  676%;HoldsAt(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time) ->
  677%;Terminates(Catch(agent,physobj1),
  678%;           FlyingAcrossFromTo(physobj1,physobj2,physobj3),
  679%;           time).
  680%; End of file.