1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'foundations/ECCausal.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%; Causal Constraints
15%;
16%; @inproceedings{Shanahan:1999a,
17%; author = "Murray Shanahan",
18%; year = "1999",
19%; title = "The ramification problem in the event calculus",
20%; booktitle = "\uppercase{P}roceedings of the \uppercase{S}ixteenth \uppercase{I}nternational \uppercase{J}oint \uppercase{C}onference on \uppercase{A}rtificial \uppercase{I}ntelligence",
21%; pages = "140--146",
22%; address = "San Mateo, CA",
23%; publisher = "Morgan Kaufmann",
24%; }
25%;
26
27% predicate Started(fluent,time)
28 % predicate(started(fluent,time)).
29==> mpred_prop(started(fluent,time),predicate).
30==> meta_argtypes(started(fluent,time)).
31
32% predicate Stopped(fluent,time)
33 % predicate(stopped(fluent,time)).
34==> mpred_prop(stopped(fluent,time),predicate).
35==> meta_argtypes(stopped(fluent,time)).
36
37
43
44 51axiom(started(Fluent, Time),
52 [holds_at(Fluent, Time)]).
53axiom(started(Fluent, Time),
54
55 [ happens(Event, Time),
56 initiates(Event, Fluent, Time)
57 ]).
58
59 62
63 69axiom(not(started(Started_Param, Time3)),
70
71 [ not(happens(Happens_Param, Time3)),
72 not(holds_at(Started_Param, Time3))
73 ]).
74axiom(not(started(Started_Param, Time3)),
75
76 [ not(initiates(Happens_Param, Started_Param, Time3)),
77 not(holds_at(Started_Param, Time3))
78 ]).
79
80 86axiom(holds_at(Holds_at_Param, Time6),
87
88 [ not(happens(Happens_Param8, Time6)),
89 started(Holds_at_Param, Time6)
90 ]).
91axiom(holds_at(Holds_at_Param, Time6),
92
93 [ not(initiates(Happens_Param8, Holds_at_Param, Time6)),
94 started(Holds_at_Param, Time6)
95 ]).
96
97 101axiom(happens(Happens_Param10, Maptime),
102
103 [ not(holds_at(Holds_at_Param11, Maptime)),
104 started(Holds_at_Param11, Maptime)
105 ]).
106
107 111axiom(initiates(Initiates_Param, Holds_at_Param14, Time12),
112
113 [ not(holds_at(Holds_at_Param14, Time12)),
114 started(Holds_at_Param14, Time12)
115 ]).
116
117
123
124 131axiom(stopped(Fluent, Time),
132 [not(holds_at(Fluent, Time))]).
133axiom(stopped(Fluent, Time),
134
135 [ happens(Event, Time),
136 terminates(Event, Fluent, Time)
137 ]).
138
139 142
143 149axiom(not(stopped(Stopped_Param, Time3)),
150
151 [ not(happens(Happens_Param, Time3)),
152 holds_at(Stopped_Param, Time3)
153 ]).
154axiom(not(stopped(Stopped_Param, Time3)),
155
156 [ not(terminates(Happens_Param, Stopped_Param, Time3)),
157 holds_at(Stopped_Param, Time3)
158 ]).
159
160 166axiom(not(holds_at(Holds_at_Param, Time6)),
167
168 [ not(happens(Happens_Param8, Time6)),
169 stopped(Holds_at_Param, Time6)
170 ]).
171axiom(not(holds_at(Holds_at_Param, Time6)),
172
173 [ not(terminates(Happens_Param8, Holds_at_Param, Time6)),
174 stopped(Holds_at_Param, Time6)
175 ]).
176
177 181axiom(happens(Happens_Param10, Maptime),
182
183 [ holds_at(Holds_at_Param11, Maptime),
184 stopped(Holds_at_Param11, Maptime)
185 ]).
186
187 191axiom(terminates(Terminates_Param, Holds_at_Param14, Time12),
192
193 [ holds_at(Holds_at_Param14, Time12),
194 stopped(Holds_at_Param14, Time12)
195 ]).
196
197% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/foundations/ECCausal.e:36
198% predicate Initiated(fluent,time)
199 % predicate(initiated(fluent,time)).
200% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/foundations/ECCausal.e:37
201==> mpred_prop(initiated(fluent,time),predicate).
202==> meta_argtypes(initiated(fluent,time)).
203
204% predicate Terminated(fluent,time)
205 % predicate(terminated(fluent,time)).
206% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/foundations/ECCausal.e:38
207==> mpred_prop(terminated(fluent,time),predicate).
208==> meta_argtypes(terminated(fluent,time)).
209
210
216
217 223axiom(initiated(Fluent, Time),
224 [not(happens(Event, Time)), started(Fluent, Time)]).
225axiom(initiated(Fluent, Time),
226
227 [ not(terminates(Event, Fluent, Time)),
228 started(Fluent, Time)
229 ]).
230
231 234
235 241axiom(not(initiated(Initiated_Param, Maptime)),
242 [not(started(Initiated_Param, Maptime))]).
243axiom(not(initiated(Initiated_Param, Maptime)),
244
245 [ happens(Happens_Param, Maptime),
246 terminates(Happens_Param, Initiated_Param, Maptime)
247 ]).
248
249 252axiom(started(Started_Param, Started_Ret),
253 [initiated(Started_Param, Started_Ret)]).
254
255 259axiom(not(happens(Happens_Param9, Maptime8)),
260
261 [ terminates(Happens_Param9, Initiated_Param10, Maptime8),
262 initiated(Initiated_Param10, Maptime8)
263 ]).
264
265 269axiom(not(terminates(Terminates_Param, Initiated_Param13, Maptime11)),
270
271 [ happens(Terminates_Param, Maptime11),
272 initiated(Initiated_Param13, Maptime11)
273 ]).
274
275
281
282 288axiom(terminated(Fluent, Time),
289 [not(happens(Event, Time)), stopped(Fluent, Time)]).
290axiom(terminated(Fluent, Time),
291
292 [ not(initiates(Event, Fluent, Time)),
293 stopped(Fluent, Time)
294 ]).
295
296 299
300 306axiom(not(terminated(Terminated_Param, Maptime)),
307 [not(stopped(Terminated_Param, Maptime))]).
308axiom(not(terminated(Terminated_Param, Maptime)),
309
310 [ happens(Happens_Param, Maptime),
311 initiates(Happens_Param, Terminated_Param, Maptime)
312 ]).
313
314 317axiom(stopped(Stopped_Param, Stopped_Ret),
318 [terminated(Stopped_Param, Stopped_Ret)]).
319
320 324axiom(not(happens(Happens_Param9, Maptime8)),
325
326 [ initiates(Happens_Param9, Terminated_Param10, Maptime8),
327 terminated(Terminated_Param10, Maptime8)
328 ]).
329
330 334axiom(not(initiates(Initiates_Param, Terminated_Param13, Maptime11)),
335
336 [ happens(Initiates_Param, Maptime11),
337 terminated(Terminated_Param13, Maptime11)
338 ]).
339
340