2:-include(library('ec_planner/ec_test_incl')). 3%
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% examples/Mueller2006/Exercises/MixingPaints.e:19
23%
24% load foundations/Root.e
25% load foundations/EC.e
26%
27% sort palette
28 /*
29.
30*/
31.
32
33% sort color
34 /*
35.
36*/
37.
38
39% examples/Mueller2006/Exercises/MixingPaints.e:25
40%
41% palette Palette1
42 /*
43.
44*/
45.
46.
47
48% color Red, Yellow, Blue, Green
49 /*
50.
51*/
52.
53.
54
55 /*
56.
57*/
58.
59.
60
61 /*
62.
63*/
64.
65.
66
67 /*
68.
69*/
70.
71.
72
73%
74% event PlaceOnPalette(palette,color)
75 /*
76.
77*/
78.
79
80% fluent OnPalette(palette,color)
81 /*
82.
83*/
84.
85
86% examples/Mueller2006/Exercises/MixingPaints.e:31
87%
88% examples/Mueller2006/Exercises/MixingPaints.e:32
89% [palette,color,time]%
90% !Happens(PlaceOnPalette(palette,Yellow),time) |
91% !Happens(PlaceOnPalette(palette,Blue),time) ->
92% Initiates(PlaceOnPalette(palette,color),OnPalette(palette,color),time).
93 /*
94.
95*/
96.
97
98%
99%
100% examples/Mueller2006/Exercises/MixingPaints.e:37
101% [palette,color1,color2,time]%
102% Happens(PlaceOnPalette(palette,Yellow),time) &
103% color1 = Blue &
104% color2 = Green ->
105% Initiates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time).
106 /*
107happens(placeOnPalette(Palette, yellow), Time), Color1=blue, Color2=green ->
108 initiates(placeOnPalette(Palette, Color1),
109 onPalette(Palette, Color2),
110 Time).
111*/
112.
113
114%
115%
116% examples/Mueller2006/Exercises/MixingPaints.e:43
117% [palette,color1,color2,time]%
118% !(Happens(PlaceOnPalette(palette,Yellow),time) &
119% Happens(PlaceOnPalette(palette,Blue),time)) &
120% HoldsAt(OnPalette(palette,color1),time) &
121% color1 != color2 ->
122% Terminates(PlaceOnPalette(palette,color2),OnPalette(palette,color1),time).
123 /*
124not((happens(placeOnPalette(Palette, yellow), Time), happens(placeOnPalette(Palette, blue), Time))), holds_at(onPalette(Palette, Color1), Time), Color1\=Color2 ->
125 terminates(placeOnPalette(Palette, Color2),
126 onPalette(Palette, Color1),
127 Time).
128*/
129.
130
131%
132% examples/Mueller2006/Exercises/MixingPaints.e:49
133%
134% examples/Mueller2006/Exercises/MixingPaints.e:50
135% [palette,color1,color2,time]%
136% Happens(PlaceOnPalette(palette,Yellow),time) &
137% HoldsAt(OnPalette(palette,color2),time) &
138% color1 = Blue &
139% color2 != Green ->
140% Terminates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time).
141 /*
142happens(placeOnPalette(Palette, yellow), Time), holds_at(onPalette(Palette, Color2), Time), Color1=blue, Color2\=green ->
143 terminates(placeOnPalette(Palette, Color1),
144 onPalette(Palette, Color2),
145 Time).
146*/
147.
148
149%
150% examples/Mueller2006/Exercises/MixingPaints.e:56
151%
152%; state constraint
153%
154% examples/Mueller2006/Exercises/MixingPaints.e:59
155% [palette,color1,color2,time]%
156% HoldsAt(OnPalette(palette,color1),time) &
157% HoldsAt(OnPalette(palette,color2),time) ->
158% color1 = color2.
159 /*
160holds_at(onPalette(Palette, Color1), Time), holds_at(onPalette(Palette, Color2), Time) ->
161 Color1=Color2.
162*/
163.
164
165%
166%
167%; (1) place green over red
168% examples/Mueller2006/Exercises/MixingPaints.e:65
169% HoldsAt(OnPalette(Palette1,Red),0).
170 /*
171.
172*/
173.
174
175%
176% Delta:
177 /*
178.
179*/
180.
181
182 % Happens(PlaceOnPalette(Palette1,Green),0).
183 /*
184.
185*/
186.
187
188%
189%
190%; (2) place yellow+blue over green
191% Delta:
192 /*
193.
194*/
195.
196
197 % Happens(PlaceOnPalette(Palette1,Yellow),1).
198 /*
199.
200*/
201.
202
203%
204% Delta:
205 /*
206.
207*/
208.
209
210 % Happens(PlaceOnPalette(Palette1,Blue),1).
211 /*
212.
213*/
214.
215
216%
217% examples/Mueller2006/Exercises/MixingPaints.e:71
218%
219%; (3) place yellow
220% Delta:
221 /*
222.
223*/
224.
225
226 % Happens(PlaceOnPalette(Palette1,Yellow),2).
227 /*
228.
229*/
230.
231
232%
233%
234%; (4) place blue
235% Delta:
236 /*
237.
238*/
239.
240
241 % Happens(PlaceOnPalette(Palette1,Blue),3).
242 /*
243.
244*/
245.
246
247%
248% examples/Mueller2006/Exercises/MixingPaints.e:77
249%
250%; (5) place green
251% Delta:
252 /*
253.
254*/
255.
256
257 % Happens(PlaceOnPalette(Palette1,Yellow),4).
258 /*
259.
260*/
261.
262
263%
264% Delta:
265 /*
266.
267*/
268.
269
270 % Happens(PlaceOnPalette(Palette1,Blue),4).
271 /*
272.
273*/
274.
275
276%
277%
278% completion Delta Happens
279 /*
280.
281*/
282.
283
284 /*
285.
286*/
287.
288
289% examples/Mueller2006/Exercises/MixingPaints.e:83
290%
291% range time 0 5
292 /*
293.
294*/
295.
296
297% range offset 1 1
298 /*
299.
300*/
301.
302