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.