1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Mueller2006/Chapter4/AlarmClock.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% load foundations/Root.e 24 25% load foundations/EC.e 26 27% sort agent 28==> sort(agent). 29 30% sort clock 31==> sort(clock). 32 33% fluent Beeping(clock) 34 % fluent(beeping(clock)). 35==> mpred_prop(beeping(clock),fluent). 36==> meta_argtypes(beeping(clock)). 37 38% fluent AlarmTime(clock,time) 39 % fluent(alarmTime(clock,time)). 40==> mpred_prop(alarmTime(clock,time),fluent). 41==> meta_argtypes(alarmTime(clock,time)). 42 43% fluent AlarmOn(clock) 44 % fluent(alarmOn(clock)). 45==> mpred_prop(alarmOn(clock),fluent). 46==> meta_argtypes(alarmOn(clock)). 47 48% event SetAlarmTime(agent,clock,time) 49 % event(setAlarmTime(agent,clock,time)). 50==> mpred_prop(setAlarmTime(agent,clock,time),event). 51==> meta_argtypes(setAlarmTime(agent,clock,time)). 52 53% event StartBeeping(clock) 54 % event(startBeeping(clock)). 55==> mpred_prop(startBeeping(clock),event). 56==> meta_argtypes(startBeeping(clock)). 57 58% event TurnOnAlarm(agent,clock) 59 % event(turnOnAlarm(agent,clock)). 60==> mpred_prop(turnOnAlarm(agent,clock),event). 61==> meta_argtypes(turnOnAlarm(agent,clock)). 62 63% event TurnOffAlarm(agent,clock) 64 % event(turnOffAlarm(agent,clock)). 65==> mpred_prop(turnOffAlarm(agent,clock),event). 66==> meta_argtypes(turnOffAlarm(agent,clock)). 67 68% agent Nathan 69==> t(agent,nathan). 70 71% clock Clock 72==> t(clock,clock). 73%; Sigma 74% [agent,clock,time1,time2,time] 75% HoldsAt(AlarmTime(clock,time1),time) & 76% time1!=time2 -> 77% Initiates(SetAlarmTime(agent,clock,time2),AlarmTime(clock,time2),time). 78axiom(initiates(setAlarmTime(Agent, Clock, Time2), alarmTime(Clock, Time2), Time), 79 80 [ holds_at(alarmTime(Clock, Time1), Time), 81 { dif(Time1, Time2) 82 } 83 ]). 84 85 86% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:44 87% [agent,clock,time1,time2,time] 88% HoldsAt(AlarmTime(clock,time1),time) & 89% time1!=time2 -> 90% Terminates(SetAlarmTime(agent,clock,time2),AlarmTime(clock,time1),time). 91% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:47 92axiom(terminates(setAlarmTime(Agent, Clock, Time2), alarmTime(Clock, Time1), Time), 93 94 [ holds_at(alarmTime(Clock, Time1), Time), 95 { dif(Time1, Time2) 96 } 97 ]). 98 99 100% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:49 101% [agent,clock,time] 102% Initiates(TurnOnAlarm(agent,clock),AlarmOn(clock),time). 103% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:50 104axiom(initiates(turnOnAlarm(Agent, Clock), alarmOn(Clock), Time), 105 []). 106 107 108% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:52 109% [agent,clock,time] 110% Terminates(TurnOffAlarm(agent,clock),AlarmOn(clock),time). 111% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:53 112axiom(terminates(turnOffAlarm(Agent, Clock), alarmOn(Clock), Time), 113 []). 114 115 116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:55 117% [clock,time] 118% Initiates(StartBeeping(clock),Beeping(clock),time). 119% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:56 120axiom(initiates(startBeeping(Clock), beeping(Clock), Time), 121 []). 122 123 124% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:58 125% [agent,clock,time] 126% Terminates(TurnOffAlarm(agent,clock),Beeping(clock),time). 127% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:59 128axiom(terminates(turnOffAlarm(Agent, Clock), beeping(Clock), Time), 129 []). 130 131 132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:61 133%; Delta 134% [clock,time] 135% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:64 136% HoldsAt(AlarmTime(clock,time),time) & 137% HoldsAt(AlarmOn(clock),time) -> 138% Happens(StartBeeping(clock),time). 139% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:66 140axiom(happens(startBeeping(Clock), Time), 141 142 [ holds_at(alarmTime(Clock, Time), Time), 143 holds_at(alarmOn(Clock), Time) 144 ]). 145 146 147% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:68 148% Happens(SetAlarmTime(Nathan,Clock,2),0). 149axiom(happens(setAlarmTime(nathan, clock, 2), t), 150 [is_time(0)]). 151 152 153% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:69 154% Happens(TurnOnAlarm(Nathan,Clock),1). 155axiom(happens(turnOnAlarm(nathan, clock), start), 156 [is_time(1), b(t, start), ignore(t+1=start)]). 157 158 159% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:71 160%; Psi 161% [clock,time1,time2,time] 162% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:74 163% HoldsAt(AlarmTime(clock,time1),time) & 164% HoldsAt(AlarmTime(clock,time2),time) -> 165% time1=time2. 166% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:76 167axiom(Time1=Time2, 168 169 [ holds_at(alarmTime(Clock, Time1), Time), 170 holds_at(alarmTime(Clock, Time2), Time) 171 ]). 172 173 174% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:78 175%; Gamma 176 177 178% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:80 179% !HoldsAt(AlarmOn(Clock),0). 180 % not(initially(alarmOn(clock))). 181axiom(not(initially(alarmOn(clock))), 182 []). 183 184 185% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:81 186% !HoldsAt(Beeping(Clock),0). 187 % not(initially(beeping(clock))). 188axiom(not(initially(beeping(clock))), 189 []). 190 191 192% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:82 193% HoldsAt(AlarmTime(Clock,3),0). 194axiom(initially(alarmTime(clock, 3)), 195 []). 196 197% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:84 198% completion Happens 199% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:85 200==> completion(happens). 201 202% range time 0 3 203% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:87 204==> range(time,0,3). 205 206% range offset 1 1 207% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter4/AlarmClock.e:88 208==> range(offset,1,1). 209%; End of file.