16:- use_module(library(aleph)). 17:- if(current_predicate(use_rendering/1)). 18:- use_rendering(prolog). 19:- endif. 20:- aleph. 21:-style_check(-discontiguous). 22:- aleph_set(i,2). 23
24:- modeh(1,eastbound(+train)). 25:- modeb(1,short(+car)). 26:- modeb(1,closed(+car)). 27:- modeb(1,long(+car)). 28:- modeb(1,open_car(+car)). 29:- modeb(1,double(+car)). 30:- modeb(1,jagged(+car)). 31:- modeb(1,shape(+car,#shape)).
32:- modeb(1,load(+car,#shape,#int)).
33:- modeb(1,wheels(+car,#int)).
34:- modeb(*,has_car(+train,-car)). 35
36:- determination(eastbound/1,short/1). 37:- determination(eastbound/1,closed/1). 38:- determination(eastbound/1,long/1). 39:- determination(eastbound/1,open_car/1). 40:- determination(eastbound/1,double/1). 41:- determination(eastbound/1,jagged/1). 42:- determination(eastbound/1,shape/2). 43:- determination(eastbound/1,wheels/2). 44:- determination(eastbound/1,has_car/2). 45:- determination(eastbound/1,load/3). 46:-begin_bg. 48car(car_11). car(car_12). car(car_13). car(car_14).
49car(car_21). car(car_22). car(car_23).
50car(car_31). car(car_32). car(car_33).
51car(car_41). car(car_42). car(car_43). car(car_44).
52car(car_51). car(car_52). car(car_53).
53car(car_61). car(car_62).
54car(car_71). car(car_72). car(car_73).
55car(car_81). car(car_82).
56car(car_91). car(car_92). car(car_93). car(car_94).
57car(car_101). car(car_102).
58
59shape(elipse). shape(hexagon). shape(rectangle). shape(u_shaped).
60shape(triangle). shape(circle). shape(nil).
61
62train(east1). train(east2). train(east3). train(east4). train(east5).
63train(west6). train(west7). train(west8). train(west9). train(west10).
64
65
67short(car_12). 68closed(car_12). 69long(car_11). 70long(car_13).
71short(car_14).
72open_car(car_11). 73open_car(car_13).
74open_car(car_14).
75shape(car_11,rectangle). 76shape(car_12,rectangle).
77shape(car_13,rectangle).
78shape(car_14,rectangle).
79load(car_11,rectangle,3). 80load(car_12,triangle,1).
81load(car_13,hexagon,1).
82load(car_14,circle,1).
83wheels(car_11,2). 84wheels(car_12,2).
85wheels(car_13,3).
86wheels(car_14,2).
87has_car(east1,car_11). 88has_car(east1,car_12).
89has_car(east1,car_13).
90has_car(east1,car_14).
91
93has_car(east2,car_21).
94has_car(east2,car_22).
95has_car(east2,car_23).
96short(car_21).
97short(car_22).
98short(car_23).
99shape(car_21,u_shaped).
100shape(car_22,u_shaped).
101shape(car_23,rectangle).
102open_car(car_21).
103open_car(car_22).
104closed(car_23).
105load(car_21,triangle,1).
106load(car_22,rectangle,1).
107load(car_23,circle,2).
108wheels(car_21,2).
109wheels(car_22,2).
110wheels(car_23,2).
111
113has_car(east3,car_31).
114has_car(east3,car_32).
115has_car(east3,car_33).
116short(car_31).
117short(car_32).
118long(car_33).
119shape(car_31,rectangle).
120shape(car_32,hexagon).
121shape(car_33,rectangle).
122open_car(car_31).
123closed(car_32).
124closed(car_33).
125load(car_31,circle,1).
126load(car_32,triangle,1).
127load(car_33,triangle,1).
128wheels(car_31,2).
129wheels(car_32,2).
130wheels(car_33,3).
131
133has_car(east4,car_41).
134has_car(east4,car_42).
135has_car(east4,car_43).
136has_car(east4,car_44).
137short(car_41).
138short(car_42).
139short(car_43).
140short(car_44).
141shape(car_41,u_shaped).
142shape(car_42,rectangle).
143shape(car_43,elipse).
144shape(car_44,rectangle).
145double(car_42).
146open_car(car_41).
147open_car(car_42).
148closed(car_43).
149open_car(car_44).
150load(car_41,triangle,1).
151load(car_42,triangle,1).
152load(car_43,rectangle,1).
153load(car_44,rectangle,1).
154wheels(car_41,2).
155wheels(car_42,2).
156wheels(car_43,2).
157wheels(car_44,2).
158
160has_car(east5,car_51).
161has_car(east5,car_52).
162has_car(east5,car_53).
163short(car_51).
164short(car_52).
165short(car_53).
166shape(car_51,rectangle).
167shape(car_52,rectangle).
168shape(car_53,rectangle).
169double(car_51).
170open_car(car_51).
171closed(car_52).
172closed(car_53).
173load(car_51,triangle,1).
174load(car_52,rectangle,1).
175load(car_53,circle,1).
176wheels(car_51,2).
177wheels(car_52,3).
178wheels(car_53,2).
179
181has_car(west6,car_61).
182has_car(west6,car_62).
183long(car_61).
184short(car_62).
185shape(car_61,rectangle).
186shape(car_62,rectangle).
187closed(car_61).
188open_car(car_62).
189load(car_61,circle,3).
190load(car_62,triangle,1).
191wheels(car_61,2).
192wheels(car_62,2).
193
195has_car(west7,car_71).
196has_car(west7,car_72).
197has_car(west7,car_73).
198short(car_71).
199short(car_72).
200long(car_73).
201shape(car_71,rectangle).
202shape(car_72,u_shaped).
203shape(car_73,rectangle).
204double(car_71).
205open_car(car_71).
206open_car(car_72).
207jagged(car_73).
208load(car_71,circle,1).
209load(car_72,triangle,1).
210load(car_73,nil,0).
211wheels(car_71,2).
212wheels(car_72,2).
213wheels(car_73,2).
214
216has_car(west8,car_81).
217has_car(west8,car_82).
218long(car_81).
219short(car_82).
220shape(car_81,rectangle).
221shape(car_82,u_shaped).
222closed(car_81).
223open_car(car_82).
224load(car_81,rectangle,1).
225load(car_82,circle,1).
226wheels(car_81,3).
227wheels(car_82,2).
228
230has_car(west9,car_91).
231has_car(west9,car_92).
232has_car(west9,car_93).
233has_car(west9,car_94).
234short(car_91).
235long(car_92).
236short(car_93).
237short(car_94).
238shape(car_91,u_shaped).
239shape(car_92,rectangle).
240shape(car_93,rectangle).
241shape(car_94,u_shaped).
242open_car(car_91).
243jagged(car_92).
244open_car(car_93).
245open_car(car_94).
246load(car_91,circle,1).
247load(car_92,rectangle,1).
248load(car_93,rectangle,1).
249load(car_93,circle,1).
250wheels(car_91,2).
251wheels(car_92,2).
252wheels(car_93,2).
253wheels(car_94,2).
254
256has_car(west10,car_101).
257has_car(west10,car_102).
258short(car_101).
259long(car_102).
260shape(car_101,u_shaped).
261shape(car_102,rectangle).
262open_car(car_101).
263open_car(car_102).
264load(car_101,rectangle,1).
265load(car_102,rectangle,2).
266wheels(car_101,2).
267wheels(car_102,2).
268:-end_bg. 269:-begin_in_pos. 270eastbound(east1).
271eastbound(east2).
272eastbound(east3).
273eastbound(east4).
274eastbound(east5).
275:-end_in_pos. 276:-begin_in_neg. 277eastbound(west6).
278eastbound(west7).
279eastbound(west8).
280eastbound(west9).
281eastbound(west10).
282:-end_in_neg.
?-
induce(Program)
. */