12
14
15domain_name(translog4).
16
17sorts(non_primitive_sorts, [
18 location, city_location,tcentre,not_tcentre, route,
19 physical_obj, vehicle, railv]).
20sorts(primitive_sorts, [
21 airport, aircraft, train_station, post_office, clocation, city, package,
22 train, traincar, truck, road_route, rail_route, region]).
23sorts(physical_obj, [vehicle, package]).
24sorts(vehicle, [railv,truck,aircraft]).
25sorts(railv, [traincar,train]).
26sorts(location, [city_location,city,airport]).
27sorts(city_location, [tcentre,not_tcentre]).
28sorts(tcentre, [train_station]).
29sorts(not_tcentre, [clocation,post_office]).
30sorts(route, [road_route, rail_route]).
31
32objects(aircraft,[ac1,ac2,ac3,ac4,ac5,ac6,ac7,ac8,ac9,ac10,ac11,ac12,
33 ac13,ac14,ac15,ac16]).
34objects(airport, [ap1, ap2, ap3, ap4 ]).
35
36objects(train_station, [
37 city1_ts1_x,city2_ts1_x,city3_ts1_x,
38 city1_ts1_y,city2_ts1_y,city3_ts1_y,
39 city1_ts1_z,city2_ts1_z,city3_ts1_z,
40 city1_ts1,city2_ts1,city3_ts1]).
41objects(clocation, [
42 city1_cl1_x,city1_cl2_x,city2_cl1_x,city3_cl1_x,
43 city1_cl1_y,city1_cl2_y,city2_cl1_y,city3_cl1_y,
44 city1_cl1_z,city1_cl2_z,city2_cl1_z,city(n3cl1z),
45 city1_cl1,city1_cl2,city2_cl1,city3_cl1]).
46objects(post_office, [ post_1]).
47objects(city, [
48 city1_x, city2_x, city3_x,
49 city1_y, city2_y, city3_y,
50 city1_z, city2_z, city3_z,
51 city1, city2, city3]).
52objects(train,[
53 train1_x,train2_x,
54 train1_z,train2_z,
55 train1_y,train2_y,
56 train1,train2]).
57objects(traincar,[
58 traincar1_x,
59 traincar1_z,
60 traincar1_y,
61 traincar1]).
62objects(road_route, [
63 road_route_21_x,road_route_32_x, road_route_31_x ,
64 road_route_21_z,road_route_32_z, road_route_31_z ,
65 road_route_21_y,road_route_32_y, road_route_31_y ,
66 road_route_21,road_route_32, road_route_31 ]).
67objects(rail_route,[
68 rail_route(n2x),rail_route(n3x) ,
69 rail_route(n2z),rail_route(n3z) ,
70 rail_route(n2y),rail_route(n3y) ,
71 rail_route_2,rail_route_3 ]).
72objects(truck, [
73 truck_1_x, truck(n2x), truck(n3x), truck_11_x, truck_22_x, truck_33_x,
74 truck_1_z, truck(n2z), truck(n3z), truck_11_z, truck_22_z, truck_33_z,
75 truck_1_y, truck(n2y), truck(n3y), truck_11_y, truck_22_y, truck_33_y,
76 truck_1, truck_2, truck_3, truck_11, truck_22, truck_33]).
77
78objects(package,[pk_1, pk_2, pk_3, pk_4, pk_5, pk_6,
79 pk_1_x, pk(n2x), pk(n3x), pk_4_x, pk_5_x, pk_6_x,
80 pk_1_z, pk(n2z), pk(n3z), pk_4_z, pk_5_z, pk_6_z,
81 pk_1_y, pk(n2y), pk(n3y), pk_4_y, pk_5_y, pk_6_y]).
82
83objects(region,[east,west,south,north]).
84
86
87predicates([
89 at(physical_obj,city_location),
90 moveable(vehicle),
91 available(vehicle),
92 busy(vehicle),
93 attached(railv,railv),
94 unattached(railv),
95 waiting(package),
96 certified(package),
97 uncertified(package),
98 loaded(package,truck),
99 loaded(package,traincar),
100 loaded(package,aircraft),
101 delivered(package),
103 rv_compatible(route,vehicle),
104 ap_serves(airport,city),
105 connects(route,location,location),
106 in_city(location, city),
107 in_region(location,region),
108 serves_region(airport,region),
109 route_available(route) ]).
110
112
115
116implied_invariant([loaded(P,V)], [at(V,L),at(P,L)]).
117
118inconsistent_constraint([certified(P), not_insured(P)]).
119
120atomic_invariants([
121 rv_compatible(rail_route,traincar),
122 rv_compatible(rail_route,train),
123 rv_compatible(road_route,truck),
124
125 serves_region(ap1,east),
126 in_city(ap1,city1),in_region(ap1,east),
127
128 in_city(city1_cl1,city1), in_city(city1_ts1,city1),
129 in_city(city1_cl2,city1), in_city(city1_ts2,city1),
130 in_city(city2_cl1,city2), in_city(city2_ts1,city2),
131 in_city(city3_cl1,city3), in_city(city3_ts1,city3),
132 serves(city1_ts1,city1), serves(city1_ts2,city1),
133 serves(city2_ts1,city2),
134 serves(city3_ts1,city3),
135 route_available(road_route_31),
136 connects(road_route_31,city3,city1),
137 connects(road_route_31,city1,city3),
138 route_available(road_route_32),
139 connects(road_route_32,city3,city2),
140 connects(road_route_32,city2,city3),
141 route_available(rail_route_1),
142 connects(rail_route_1,city1_ts2,city1_ts1),
143 connects(rail_route_1,city1_ts1,city1_ts2),
144 route_available(rail_route_2),
145 connects(rail_route_2,city2_ts1,city1_ts1),
146 connects(rail_route_2,city1_ts1,city2_ts1),
147 connects(road_route_21,city2,city1),
148 route_available(road_route_21),
149 connects(road_route_21,city1,city2),
150
151 in_region(city1_ts1,east),in_region(city1,east),
152 in_region(city2_ts1,east), in_region(city2,east),
153 in_region(city3_ts1,east), in_region(city3,east),
154 in_region(city1_ts2,east), in_region(city1_cl1,east),
155 in_region(city1_cl2,east), in_region(city2_cl1,east),
156 in_region(city3_cl1,east),
157
158 serves_region(ap2,west),
159 in_city(ap2,city1_x),in_region(ap2,west),
160
161 in_region(city1_ts1_x,west),in_region(city1_x,west),
162 in_region(city2_ts1_x,west), in_region(city2_x,west),
163 in_region(city3_ts1_x,west), in_region(city3_x,west),
164 in_region(city1_ts2_x,west), in_region(city1_cl1_x,west),
165 in_region(city1_cl2_x,west), in_region(city2_cl1_x,west),
166 in_region(city3_cl1_x,west),
167
168 in_city(city1_cl1_x,city1_x), in_city(city1_ts1_x,city1_x),
169 in_city(city1_cl2_x,city1_x), in_city(city1_ts2_x,city1_x),
170 in_city(city2_cl1_x,city2_x), in_city(city2_ts1_x,city2_x),
171 in_city(city3_cl1_x,city3_x), in_city(city3_ts1_x,city3_x),
172 serves(city1_ts1_x,city1_x), serves(city1_ts2_x,city1_x),
173 serves(city2_ts1_x,city2_x),
174 serves(city3_ts1_x,city3_x),
175 route_available(road_route_31_x),
176 connects(road_route_31_x,city3_x,city1_x),
177 connects(road_route_31_x,city1_x,city3_x),
178 route_available(road_route_32_x),
179 connects(road_route_32_x,city3_x,city2_x),
180 connects(road_route_32_x,city2_x,city3_x),
181 route_available(rail_route_1_x),
182 connects(rail_route_1_x,city1_ts2_x,city1_ts1_x),
183 connects(rail_route_1_x,city1_ts1_x,city1_ts2_x),
184 route_available(rail_route(n2x)),
185 connects(rail_route(n2x),city2_ts1_x,city1_ts1_x),
186 connects(rail_route(n2x),city1_ts1_x,city2_ts1_x),
187
188 connects(road_route_21_x,city1_x,city2_x),
189 connects(road_route_21_x,city2_x,city1_x),
190 route_available(road_route_21_x),
191
192 serves_region(ap3,south),
193 in_city(ap3,city1_y),in_region(ap3,south),
194
195 in_region(city1_ts1_y,south),in_region(city1_y,south),
196 in_region(city2_ts1_y,south), in_region(city2_y,south),
197 in_region(city3_ts1_y,south), in_region(city3_y,south),
198 in_region(city1_ts2_y,south), in_region(city1_cl1_y,south),
199 in_region(city1_cl2_y,south), in_region(city2_cl1_y,south),
200 in_region(city3_cl1_y,south),
201
202 in_city(city1_cl1_y,city1_y), in_city(city1_ts1_y,city1_y),
203 in_city(city1_cl2_y,city1_y), in_city(city1_ts2_y,city1_y),
204 in_city(city2_cl1_y,city2_y), in_city(city2_ts1_y,city2_y),
205 in_city(city3_cl1_y,city3_y), in_city(city3_ts1_y,city3_y),
206 serves(city1_ts1_y,city1_y), serves(city1_ts2_y,city1_y),
207 serves(city2_ts1_y,city2_y),
208 serves(city3_ts1_y,city3_y),
209 route_available(road_route_31_y),
210 connects(road_route_31_y,city3_y,city1_y),
211 connects(road_route_31_y,city1_y,city3_y),
212 route_available(road_route_32_y),
213 connects(road_route_32_y,city3_y,city2_y),
214 connects(road_route_32_y,city2_y,city3_y),
215 route_available(rail_route_1_y),
216 connects(rail_route_1_y,city1_ts2_y,city1_ts1_y),
217 connects(rail_route_1_y,city1_ts1_y,city1_ts2_y),
218 route_available(rail_route(n2y)),
219 connects(rail_route(n2y),city2_ts1_y,city1_ts1_y),
220 connects(rail_route(n2y),city1_ts1_y,city2_ts1_y),
221
222 connects(road_route_21_y,city1_y,city2_y),
223 connects(road_route_21_y,city2_y,city1_y),
224 route_available(road_route_21_y),
225
226 serves_region(ap4,north),
227 in_city(ap4,city1_z),in_region(ap4,north),
228
229 in_region(city1_ts1_z,north),in_region(city1_z,north),
230 in_region(city2_ts1_z,north), in_region(city2_z,north),
231 in_region(city3_ts1_z,north), in_region(city3_z,north),
232 in_region(city1_ts2_z,north), in_region(city1_cl1_z,north),
233 in_region(city1_cl2_z,north), in_region(city2_cl1_z,north),
234 in_region(city(n3cl1z),north),
235
236 in_city(city1_cl1_z,city1_z), in_city(city1_ts1_z,city1_z),
237 in_city(city1_cl2_z,city1_z), in_city(city1_ts2_z,city1_z),
238 in_city(city2_cl1_z,city2_z), in_city(city2_ts1_z,city2_z),
239 in_city(city(n3cl1z),city3_z), in_city(city3_ts1_z,city3_z),
240 serves(city1_ts1_z,city1_z), serves(city1_ts2_z,city1_z),
241 serves(city2_ts1_z,city2_z),
242 serves(city3_ts1_z,city3_z),
243 route_available(road_route_31_z),
244 connects(road_route_31_z,city3_z,city1_z),
245 connects(road_route_31_z,city1_z,city3_z),
246 route_available(road_route_32_z),
247 connects(road_route_32_z,city3_z,city2_z),
248 connects(road_route_32_z,city2_z,city3_z),
249 route_available(rail_route_1_z),
250 connects(rail_route_1_z,city1_ts2_z,city1_ts1_z),
251 connects(rail_route_1_z,city1_ts1_z,city1_ts2_z),
252 route_available(rail_route(n2z)),
253 connects(rail_route(n2z),city2_ts1_z,city1_ts1_z),
254 connects(rail_route(n2z),city1_ts1_z,city2_ts1_z),
255
256 connects(road_route_21_z,city1_z,city2_z),
257 connects(road_route_21_z,city2_z,city1_z),
258 route_available(road_route_21_z)
259 ]).
260
262
263substate_classes(physical_obj, P,
264 [
265 [at(P,L)]
266 ]).
267substate_classes(railv, V,
268 [
269 [unattached(V)] , [attached(V,V1)]
270 ]).
271substate_classes(vehicle, T,
272 [
273 [moveable(T),available(T)],
274 [moveable(T),busy(T)]
275 ]).
276
277substate_classes(package, P,
278 [
279 [uncertified(P)],
280 [waiting(P),certified(P)],
281 [loaded(P,V),certified(P)],
282 [delivered(P)]
283 ])