1:- include('../ec_test_incl'). 10
11do_test(mail1) :- abdemo_special(loops,[holds_at(in(p1,r2),t)],R).
12do_test(mail2) :- abdemo_special(loops,[holds_at(in(p1,r3),t)],R).
13
15
16
17axiom(happens(shift_pack(P,R1,R2,R3),T1,T6),
18 [happens(go_to_room(R1,R2),T1,T2),
19 b(T2,T3), not(clipped(T2,in(R2),T3)), not(clipped(T1,in(P,R2),T3)),
20 happens(pick_up(P),T3), b(T3,T4), happens(go_to_room(R2,R3),T4,T5),
21 b(T5,T6), not(clipped(T3,got(P),T6)), not(clipped(T5,in(R3),T6)),
22 happens(put_down(P),T6)]).
23
24axiom(initiates(shift_pack(P,R1,R2,R3),in(P,R3),T),
25 [holds_at(in(R1),T), holds_at(in(P,R2),T)]).
26
27
28axiom(happens(go_to_room(R,R),T,T),[]).
29
30axiom(happens(go_to_room(R1,R3),T1,T3),
31 [connects(D,R1,R2), towards(R2,R3,R1),
32 happens(go_to_room(R2,R3),T2,T3), b(T1,T2), happens(go_through(D),T1),
33 not(clipped(T1,in(R2),T2))]).
34
35axiom(happens(go_to_room(R1,R3),T1,T3),
36 [connects(D,R1,R2), happens(go_through(D),T1),
37 happens(go_to_room(R2,R3),T2,T3), b(T1,T2),
38 not(clipped(T1,in(R2),T2))]).
39
40axiom(initiates(go_to_room(R1,R2),in(R2),T),[holds_at(in(R1),T)]).
41
42
43
45
46
47axiom(initiates(pick_up(P),got(P),T),
48 [diff(P,robot), holds_at(in(P,R),T), holds_at(in(R),T)]).
49
50axiom(releases(pick_up(P),in(P,R),T),
51 [diff(P,robot), holds_at(in(P,R),T), holds_at(in(R),T)]).
52
53
54axiom(initiates(put_down(P),in(P,R),T),
55 [diff(P,robot), holds_at(got(P),T), holds_at(in(R),T)]).
56
57axiom(terminates(put_down(P),got(P),T),[]).
58
59
60axiom(initiates(go_through(D),in(R1),T),
61 [connects(D,R2,R1), holds_at(in(R2),T)]).
62
63axiom(terminates(go_through(D),in(R),T),[holds_at(in(R),T)]).
64
65
66
68
69
70axiom(initially(in(r3)),[]).
71
72axiom(initially(neg(in(r1))),[]).
73
74axiom(initially(neg(in(r2))),[]).
75
76axiom(initially(in(p1,r1)),[]).
77
78axiom(initially(neg(in(p1,r2))),[]).
79
80axiom(initially(neg(in(p1,r3))),[]).
81
82
83
85
86
87axiom(connects(d1,r1,r2),[]).
88
89axiom(connects(d1,r2,r1),[]).
90
91axiom(connects(d2,r2,r3),[]).
92
93axiom(connects(d2,r3,r2),[]).
94
95
97
98axiom(towards(R1,R1,R2),[]).
99
100axiom(towards(r2,r1,r3),[]).
101
102axiom(towards(r2,r3,r1),[]).
103
104
105
107
108
109abducible(dummy).
110
111
112executable(pick_up(P)).
113
114executable(put_down(P)).
115
116executable(go_through(D))