1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Shanahan1997/BusRide.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%; @article{Kartha:1994,
15%; author = "G. Neelakantan Kartha",
16%; year = "1994",
17%; title = "Two counterexamples related to \uppercase{B}aker's approach to the frame problem",
18%; journal = "Artificial Intelligence",
19%; volume = "69",
20%; number = "1--2",
21%; pages = "379--391",
22%; }
23%;
24%; \fullciteA[pp. 359--361]{Shanahan:1997}
25%;
26%; @book{Shanahan:1997,
27%; author = "Murray Shanahan",
28%; year = "1997",
29%; title = "Solving the Frame Problem",
30%; address = "Cambridge, MA",
31%; publisher = "MIT Press",
32%; }
33%;
34%; modifications from Shanahan's formulation:
35%; InitiallyN -> !HoldsAt
36%; timestamps
37%;
38
39% load foundations/Root.e
40
41% load foundations/EC.e
42
43% fluent HasTicket()
44 % fluent(hasTicket()).
45==> mpred_prop(hasTicket(),fluent).
46==> meta_argtypes(hasTicket()).
47
48% fluent OnRed()
49 % fluent(onRed()).
50==> mpred_prop(onRed(),fluent).
51==> meta_argtypes(onRed()).
52
53% fluent OnYellow()
54 % fluent(onYellow()).
55==> mpred_prop(onYellow(),fluent).
56==> meta_argtypes(onYellow()).
57
58% event Buy()
59 % event(buy()).
60==> mpred_prop(buy(),event).
61==> meta_argtypes(buy()).
62
63% event Board()
64 % event(board()).
65==> mpred_prop(board(),event).
66==> meta_argtypes(board()).
67
68% event BoardRed()
69 % event(boardRed()).
70==> mpred_prop(boardRed(),event).
71==> meta_argtypes(boardRed()).
72
73% event BoardYellow()
74 % event(boardYellow()).
75==> mpred_prop(boardYellow(),event).
76==> meta_argtypes(boardYellow()).
77
78
81 82
83 86
87 91axiom(happens(boardRed(), Maptime),
92 [not(happens(boardYellow(), Maptime)), happens(board(), Maptime)]).
93
94 98axiom(happens(boardYellow(), Maptime2),
99 [not(happens(boardRed(), Maptime2)), happens(board(), Maptime2)]).
100
101 105axiom(not(happens(board(), Maptime3)),
106
107 [ not(happens(boardRed(), Maptime3)),
108 not(happens(boardYellow(), Maptime3))
109 ]).
110
111
114 115axiom(initiates(buy(), hasTicket(), Time),
116 []).
117
118
121 122axiom(initiates(boardRed(), onRed(), Time),
123 [holds_at(hasTicket(), Time)]).
124
125
128 129axiom(initiates(boardYellow(), onYellow(), Time),
130 [holds_at(hasTicket(), Time)]).
131
132
135 136
137 141
142 145axiom(not(holds_at(onRed(), Time1)),
146 [holds_at(onYellow(), Time1)]).
147
148 151axiom(not(holds_at(onYellow(), Time2)),
152 [holds_at(onRed(), Time2)]).
153
154
157 158axiom(holds_at(hasTicket(), Time),
159 [holds_at(onRed(), Time)]).
160
161
164 165axiom(holds_at(hasTicket(), Time),
166 [holds_at(onYellow(), Time)]).
167
168
171holds_at(onRed(),2).
172
173
176 177axiom(not(initially(hasTicket())),
178 []).
179
180
183axiom(happens(buy(), t),
184 [is_time(0)]).
185
186
189axiom(happens(board(), start),
190 [is_time(1), b(t, start), ignore(t+1=start)]).
191
192
193% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Shanahan1997/BusRide.e:61
194%; ABDUCED Happens(BoardRed(), 1).
195
196% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Shanahan1997/BusRide.e:63
197% completion Happens
198% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Shanahan1997/BusRide.e:64
199==> completion(happens).
200
201% range time 0 2
202% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Shanahan1997/BusRide.e:66
203==> range(time,0,2).
204
205% range offset 1 1
206% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Shanahan1997/BusRide.e:67
207==> range(offset,1,1).