1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/Mueller2006/Chapter14/Vision.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%; @inproceedings{ShanahanRandell:2004,
   15%;   author = "Murray Shanahan and David A. Randell",
   16%;   year = "2004",
   17%;   title = "A logic-based formulation of active visual perception",
   18%;   editor = "Didier Dubois and Christopher A. Welty and Mary-Anne Williams",
   19%;   booktitle = "\uppercase{P}roceedings of the \uppercase{N}inth \uppercase{I}nternational \uppercase{C}onference on \uppercase{P}rinciples of \uppercase{K}nowledge \uppercase{R}epresentation and \uppercase{R}easoning",
   20%;   pages = "64--72",
   21%;   address = "Menlo Park, CA",
   22%;   publisher = "AAAI Press",
   23%; }
   24%;
   25%; @book{Mueller:2006,
   26%;   author = "Erik T. Mueller",
   27%;   year = "2006",
   28%;   title = "Commonsense Reasoning",
   29%;   address = "San Francisco",
   30%;   publisher = "Morgan Kaufmann/Elsevier",
   31%; }
   32%;
   33
   34% option modeldiff on
   35:- set_ec_option(modeldiff, on).   36
   37% load foundations/Root.e
   38
   39% load foundations/EC.e
   40
   41% sort object
   42==> sort(object).
   43
   44% sort shape
   45==> sort(shape).
   46
   47% sort aspect
   48==> sort(aspect).
   49
   50% object Object1
   51==> t(object,object1).
   52
   53% aspect Aspect1, Aspect2, Aspect3
   54==> t(aspect,aspect1).
   55==> t(aspect,aspect2).
   56==> t(aspect,aspect3).
   57
   58% shape Shape1, Shape2
   59==> t(shape,shape1).
   60==> t(shape,shape2).
   61
   62% predicate Shape(object,shape)
   63 %  predicate(shape(object,shape)).
   64==> mpred_prop(shape(object,shape),predicate).
   65==> meta_argtypes(shape(object,shape)).
   66
   67% predicate Arc(shape,aspect,aspect)
   68 %  predicate(arc(shape,aspect,aspect)).
   69==> mpred_prop(arc(shape,aspect,aspect),predicate).
   70==> meta_argtypes(arc(shape,aspect,aspect)).
   71
   72% fluent Aspect(object,aspect)
   73 %  fluent(aspect(object,aspect)).
   74==> mpred_prop(aspect(object,aspect),fluent).
   75==> meta_argtypes(aspect(object,aspect)).
   76
   77% event Change(object,aspect,aspect)
   78 %  event(change(object,aspect,aspect)).
   79==> mpred_prop(change(object,aspect,aspect),event).
   80==> meta_argtypes(change(object,aspect,aspect)).
   81
   82
   83% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:48
   84%; Sigma
   85% [object,aspect1,aspect2,shape,time]
   86% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:51
   87% HoldsAt(Aspect(object,aspect1),time) &
   88% Shape(object,shape) &
   89% (Arc(shape,aspect1,aspect2) |
   90%  Arc(shape,aspect2,aspect1)) ->
   91% Initiates(Change(object,aspect1,aspect2),Aspect(object,aspect2),time).
   92% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:55
   93axiom(initiates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect2), Time),
   94   
   95    [ arc(Shape, Aspect1, Aspect2),
   96      holds_at(aspect(Object, Aspect1), Time),
   97      shape(Object, Shape)
   98    ]).
   99axiom(initiates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect2), Time),
  100   
  101    [ arc(Shape, Aspect2, Aspect1),
  102      holds_at(aspect(Object, Aspect1), Time),
  103      shape(Object, Shape)
  104    ]).
  105
  106
  107% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:57
  108% [object,aspect1,aspect2,shape,time]
  109% HoldsAt(Aspect(object,aspect1),time) &
  110% Shape(object,shape) &
  111% (Arc(shape,aspect1,aspect2) |
  112%  Arc(shape,aspect2,aspect1)) ->
  113% Terminates(Change(object,aspect1,aspect2),Aspect(object,aspect1),time).
  114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:62
  115axiom(terminates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect1), Time),
  116   
  117    [ arc(Shape, Aspect1, Aspect2),
  118      holds_at(aspect(Object, Aspect1), Time),
  119      shape(Object, Shape)
  120    ]).
  121axiom(terminates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect1), Time),
  122   
  123    [ arc(Shape, Aspect2, Aspect1),
  124      holds_at(aspect(Object, Aspect1), Time),
  125      shape(Object, Shape)
  126    ]).
  127
  128
  129% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:64
  130%; preconditions (added)
  131% [object,aspect1,aspect2,time]
  132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:67
  133% Happens(Change(object,aspect1,aspect2),time) ->
  134% HoldsAt(Aspect(object,aspect1),time).
  135% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:68
  136axiom(requires(change(Object, Aspect1, Aspect2), Time),
  137    [holds_at(aspect(Object, Aspect1), Time)]).
  138
  139
  140% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:70
  141% [object,aspect1,aspect2,aspect3,time]
  142% Happens(Change(object,aspect1,aspect2),time) &
  143% Happens(Change(object,aspect1,aspect3),time) ->
  144% aspect2=aspect3.
  145% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:73
  146axiom(Aspect2=Aspect3,
  147   
  148    [ happens(change(Object, Aspect1, Aspect2), Time),
  149      happens(change(Object, Aspect1, Aspect3), Time)
  150    ]).
  151
  152
  153% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:75
  154%; Psi
  155% [object,shape1,shape2]
  156% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:78
  157% Shape(object,shape1) &
  158% Shape(object,shape2) ->
  159% shape1=shape2.
  160% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:80
  161axiom(Shape1=Shape2,
  162    [shape(Object, Shape1), shape(Object, Shape2)]).
  163
  164
  165% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:82
  166% [object,aspect1,aspect2,time]
  167% HoldsAt(Aspect(object,aspect1),time) &
  168% HoldsAt(Aspect(object,aspect2),time) ->
  169% aspect1=aspect2.
  170% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:85
  171axiom(Aspect1=Aspect2,
  172   
  173    [ holds_at(aspect(Object, Aspect1), Time),
  174      holds_at(aspect(Object, Aspect2), Time)
  175    ]).
  176
  177
  178% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:87
  179% [aspect1,aspect2]
  180% Arc(Shape1,aspect1,aspect2) <->
  181% (aspect1=Aspect1 & aspect2=Aspect2).
  182
  183 /*  arc(shape1, Aspect1, Aspect2) <->
  184       Aspect1=aspect1,
  185       Aspect2=aspect2.
  186 */
  187% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:89
  188axiom(arc(shape1, Aspect1, Aspect2),
  189    [equals(Aspect1, aspect1), equals(Aspect2, aspect2)]).
  190
  191 /*   if(arc(shape1, Aspect1, Aspect2),
  192          (Aspect1=aspect1, Aspect2=aspect2)).
  193 */
  194
  195 /*  not(arc(shape1, Equals_Param, Equals_Param3)) :-
  196       (   not(equals(Equals_Param, aspect1))
  197       ;   not(equals(Equals_Param3, aspect2))
  198       ).
  199 */
  200axiom(not(arc(shape1, Equals_Param, Equals_Param3)),
  201    [not(equals(Equals_Param, aspect1))]).
  202axiom(not(arc(shape1, Equals_Param, Equals_Param3)),
  203    [not(equals(Equals_Param3, aspect2))]).
  204
  205 /*  equals(Equals_Param4, aspect1) :-
  206       arc(shape1, Equals_Param4, Arc_Ret).
  207 */
  208axiom(equals(Equals_Param4, aspect1),
  209    [arc(shape1, Equals_Param4, Arc_Ret)]).
  210
  211 /*  equals(Equals_Param6, aspect2) :-
  212       arc(shape1, _, Equals_Param6).
  213 */
  214axiom(equals(Equals_Param6, aspect2),
  215    [arc(shape1, _, Equals_Param6)]).
  216
  217
  218% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:91
  219% [aspect1,aspect2]
  220% Arc(Shape2,aspect1,aspect2) <->
  221% ((aspect1=Aspect1 & aspect2=Aspect3) |
  222%  (aspect1=Aspect3 & aspect2=Aspect2)).
  223
  224 /*  arc(shape2, Aspect1, Aspect2) <->
  225       (   Aspect1=aspect1,
  226           Aspect2=aspect3
  227       ;   Aspect1=aspect3,
  228           Aspect2=aspect2
  229       ).
  230 */
  231% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:94
  232axiom(arc(shape2, Aspect1, Aspect2),
  233    [equals(Aspect1, aspect1), equals(Aspect2, aspect3)]).
  234axiom(arc(shape2, Aspect1, Aspect2),
  235    [equals(Aspect1, aspect3), equals(Aspect2, aspect2)]).
  236
  237 /*   if(arc(shape2, Aspect1, Aspect2),
  238          (Aspect1=aspect1, Aspect2=aspect3;Aspect1=aspect3, Aspect2=aspect2)).
  239 */
  240
  241 /*  not(arc(shape2, Equals_Param, Equals_Param3)) :-
  242       (   not(equals(Equals_Param, aspect1))
  243       ;   not(equals(Equals_Param3, aspect3))
  244       ),
  245       (   not(equals(Equals_Param, aspect3))
  246       ;   not(equals(Equals_Param3, aspect2))
  247       ).
  248 */
  249axiom(not(arc(shape2, Equals_Param, Equals_Param3)),
  250   
  251    [ not(equals(Equals_Param, aspect3)),
  252      not(equals(Equals_Param, aspect1))
  253    ]).
  254axiom(not(arc(shape2, Equals_Param, Equals_Param3)),
  255   
  256    [ not(equals(Equals_Param3, aspect2)),
  257      not(equals(Equals_Param, aspect1))
  258    ]).
  259axiom(not(arc(shape2, Equals_Param, Equals_Param3)),
  260   
  261    [ not(equals(Equals_Param, aspect3)),
  262      not(equals(Equals_Param3, aspect3))
  263    ]).
  264axiom(not(arc(shape2, Equals_Param, Equals_Param3)),
  265   
  266    [ not(equals(Equals_Param3, aspect2)),
  267      not(equals(Equals_Param3, aspect3))
  268    ]).
  269
  270 /*  equals(Equals_Param4, aspect1) :-
  271       (   not(equals(Equals_Param4, aspect3))
  272       ;   not(equals(Equals_Param5, aspect2))
  273       ),
  274       arc(shape2, Equals_Param4, Equals_Param5).
  275 */
  276axiom(equals(Equals_Param4, aspect1),
  277   
  278    [ not(equals(Equals_Param4, aspect3)),
  279      arc(shape2, Equals_Param4, Equals_Param5)
  280    ]).
  281axiom(equals(Equals_Param4, aspect1),
  282   
  283    [ not(equals(Equals_Param5, aspect2)),
  284      arc(shape2, Equals_Param4, Equals_Param5)
  285    ]).
  286
  287 /*  equals(Equals_Param6, aspect3) :-
  288       (   not(equals(Equals_Param7, aspect3))
  289       ;   not(equals(Equals_Param6, aspect2))
  290       ),
  291       arc(shape2, Equals_Param7, Equals_Param6).
  292 */
  293axiom(equals(Equals_Param6, aspect3),
  294   
  295    [ not(equals(Equals_Param7, aspect3)),
  296      arc(shape2, Equals_Param7, Equals_Param6)
  297    ]).
  298axiom(equals(Equals_Param6, aspect3),
  299   
  300    [ not(equals(Equals_Param6, aspect2)),
  301      arc(shape2, Equals_Param7, Equals_Param6)
  302    ]).
  303
  304 /*  equals(Equals_Param8, aspect3) :-
  305       (   not(equals(Equals_Param8, aspect1))
  306       ;   not(equals(Equals_Param9, aspect3))
  307       ),
  308       arc(shape2, Equals_Param8, Equals_Param9).
  309 */
  310axiom(equals(Equals_Param8, aspect3),
  311   
  312    [ not(equals(Equals_Param8, aspect1)),
  313      arc(shape2, Equals_Param8, Equals_Param9)
  314    ]).
  315axiom(equals(Equals_Param8, aspect3),
  316   
  317    [ not(equals(Equals_Param9, aspect3)),
  318      arc(shape2, Equals_Param8, Equals_Param9)
  319    ]).
  320
  321 /*  equals(Equals_Param10, aspect2) :-
  322       (   not(equals(Equals_Param11, aspect1))
  323       ;   not(equals(Equals_Param10, aspect3))
  324       ),
  325       arc(shape2, Equals_Param11, Equals_Param10).
  326 */
  327axiom(equals(Equals_Param10, aspect2),
  328   
  329    [ not(equals(Equals_Param11, aspect1)),
  330      arc(shape2, Equals_Param11, Equals_Param10)
  331    ]).
  332axiom(equals(Equals_Param10, aspect2),
  333   
  334    [ not(equals(Equals_Param10, aspect3)),
  335      arc(shape2, Equals_Param11, Equals_Param10)
  336    ]).
  337
  338
  339% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:96
  340%; Gamma
  341
  342
  343% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:98
  344% HoldsAt(Aspect(Object1,Aspect1),0).
  345axiom(initially(aspect(object1, aspect1)),
  346    []).
  347
  348
  349% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:99
  350% HoldsAt(Aspect(Object1,Aspect2),1).
  351holds_at(aspect(object1,aspect2),1).
  352
  353
  354% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:101
  355%;completion Delta Happens
  356
  357% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:103
  358% range time 0 1
  359% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:104
  360==> range(time,0,1).
  361
  362% range offset 1 1
  363% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:105
  364==> range(offset,1,1).
  365%; End of file.