1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'examples/Mueller2006/Chapter9/RouletteWheel.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%; @book{Mueller:2006,
   15%;   author = "Erik T. Mueller",
   16%;   year = "2006",
   17%;   title = "Commonsense Reasoning",
   18%;   address = "San Francisco",
   19%;   publisher = "Morgan Kaufmann/Elsevier",
   20%; }
   21%;
   22
   23% option modeldiff on
   24:- set_ec_option(modeldiff, on).   25
   26% load foundations/Root.e
   27
   28% load foundations/EC.e
   29
   30% sort dealer
   31==> sort(dealer).
   32
   33% sort wheel
   34==> sort(wheel).
   35
   36% sort value: integer
   37==> subsort(value,integer).
   38
   39% wheel Wheel1
   40==> t(wheel,wheel1).
   41
   42% dealer Dealer1
   43==> t(dealer,dealer1).
   44
   45% fluent WheelNumberDeterminer(wheel,value)
   46 %  fluent(wheelNumberDeterminer(wheel,value)).
   47==> mpred_prop(wheelNumberDeterminer(wheel,value),fluent).
   48==> meta_argtypes(wheelNumberDeterminer(wheel,value)).
   49
   50% fluent WheelNumber(wheel,value)
   51 %  fluent(wheelNumber(wheel,value)).
   52==> mpred_prop(wheelNumber(wheel,value),fluent).
   53==> meta_argtypes(wheelNumber(wheel,value)).
   54
   55% noninertial WheelNumberDeterminer
   56==> noninertial(wheelNumberDeterminer).
   57
   58% event Spin(dealer,wheel)
   59 %  event(spin(dealer,wheel)).
   60==> mpred_prop(spin(dealer,wheel),event).
   61==> meta_argtypes(spin(dealer,wheel)).
   62
   63% event Reset(dealer,wheel)
   64 %  event(reset(dealer,wheel)).
   65==> mpred_prop(reset(dealer,wheel),event).
   66==> meta_argtypes(reset(dealer,wheel)).
   67
   68
   69% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:38
   70% [wheel,time]
   71% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:39
   72% {value}% HoldsAt(WheelNumberDeterminer(wheel,value),time).
   73
   74 /*  exists([Value],
   75          holds_at(wheelNumberDeterminer(Wheel,Value),
   76   		Time)).
   77 */
   78
   79 /*  holds_at(wheelNumberDeterminer(WheelNumberDeterminer_Param, Some_Param), Time4) :-
   80       some(Some_Param,
   81            '$kolem_Fn_19'(WheelNumberDeterminer_Param, Time4)).
   82 */
   83% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:40
   84axiom(holds_at(wheelNumberDeterminer(WheelNumberDeterminer_Param, Some_Param), Time4),
   85   
   86    [ some(Some_Param,
   87           '$kolem_Fn_19'(WheelNumberDeterminer_Param, Time4))
   88    ]).
   89
   90 /*  not(some(Some_Param8, '$kolem_Fn_19'(Fn_19_Param, Time7))) :-
   91       not(holds_at(wheelNumberDeterminer(Fn_19_Param, Some_Param8),
   92                    Time7)).
   93 */
   94axiom(not(some(Some_Param8, '$kolem_Fn_19'(Fn_19_Param, Time7))),
   95   
   96    [ not(holds_at(wheelNumberDeterminer(Fn_19_Param, Some_Param8),
   97                   Time7))
   98    ]).
   99
  100
  101% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:42
  102% [wheel,value1,value2,time]
  103% HoldsAt(WheelNumberDeterminer(wheel,value1),time) &
  104% HoldsAt(WheelNumberDeterminer(wheel,value2),time) ->
  105% value1=value2.
  106% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:45
  107axiom(Value1=Value2,
  108   
  109    [ holds_at(wheelNumberDeterminer(Wheel, Value1), Time),
  110      holds_at(wheelNumberDeterminer(Wheel, Value2), Time)
  111    ]).
  112
  113
  114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:47
  115% [dealer,wheel,value,time]
  116% HoldsAt(WheelNumberDeterminer(wheel,value),time) ->
  117% Initiates(Spin(dealer,wheel),WheelNumber(wheel,value),time).
  118% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:49
  119axiom(initiates(spin(Dealer, Wheel), wheelNumber(Wheel, Value), Time),
  120    [holds_at(wheelNumberDeterminer(Wheel, Value), Time)]).
  121
  122
  123% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:51
  124% [dealer,wheel,value1,value2,time]
  125% HoldsAt(WheelNumber(wheel,value1),time) &
  126% HoldsAt(WheelNumberDeterminer(wheel,value2),time) &
  127% value1!=value2 ->
  128% Terminates(Spin(dealer,wheel),WheelNumber(wheel,value1),time).
  129% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:55
  130axiom(terminates(spin(Dealer, Wheel), wheelNumber(Wheel, Value1), Time),
  131   
  132    [ holds_at(wheelNumber(Wheel, Value1), Time),
  133      holds_at(wheelNumberDeterminer(Wheel, Value2), Time),
  134      { dif(Value1, Value2)
  135      }
  136    ]).
  137
  138
  139% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:57
  140% [dealer,wheel,value,time]
  141% Terminates(Reset(dealer,wheel),WheelNumber(wheel,value),time).
  142% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:58
  143axiom(terminates(reset(Dealer, Wheel), wheelNumber(Wheel, Value), Time),
  144    []).
  145
  146
  147% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:60
  148% [wheel,value1,value2,time]
  149% HoldsAt(WheelNumber(wheel,value1),time) &
  150% HoldsAt(WheelNumber(wheel,value2),time) ->
  151% value1=value2.
  152% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:63
  153axiom(Value1=Value2,
  154   
  155    [ holds_at(wheelNumber(Wheel, Value1), Time),
  156      holds_at(wheelNumber(Wheel, Value2), Time)
  157    ]).
  158
  159
  160% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:65
  161% [value]
  162 % !HoldsAt(WheelNumber(Wheel1,value),0).
  163 %  not(initially(wheelNumber(wheel1,Value))).
  164axiom(not(initially(wheelNumber(wheel1, WheelNumber_Ret))),
  165    []).
  166
  167
  168% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:67
  169% Happens(Spin(Dealer1,Wheel1),0).
  170axiom(happens(spin(dealer1, wheel1), t),
  171    [is_time(0)]).
  172
  173
  174% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:68
  175%;Happens(Reset(Dealer1,Wheel1),1).
  176%; added to prune models
  177
  178
  179% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:71
  180% HoldsAt(WheelNumberDeterminer(Wheel1, 1),1).
  181holds_at(wheelNumberDeterminer(wheel1,1),1).
  182
  183% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:73
  184% completion Happens
  185% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:74
  186==> completion(happens).
  187
  188% range value 1 3
  189% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:76
  190==> range(value,1,3).
  191
  192% range time 0 1
  193% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:77
  194==> range(time,0,1).
  195
  196% range offset 1 1
  197% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter9/RouletteWheel.e:78
  198==> range(offset,1,1).
  199%; End of file.