```    1% Simple illustration of the use of recording good clauses found
2%       during the search using the Michalski's trains problem.
3% This will store a Prolog encoding of clauses above minscore
4% (optionally in the file specified by goodfile)
```

?- `sat(1)`,reduce,`show(good)`,`good_clauses(C)`. */

```   10:-use_module(library(aleph)).   11:- if(current_predicate(use_rendering/1)).   12:- use_rendering(prolog).   13:- endif.   14:- aleph.   15:-style_check(-discontiguous).   16:- aleph_set(i,2).   17:- aleph_set(good,true).   18% :- aleph_set(goodfile,'good.pl').	% optional file to store good clauses
19
20:- modeh(1,eastbound(+train)).   21:- modeb(1,short(+car)).   22:- modeb(1,closed(+car)).   23:- modeb(1,long(+car)).   24:- modeb(1,open_car(+car)).   25:- modeb(1,double(+car)).   26:- modeb(1,jagged(+car)).   27:- modeb(1,shape(+car,#shape)).
29:- modeb(1,wheels(+car,#int)).
30:- modeb(*,has_car(+train,-car)).   31
32:- determination(eastbound/1,short/1).   33:- determination(eastbound/1,closed/1).   34:- determination(eastbound/1,long/1).   35:- determination(eastbound/1,open_car/1).   36:- determination(eastbound/1,double/1).   37:- determination(eastbound/1,jagged/1).   38:- determination(eastbound/1,shape/2).   39:- determination(eastbound/1,wheels/2).   40:- determination(eastbound/1,has_car/2).   41:- determination(eastbound/1,load/3).
42:-begin_bg.   43% type definitions
44car(car_11).  car(car_12).  car(car_13).  car(car_14).
45car(car_21).  car(car_22).  car(car_23).
46car(car_31).  car(car_32).  car(car_33).
47car(car_41).  car(car_42).  car(car_43).  car(car_44).
48car(car_51).  car(car_52).  car(car_53).
49car(car_61).  car(car_62).
50car(car_71).  car(car_72).  car(car_73).
51car(car_81).  car(car_82).
52car(car_91).  car(car_92).  car(car_93).  car(car_94).
53car(car_101).  car(car_102).
54
55shape(elipse).  shape(hexagon).  shape(rectangle).  shape(u_shaped).
56shape(triangle). shape(circle). shape(nil).
57
58train(east1).  train(east2).  train(east3).  train(east4).  train(east5).
59train(west6).  train(west7).  train(west8).  train(west9).  train(west10).
60
61
62% eastbound train 1
63short(car_12).		% 0
64closed(car_12).		% 1
65long(car_11).		% 2
66long(car_13).
67short(car_14).
68open_car(car_11).		% 3
69open_car(car_13).
70open_car(car_14).
71shape(car_11,rectangle). % 4,5
72shape(car_12,rectangle).
73shape(car_13,rectangle).
74shape(car_14,rectangle).
79wheels(car_11,2).	  % 9,10
80wheels(car_12,2).
81wheels(car_13,3).
82wheels(car_14,2).
83has_car(east1,car_11). % 11,12
84has_car(east1,car_12).
85has_car(east1,car_13).
86has_car(east1,car_14).
87
88% eastbound train 2
89has_car(east2,car_21).
90has_car(east2,car_22).
91has_car(east2,car_23).
92short(car_21).
93short(car_22).
94short(car_23).
95shape(car_21,u_shaped).
96shape(car_22,u_shaped).
97shape(car_23,rectangle).
98open_car(car_21).
99open_car(car_22).
100closed(car_23).
104wheels(car_21,2).
105wheels(car_22,2).
106wheels(car_23,2).
107
108% eastbound train 3
109has_car(east3,car_31).
110has_car(east3,car_32).
111has_car(east3,car_33).
112short(car_31).
113short(car_32).
114long(car_33).
115shape(car_31,rectangle).
116shape(car_32,hexagon).
117shape(car_33,rectangle).
118open_car(car_31).
119closed(car_32).
120closed(car_33).
124wheels(car_31,2).
125wheels(car_32,2).
126wheels(car_33,3).
127
128% eastbound train 4
129has_car(east4,car_41).
130has_car(east4,car_42).
131has_car(east4,car_43).
132has_car(east4,car_44).
133short(car_41).
134short(car_42).
135short(car_43).
136short(car_44).
137shape(car_41,u_shaped).
138shape(car_42,rectangle).
139shape(car_43,elipse).
140shape(car_44,rectangle).
141double(car_42).
142open_car(car_41).
143open_car(car_42).
144closed(car_43).
145open_car(car_44).
150wheels(car_41,2).
151wheels(car_42,2).
152wheels(car_43,2).
153wheels(car_44,2).
154
155% eastbound train 5
156has_car(east5,car_51).
157has_car(east5,car_52).
158has_car(east5,car_53).
159short(car_51).
160short(car_52).
161short(car_53).
162shape(car_51,rectangle).
163shape(car_52,rectangle).
164shape(car_53,rectangle).
165double(car_51).
166open_car(car_51).
167closed(car_52).
168closed(car_53).
172wheels(car_51,2).
173wheels(car_52,3).
174wheels(car_53,2).
175
176% westbound train 6
177has_car(west6,car_61).
178has_car(west6,car_62).
179long(car_61).
180short(car_62).
181shape(car_61,rectangle).
182shape(car_62,rectangle).
183closed(car_61).
184open_car(car_62).
187wheels(car_61,2).
188wheels(car_62,2).
189
190% westbound train 7
191has_car(west7,car_71).
192has_car(west7,car_72).
193has_car(west7,car_73).
194short(car_71).
195short(car_72).
196long(car_73).
197shape(car_71,rectangle).
198shape(car_72,u_shaped).
199shape(car_73,rectangle).
200double(car_71).
201open_car(car_71).
202open_car(car_72).
203jagged(car_73).
207wheels(car_71,2).
208wheels(car_72,2).
209wheels(car_73,2).
210
211% westbound train 8
212has_car(west8,car_81).
213has_car(west8,car_82).
214long(car_81).
215short(car_82).
216shape(car_81,rectangle).
217shape(car_82,u_shaped).
218closed(car_81).
219open_car(car_82).
222wheels(car_81,3).
223wheels(car_82,2).
224
225% westbound train 9
226has_car(west9,car_91).
227has_car(west9,car_92).
228has_car(west9,car_93).
229has_car(west9,car_94).
230short(car_91).
231long(car_92).
232short(car_93).
233short(car_94).
234shape(car_91,u_shaped).
235shape(car_92,rectangle).
236shape(car_93,rectangle).
237shape(car_94,u_shaped).
238open_car(car_91).
239jagged(car_92).
240open_car(car_93).
241open_car(car_94).
246wheels(car_91,2).
247wheels(car_92,2).
248wheels(car_93,2).
249wheels(car_94,2).
250
251% westbound train 10
252has_car(west10,car_101).
253has_car(west10,car_102).
254short(car_101).
255long(car_102).
256shape(car_101,u_shaped).
257shape(car_102,rectangle).
258open_car(car_101).
259open_car(car_102).