2
3:- expects_dialect(cilog). 4
7
8preconditions(move(Ag,Pos,Pos_1),
9 [autonomous(Ag), adjacent(Pos,Pos_1), sitting_at(Ag,Pos)]).
10achieves(move(Ag,Pos,Pos_1),sitting_at(Ag,Pos_1)).
11deletes(move(Ag,Pos,Pos_1),sitting_at(Ag,Pos)).
12
14preconditions(pickup(Ag,Obj),
15 [autonomous(Ag), Ag \= Obj, location(Pos),
16 sitting_at(Obj,Pos), at(Ag,Pos) ]).
17achieves(pickup(Ag,Obj), carrying(Ag,Obj)).
18deletes(pickup(Ag,Obj), sitting_at(Obj,Pos)).
19
21preconditions(putdown(Ag,Obj,Pos),
22 [autonomous(Ag), Ag \= Obj, at(Ag,Pos), carrying(Ag,Obj)]).
23achieves(putdown(Ag,Obj,Pos),sitting_at(Obj,Pos)).
24deletes(putdown(Ag,Obj,Pos),carrying(Ag,Obj)).
25
27preconditions(unlock(Ag,Door),
28 [autonomous(Ag), blocks(Door,P_1,_), opens(Key,Door),
29 carrying(Ag,Key), at(Ag,P_1)]).
30achieves(unlock(Ag,Door),unlocked(Door)).
31
33primitive(carrying(_,_)).
34primitive(sitting_at(_,_)).
35primitive(unlocked(_)).
36primitive(autonomous(_)).
37
39
40clause(at(Obj,Pos),[sitting_at(Obj,Pos)] ).
41clause(at(Obj,Pos),[autonomous(Ag), Ag \= Obj, carrying(Ag,Obj), at(Ag,Pos)]).
42
43clause(location(o109),[]).
44clause(location(o103),[]).
45clause(location(storage),[]).
46clause(location(o111),[]).
47clause(location(mail),[]).
48clause(location(lab2),[]).
49
50
51clause(adjacent(o109,o103),[]).
52clause(adjacent(o103,o109),[]).
53clause(adjacent(o109,storage),[]).
54clause(adjacent(storage,o109),[]).
55clause(adjacent(o109,o111),[]).
56clause(adjacent(o111,o109),[]).
57clause(adjacent(o103,mail),[]).
58clause(adjacent(mail,o103),[]).
59clause(adjacent(lab2,o109),[]).
60clause(adjacent(P_1,P_2), [blocks(Door,P_1,P_2), unlocked(Door)]).
61clause(blocks(door1,o103,lab2),[]).
62clause(opens(k1,door1),[]).
63clause(autonomous(rob),[]).
64
66holds(sitting_at(rob,o109),init).
67holds(sitting_at(parcel,storage),init).
68holds(sitting_at(k1,mail),init).
69
70achieves(init,X)