Johan ARCILE

Upload new file

1 +pta
2 +
3 +formula fk1Ca = (sPr=1) | (sPr=3);
4 +formula fk2Ca = (sCa=3);
5 +formula fk1O = (sPr=1);
6 +formula fk2O = (sO=2);
7 +formula fk3O = (sF=1);
8 +formula fk4O = (sO=4);
9 +formula fk1P = (sF=1);
10 +formula fk2P = (sP=3);
11 +
12 +formula flock1M1 = (sPr=6) | (sG=1);
13 +formula flock2M1 = (sM1=1);
14 +formula funlock1M1 = (sPr=9) | (sG=4);
15 +formula funlock2M1 = (sM1=3);
16 +
17 +formula flock1M2 = (sF=4) | (sH=1);
18 +formula flock2M2 = (sM2=1);
19 +formula funlock1M2 = (sF=7) | (sH=4);
20 +formula funlock2M2 = (sM2=3);
21 +
22 +formula flock1M3 = (sF=9) | (sM=1);
23 +formula flock2M3 = (sM3=1);
24 +formula funlock1M3 = (sF=12) | (sM=4);
25 +formula funlock2M3 = (sM3=3);
26 +
27 +module mCa
28 + xCa : clock;
29 + sCa : [0..3] init 0;
30 +
31 + invariant
32 + (sCa=0 => xCa <= 3000) &
33 + (sCa=1 => xCa <= 4500) &
34 + (sCa=2 => xCa <= 0)
35 + endinvariant
36 +
37 + [] sCa=0 & xCa >= 2000 -> (sCa'=1) & (xCa'=0);
38 + [] sCa=1 & xCa >= 3500 -> (sCa'=2) & (xCa'=0);
39 + [k1Ca] sCa=2 -> (sCa'=1) & (xCa'=0);
40 + [] sCa=2 & !fk1Ca -> (sCa'=3);
41 + [k2Ca] sCa=3 -> (sCa'=1) & (xCa'=0);
42 +endmodule
43 +
44 +module mO
45 + xO : clock;
46 + sO : [0..4] init 0;
47 +
48 + invariant
49 + (sO=1 => xO <= 0) &
50 + (sO=3 => xO <= 0)
51 + endinvariant
52 +
53 + [] sO=0 & xO >= 50 -> (sO'=1) & (xO'=0);
54 + [k1O] sO=1 -> (sO'=3) & (xO'=0);
55 + [] sO=1 & !fk1O -> (sO'=2);
56 + [k2O] sO=2 -> (sO'=3) & (xO'=0);
57 + [k3O] sO=3 -> (sO'=0) & (xO'=0);
58 + [] sO=3 & !fk3O -> (sO'=4);
59 + [k4O] sO=4 -> (sO'=0) & (xO'=0);
60 +endmodule
61 +
62 +module mP
63 + xP : clock;
64 + sP : [0..3] init 0;
65 +
66 + invariant
67 + (sP=0 => xP <= 3600) &
68 + (sP=1 => xP <= 3600) &
69 + (sP=2 => xP <= 0)
70 + endinvariant
71 +
72 + [] sP=0 & xP >= 2600 -> (sP'=1) & (xP'=0);
73 + [] sP=1 & xP >= 2600 -> (sP'=2) & (xP'=0);
74 + [k1P] sP=2 -> (sP'=1) & (xP'=0);
75 + [] sP=2 & !fk1P -> (sP'=3);
76 + [k2P] sP=3 -> (sP'=1) & (xP'=0);
77 +endmodule
78 +
79 +module mF
80 + xF : clock;
81 + sF : [0..12] init 0;
82 +
83 + invariant
84 + (sF=0 => xF<=0) &
85 + (sF=2 => xF<=75) &
86 + (sF=3 => xF<=0) &
87 + (sF=5 => xF<=30) &
88 + (sF=6 => xF<=0) &
89 + (sF=8 => xF<=0) &
90 + (sF=10 => xF<=20) &
91 + (sF=11 => xF<=0)
92 + endinvariant
93 +
94 + [k2P] sF=0 -> (sF'=2) & (xF'=0);
95 + [k4O] sF=0 -> (sF'=2) & (xF'=0);
96 + [] sF=0 & !fk2P & !fk4O -> (sF'=1);
97 + [k1P] sF=1 -> (sF'=2) & (xF'=0);
98 + [k3O] sF=1 -> (sF'=2) & (xF'=0);
99 + [] sF=2 & xF >= 50 -> (sF'=3) & (xF'=0);
100 + [] sF=3 & !flock2M2 -> (sF'=4);
101 + [lock2F] sF=3 -> (sF'=5) & (xF'=0);
102 + [lock1F] sF=4 -> (sF'=5) & (xF'=0);
103 + [] sF=5 & xF >= 20 -> (sF'=6) & (xF'=0);
104 + [] sF=6 & !funlock2M2 -> (sF'=7);
105 + [unlock2F] sF=6 -> (sF'=8) & (xF'=0);
106 + [unlock1F] sF=7 -> (sF'=8) & (xF'=0);
107 + [] sF=8 & !flock2M3 -> (sF'=9);
108 + [lock4F] sF=8 -> (sF'=10) & (xF'=0);
109 + [lock3F] sF=9 -> (sF'=10) & (xF'=0);
110 + [] sF=10 & xF >= 10 -> (sF'=11) & (xF'=0);
111 + [] sF=11 & !funlock2M3 -> (sF'=12);
112 + [unlock4F] sF=11 -> (sF'=0) & (xF'=0);
113 + [unlock3F] sF=12 -> (sF'=0) & (xF'=0);
114 +
115 +endmodule
116 +
117 +module mPr
118 + xPr : clock;
119 + sPr : [0..9] init 0;
120 +
121 + invariant
122 + (sPr=0 => xPr<=0) &
123 + (sPr=2 => xPr<=0) &
124 + (sPr=4 => xPr<=3000) &
125 + (sPr=5 => xPr<=0) &
126 + (sPr=7 => xPr<=300) &
127 + (sPr=8 => xPr<=0)
128 + endinvariant
129 +
130 + [k2O] sPr=0 -> (sPr'=2) & (xPr'=0);
131 + [k2Ca] sPr=0 -> (sPr'=4) & (xPr'=0);
132 + [] sPr=0 & !fk2O & !fk2Ca -> (sPr'=1);
133 + [k1O] sPr=1 -> (sPr'=2) & (xPr'=0);
134 + [k1Ca] sPr=1 -> (sPr'=4) & (xPr'=0);
135 + [k2Ca] sPr=2 -> (sPr'=4) & (xPr'=0);
136 + [] sPr=2 & !fk2Ca -> (sPr'=3);
137 + [k1Ca] sPr=3 -> (sPr'=4) & (xPr'=0);
138 + [] sPr=4 & xPr >= 2000 -> (sPr'=5) & (xPr'=0);
139 + [] sPr=5 & !flock2M1 -> (sPr'=6);
140 + [lock2Pr] sPr=5 -> (sPr'=7) & (xPr'=0);
141 + [lock1Pr] sPr=6 -> (sPr'=7) & (xPr'=0);
142 + [] sPr=7 & xPr >= 200 -> (sPr'=8) & (xPr'=0);
143 + [] sPr=8 & !funlock2M1 -> (sPr'=9);
144 + [unlock2Pr] sPr=8 -> (sPr'=0) & (xPr'=0);
145 + [unlock1Pr] sPr=9 -> (sPr'=0) & (xPr'=0);
146 +
147 +endmodule
148 +
149 +module mM1
150 + xM1 : clock;
151 + sM1 : [0..3] init 1;
152 +
153 + invariant
154 + (sM1=0 => xM1<=0) &
155 + (sM1=2 => xM1<=0)
156 + endinvariant
157 +
158 + [] sM1=0 & !flock1M1-> (sM1'=1);
159 + [lock1G] sM1=0 -> (sM1'=2) & (xM1'=0);
160 + [lock1Pr] sM1=0 -> (sM1'=2) & (xM1'=0);
161 + [lock2G] sM1=1 -> (sM1'=2) & (xM1'=0);
162 + [lock2Pr] sM1=1 -> (sM1'=2) & (xM1'=0);
163 + [] sM1=2 & !funlock1M1 -> (sM1'=3);
164 + [unlock1G] sM1=2 -> (sM1'=0) & (xM1'=0);
165 + [unlock1Pr] sM1=2 -> (sM1'=0) & (xM1'=0);
166 + [unlock2G] sM1=3 -> (sM1'=0) & (xM1'=0);
167 + [unlock2Pr] sM1=3 -> (sM1'=0) & (xM1'=0);
168 +
169 +
170 +endmodule
171 +
172 +module mM2
173 + xM2 : clock;
174 + sM2 : [0..3] init 1;
175 +
176 + invariant
177 + (sM2=0 => xM2<=0) &
178 + (sM2=2 => xM2<=0)
179 + endinvariant
180 +
181 + [] sM2=0 & !flock1M2-> (sM2'=1);
182 + [lock1H] sM2=0 -> (sM2'=2) & (xM2'=0);
183 + [lock1F] sM2=0 -> (sM2'=2) & (xM2'=0);
184 + [lock2H] sM2=1 -> (sM2'=2) & (xM2'=0);
185 + [lock2F] sM2=1 -> (sM2'=2) & (xM2'=0);
186 + [] sM2=2 & !funlock1M2 -> (sM2'=3);
187 + [unlock1H] sM2=2 -> (sM2'=0) & (xM2'=0);
188 + [unlock1F] sM2=2 -> (sM2'=0) & (xM2'=0);
189 + [unlock2H] sM2=3 -> (sM2'=0) & (xM2'=0);
190 + [unlock2F] sM2=3 -> (sM2'=0) & (xM2'=0);
191 +
192 +
193 +endmodule
194 +
195 +module mM3
196 + xM3 : clock;
197 + sM3 : [0..3] init 1;
198 +
199 + invariant
200 + (sM3=0 => xM3<=0) &
201 + (sM3=2 => xM3<=0)
202 + endinvariant
203 +
204 + [] sM3=0 & !flock1M3-> (sM3'=1);
205 + [lock1M] sM3=0 -> (sM3'=2) & (xM3'=0);
206 + [lock3F] sM3=0 -> (sM3'=2) & (xM3'=0);
207 + [lock2M] sM3=1 -> (sM3'=2) & (xM3'=0);
208 + [lock4F] sM3=1 -> (sM3'=2) & (xM3'=0);
209 + [] sM3=2 & !funlock1M3 -> (sM3'=3);
210 + [unlock1M] sM3=2 -> (sM3'=0) & (xM3'=0);
211 + [unlock3F] sM3=2 -> (sM3'=0) & (xM3'=0);
212 + [unlock2M] sM3=3 -> (sM3'=0) & (xM3'=0);
213 + [unlock4F] sM3=3 -> (sM3'=0) & (xM3'=0);
214 +
215 +endmodule
216 +
217 +module mG
218 + xG : clock;
219 + sG : [0..5] init 0;
220 +
221 + invariant
222 + (sG=0 => xG<=0) &
223 + (sG=2 => xG<=310) &
224 + (sG=3 => xG<=0) &
225 + (sG=5 => xG<=500)
226 + endinvariant
227 +
228 + [lock2G] sG=0 -> (sG'=2) & (xG'=0);
229 + [] sG=0 & !flock2M1 -> (sG'=1);
230 + [lock1G] sG=1 -> (sG'=2) & (xG'=0);
231 + [] sG=2 & xG >= 210 -> (sG'=3) & (xG'=0);
232 + [unlock2G] sG=3 -> (sG'=5) & (xG'=0);
233 + [] sG=3 & !funlock2M1 -> (sG'=4);
234 + [unlock1G] sG=4 -> (sG'=5) & (xG'=0);
235 + [] sG=5 & xG >= 400 -> (sG'=0) & (xG'=0);
236 +
237 +endmodule
238 +
239 +module mH
240 + xH : clock;
241 + sH : [0..5] init 0;
242 +
243 + invariant
244 + (sH=0 => xH<=0) &
245 + (sH=2 => xH<=30) &
246 + (sH=3 => xH<=0) &
247 + (sH=5 => xH<=20)
248 + endinvariant
249 +
250 + [lock2H] sH=0 -> (sH'=2) & (xH'=0);
251 + [] sH=0 & !flock2M2 -> (sH'=1);
252 + [lock1H] sH=1 -> (sH'=2) & (xH'=0);
253 + [] sH=2 & xH >= 20 -> (sH'=3) & (xH'=0);
254 + [unlock2H] sH=3 -> (sH'=5) & (xH'=0);
255 + [] sH=3 & !funlock2M2 -> (sH'=4);
256 + [unlock1H] sH=4 -> (sH'=5) & (xH'=0);
257 + [] sH=5 & xH >= 10 -> (sH'=0) & (xH'=0);
258 +
259 +endmodule
260 +
261 +module mM
262 + xM : clock;
263 + sM : [0..5] init 0;
264 +
265 + invariant
266 + (sM=0 => xM<=0) &
267 + (sM=2 => xM<=20) &
268 + (sM=3 => xM<=0) &
269 + (sM=5 => xM<=20)
270 + endinvariant
271 +
272 + [lock2M] sM=0 -> (sM'=2) & (xM'=0);
273 + [] sM=0 & !flock2M3 -> (sM'=1);
274 + [lock1M] sM=1 -> (sM'=2) & (xM'=0);
275 + [] sM=2 & xM >= 10 -> (sM'=3) & (xM'=0);
276 + [unlock2M] sM=3 -> (sM'=5) & (xM'=0);
277 + [] sM=3 & !funlock2M3 -> (sM'=4);
278 + [unlock1M] sM=4 -> (sM'=5) & (xM'=0);
279 + [] sM=5 & xM >= 10 -> (sM'=0) & (xM'=0);
280 +
281 +endmodule