1extern int __VERIFIER_nondet_int(void);
2
3
4
5#line 2 "libacc.c"
6struct JoinPoint {
7 void **(*fp)(struct JoinPoint * ) ;
8 void **args ;
9 int argsCount ;
10 char const **argsType ;
11 void *(*arg)(int , struct JoinPoint * ) ;
12 char const *(*argType)(int , struct JoinPoint * ) ;
13 void **retValue ;
14 char const *retType ;
15 char const *funcName ;
16 char const *targetName ;
17 char const *fileName ;
18 char const *kind ;
19 void *excep_return ;
20};
21#line 18 "libacc.c"
22struct __UTAC__CFLOW_FUNC {
23 int (*func)(int , int ) ;
24 int val ;
25 struct __UTAC__CFLOW_FUNC *next ;
26};
27#line 18 "libacc.c"
28struct __UTAC__EXCEPTION {
29 void *jumpbuf ;
30 unsigned long long prtValue ;
31 int pops ;
32 struct __UTAC__CFLOW_FUNC *cflowfuncs ;
33};
34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
35typedef unsigned long size_t;
36#line 76 "libacc.c"
37struct __ACC__ERR {
38 void *v ;
39 struct __ACC__ERR *next ;
40};
41#line 1 "wsllib_check.o"
42#pragma merger(0,"wsllib_check.i","")
43#line 3 "wsllib_check.c"
44void __automaton_fail(void)
45{
46
47 {
48 goto ERROR;
49 ERROR: ;
50#line 53 "wsllib_check.c"
51 return;
52}
53}
54#line 1 "Floor.o"
55#pragma merger(0,"Floor.i","")
56#line 12 "Floor.h"
57int isFloorCalling(int floorID ) ;
58#line 14
59void resetCallOnFloor(int floorID ) ;
60#line 16
61void callOnFloor(int floorID ) ;
62#line 18
63int isPersonOnFloor(int person , int floor ) ;
64#line 20
65void initPersonOnFloor(int person , int floor ) ;
66#line 22
67void removePersonFromFloor(int person , int floor ) ;
68#line 24
69int isTopFloor(int floorID ) ;
70#line 28
71void initFloors(void) ;
72#line 9 "Floor.c"
73int calls_0 ;
74#line 11 "Floor.c"
75int calls_1 ;
76#line 13 "Floor.c"
77int calls_2 ;
78#line 15 "Floor.c"
79int calls_3 ;
80#line 17 "Floor.c"
81int calls_4 ;
82#line 20 "Floor.c"
83int personOnFloor_0_0 ;
84#line 22 "Floor.c"
85int personOnFloor_0_1 ;
86#line 24 "Floor.c"
87int personOnFloor_0_2 ;
88#line 26 "Floor.c"
89int personOnFloor_0_3 ;
90#line 28 "Floor.c"
91int personOnFloor_0_4 ;
92#line 30 "Floor.c"
93int personOnFloor_1_0 ;
94#line 32 "Floor.c"
95int personOnFloor_1_1 ;
96#line 34 "Floor.c"
97int personOnFloor_1_2 ;
98#line 36 "Floor.c"
99int personOnFloor_1_3 ;
100#line 38 "Floor.c"
101int personOnFloor_1_4 ;
102#line 40 "Floor.c"
103int personOnFloor_2_0 ;
104#line 42 "Floor.c"
105int personOnFloor_2_1 ;
106#line 44 "Floor.c"
107int personOnFloor_2_2 ;
108#line 46 "Floor.c"
109int personOnFloor_2_3 ;
110#line 48 "Floor.c"
111int personOnFloor_2_4 ;
112#line 50 "Floor.c"
113int personOnFloor_3_0 ;
114#line 52 "Floor.c"
115int personOnFloor_3_1 ;
116#line 54 "Floor.c"
117int personOnFloor_3_2 ;
118#line 56 "Floor.c"
119int personOnFloor_3_3 ;
120#line 58 "Floor.c"
121int personOnFloor_3_4 ;
122#line 60 "Floor.c"
123int personOnFloor_4_0 ;
124#line 62 "Floor.c"
125int personOnFloor_4_1 ;
126#line 64 "Floor.c"
127int personOnFloor_4_2 ;
128#line 66 "Floor.c"
129int personOnFloor_4_3 ;
130#line 68 "Floor.c"
131int personOnFloor_4_4 ;
132#line 70 "Floor.c"
133int personOnFloor_5_0 ;
134#line 72 "Floor.c"
135int personOnFloor_5_1 ;
136#line 74 "Floor.c"
137int personOnFloor_5_2 ;
138#line 76 "Floor.c"
139int personOnFloor_5_3 ;
140#line 78 "Floor.c"
141int personOnFloor_5_4 ;
142#line 81 "Floor.c"
143void initFloors(void)
144{
145
146 {
147#line 82
148 calls_0 = 0;
149#line 83
150 calls_1 = 0;
151#line 84
152 calls_2 = 0;
153#line 85
154 calls_3 = 0;
155#line 86
156 calls_4 = 0;
157#line 87
158 personOnFloor_0_0 = 0;
159#line 88
160 personOnFloor_0_1 = 0;
161#line 89
162 personOnFloor_0_2 = 0;
163#line 90
164 personOnFloor_0_3 = 0;
165#line 91
166 personOnFloor_0_4 = 0;
167#line 92
168 personOnFloor_1_0 = 0;
169#line 93
170 personOnFloor_1_1 = 0;
171#line 94
172 personOnFloor_1_2 = 0;
173#line 95
174 personOnFloor_1_3 = 0;
175#line 96
176 personOnFloor_1_4 = 0;
177#line 97
178 personOnFloor_2_0 = 0;
179#line 98
180 personOnFloor_2_1 = 0;
181#line 99
182 personOnFloor_2_2 = 0;
183#line 100
184 personOnFloor_2_3 = 0;
185#line 101
186 personOnFloor_2_4 = 0;
187#line 102
188 personOnFloor_3_0 = 0;
189#line 103
190 personOnFloor_3_1 = 0;
191#line 104
192 personOnFloor_3_2 = 0;
193#line 105
194 personOnFloor_3_3 = 0;
195#line 106
196 personOnFloor_3_4 = 0;
197#line 107
198 personOnFloor_4_0 = 0;
199#line 108
200 personOnFloor_4_1 = 0;
201#line 109
202 personOnFloor_4_2 = 0;
203#line 110
204 personOnFloor_4_3 = 0;
205#line 111
206 personOnFloor_4_4 = 0;
207#line 112
208 personOnFloor_5_0 = 0;
209#line 113
210 personOnFloor_5_1 = 0;
211#line 114
212 personOnFloor_5_2 = 0;
213#line 115
214 personOnFloor_5_3 = 0;
215#line 116
216 personOnFloor_5_4 = 0;
217#line 1120 "Floor.c"
218 return;
219}
220}
221#line 120 "Floor.c"
222int isFloorCalling(int floorID )
223{ int retValue_acc ;
224
225 {
226#line 126 "Floor.c"
227 if (floorID == 0) {
228#line 1139
229 retValue_acc = calls_0;
230#line 1141
231 return (retValue_acc);
232 } else {
233#line 1143
234 if (floorID == 1) {
235#line 1146
236 retValue_acc = calls_1;
237#line 1148
238 return (retValue_acc);
239 } else {
240#line 1150
241 if (floorID == 2) {
242#line 1153
243 retValue_acc = calls_2;
244#line 1155
245 return (retValue_acc);
246 } else {
247#line 1157
248 if (floorID == 3) {
249#line 1160
250 retValue_acc = calls_3;
251#line 1162
252 return (retValue_acc);
253 } else {
254#line 1164
255 if (floorID == 4) {
256#line 1167 "Floor.c"
257 retValue_acc = calls_4;
258#line 1169
259 return (retValue_acc);
260 } else {
261
262 }
263 }
264 }
265 }
266 }
267#line 1174 "Floor.c"
268 retValue_acc = 0;
269#line 1176
270 return (retValue_acc);
271#line 1183
272 return (retValue_acc);
273}
274}
275#line 130 "Floor.c"
276void resetCallOnFloor(int floorID )
277{
278
279 {
280#line 136
281 if (floorID == 0) {
282#line 137
283 calls_0 = 0;
284 } else {
285#line 138
286 if (floorID == 1) {
287#line 139
288 calls_1 = 0;
289 } else {
290#line 140
291 if (floorID == 2) {
292#line 141
293 calls_2 = 0;
294 } else {
295#line 142
296 if (floorID == 3) {
297#line 143
298 calls_3 = 0;
299 } else {
300#line 144
301 if (floorID == 4) {
302#line 145
303 calls_4 = 0;
304 } else {
305
306 }
307 }
308 }
309 }
310 }
311#line 1216 "Floor.c"
312 return;
313}
314}
315#line 1218
316void __utac_acc__Specification1_spec__2(int floor ) ;
317#line 139 "Floor.c"
318void callOnFloor(int floorID )
319{ int __utac__ad__arg1 ;
320
321 {
322 {
323#line 1229 "Floor.c"
324 __utac__ad__arg1 = floorID;
325#line 1230
326 __utac_acc__Specification1_spec__2(__utac__ad__arg1);
327 }
328#line 145
329 if (floorID == 0) {
330#line 146
331 calls_0 = 1;
332 } else {
333#line 147
334 if (floorID == 1) {
335#line 148
336 calls_1 = 1;
337 } else {
338#line 149
339 if (floorID == 2) {
340#line 150
341 calls_2 = 1;
342 } else {
343#line 151
344 if (floorID == 3) {
345#line 152
346 calls_3 = 1;
347 } else {
348#line 153
349 if (floorID == 4) {
350#line 154 "Floor.c"
351 calls_4 = 1;
352 } else {
353
354 }
355 }
356 }
357 }
358 }
359#line 1254 "Floor.c"
360 return;
361}
362}
363#line 148 "Floor.c"
364int isPersonOnFloor(int person , int floor )
365{ int retValue_acc ;
366
367 {
368#line 185
369 if (floor == 0) {
370#line 156 "Floor.c"
371 if (person == 0) {
372#line 1276
373 retValue_acc = personOnFloor_0_0;
374#line 1278
375 return (retValue_acc);
376 } else {
377#line 1280
378 if (person == 1) {
379#line 1283
380 retValue_acc = personOnFloor_1_0;
381#line 1285
382 return (retValue_acc);
383 } else {
384#line 1287
385 if (person == 2) {
386#line 1290
387 retValue_acc = personOnFloor_2_0;
388#line 1292
389 return (retValue_acc);
390 } else {
391#line 1294
392 if (person == 3) {
393#line 1297
394 retValue_acc = personOnFloor_3_0;
395#line 1299
396 return (retValue_acc);
397 } else {
398#line 1301
399 if (person == 4) {
400#line 1304
401 retValue_acc = personOnFloor_4_0;
402#line 1306
403 return (retValue_acc);
404 } else {
405#line 1308
406 if (person == 5) {
407#line 1311
408 retValue_acc = personOnFloor_5_0;
409#line 1313
410 return (retValue_acc);
411 } else {
412
413 }
414 }
415 }
416 }
417 }
418 }
419 } else {
420#line 1315 "Floor.c"
421 if (floor == 1) {
422#line 163 "Floor.c"
423 if (person == 0) {
424#line 1321
425 retValue_acc = personOnFloor_0_1;
426#line 1323
427 return (retValue_acc);
428 } else {
429#line 1325
430 if (person == 1) {
431#line 1328
432 retValue_acc = personOnFloor_1_1;
433#line 1330
434 return (retValue_acc);
435 } else {
436#line 1332
437 if (person == 2) {
438#line 1335
439 retValue_acc = personOnFloor_2_1;
440#line 1337
441 return (retValue_acc);
442 } else {
443#line 1339
444 if (person == 3) {
445#line 1342
446 retValue_acc = personOnFloor_3_1;
447#line 1344
448 return (retValue_acc);
449 } else {
450#line 1346
451 if (person == 4) {
452#line 1349
453 retValue_acc = personOnFloor_4_1;
454#line 1351
455 return (retValue_acc);
456 } else {
457#line 1353
458 if (person == 5) {
459#line 1356
460 retValue_acc = personOnFloor_5_1;
461#line 1358
462 return (retValue_acc);
463 } else {
464
465 }
466 }
467 }
468 }
469 }
470 }
471 } else {
472#line 1360 "Floor.c"
473 if (floor == 2) {
474#line 170 "Floor.c"
475 if (person == 0) {
476#line 1366
477 retValue_acc = personOnFloor_0_2;
478#line 1368
479 return (retValue_acc);
480 } else {
481#line 1370
482 if (person == 1) {
483#line 1373
484 retValue_acc = personOnFloor_1_2;
485#line 1375
486 return (retValue_acc);
487 } else {
488#line 1377
489 if (person == 2) {
490#line 1380
491 retValue_acc = personOnFloor_2_2;
492#line 1382
493 return (retValue_acc);
494 } else {
495#line 1384
496 if (person == 3) {
497#line 1387
498 retValue_acc = personOnFloor_3_2;
499#line 1389
500 return (retValue_acc);
501 } else {
502#line 1391
503 if (person == 4) {
504#line 1394
505 retValue_acc = personOnFloor_4_2;
506#line 1396
507 return (retValue_acc);
508 } else {
509#line 1398
510 if (person == 5) {
511#line 1401
512 retValue_acc = personOnFloor_5_2;
513#line 1403
514 return (retValue_acc);
515 } else {
516
517 }
518 }
519 }
520 }
521 }
522 }
523 } else {
524#line 1405 "Floor.c"
525 if (floor == 3) {
526#line 177 "Floor.c"
527 if (person == 0) {
528#line 1411
529 retValue_acc = personOnFloor_0_3;
530#line 1413
531 return (retValue_acc);
532 } else {
533#line 1415
534 if (person == 1) {
535#line 1418
536 retValue_acc = personOnFloor_1_3;
537#line 1420
538 return (retValue_acc);
539 } else {
540#line 1422
541 if (person == 2) {
542#line 1425
543 retValue_acc = personOnFloor_2_3;
544#line 1427
545 return (retValue_acc);
546 } else {
547#line 1429
548 if (person == 3) {
549#line 1432
550 retValue_acc = personOnFloor_3_3;
551#line 1434
552 return (retValue_acc);
553 } else {
554#line 1436
555 if (person == 4) {
556#line 1439
557 retValue_acc = personOnFloor_4_3;
558#line 1441
559 return (retValue_acc);
560 } else {
561#line 1443
562 if (person == 5) {
563#line 1446
564 retValue_acc = personOnFloor_5_3;
565#line 1448
566 return (retValue_acc);
567 } else {
568
569 }
570 }
571 }
572 }
573 }
574 }
575 } else {
576#line 1450 "Floor.c"
577 if (floor == 4) {
578#line 184 "Floor.c"
579 if (person == 0) {
580#line 1456
581 retValue_acc = personOnFloor_0_4;
582#line 1458
583 return (retValue_acc);
584 } else {
585#line 1460
586 if (person == 1) {
587#line 1463
588 retValue_acc = personOnFloor_1_4;
589#line 1465
590 return (retValue_acc);
591 } else {
592#line 1467
593 if (person == 2) {
594#line 1470
595 retValue_acc = personOnFloor_2_4;
596#line 1472
597 return (retValue_acc);
598 } else {
599#line 1474
600 if (person == 3) {
601#line 1477
602 retValue_acc = personOnFloor_3_4;
603#line 1479
604 return (retValue_acc);
605 } else {
606#line 1481
607 if (person == 4) {
608#line 1484
609 retValue_acc = personOnFloor_4_4;
610#line 1486
611 return (retValue_acc);
612 } else {
613#line 1488
614 if (person == 5) {
615#line 1491 "Floor.c"
616 retValue_acc = personOnFloor_5_4;
617#line 1493
618 return (retValue_acc);
619 } else {
620
621 }
622 }
623 }
624 }
625 }
626 }
627 } else {
628
629 }
630 }
631 }
632 }
633 }
634#line 1498 "Floor.c"
635 retValue_acc = 0;
636#line 1500
637 return (retValue_acc);
638#line 1507
639 return (retValue_acc);
640}
641}
642#line 188 "Floor.c"
643void initPersonOnFloor(int person , int floor )
644{
645
646 {
647#line 225
648 if (floor == 0) {
649#line 196
650 if (person == 0) {
651#line 197
652 personOnFloor_0_0 = 1;
653 } else {
654#line 198
655 if (person == 1) {
656#line 199
657 personOnFloor_1_0 = 1;
658 } else {
659#line 200
660 if (person == 2) {
661#line 201
662 personOnFloor_2_0 = 1;
663 } else {
664#line 202
665 if (person == 3) {
666#line 203
667 personOnFloor_3_0 = 1;
668 } else {
669#line 204
670 if (person == 4) {
671#line 205
672 personOnFloor_4_0 = 1;
673 } else {
674#line 206
675 if (person == 5) {
676#line 207
677 personOnFloor_5_0 = 1;
678 } else {
679
680 }
681 }
682 }
683 }
684 }
685 }
686 } else {
687#line 208
688 if (floor == 1) {
689#line 203
690 if (person == 0) {
691#line 204
692 personOnFloor_0_1 = 1;
693 } else {
694#line 205
695 if (person == 1) {
696#line 206
697 personOnFloor_1_1 = 1;
698 } else {
699#line 207
700 if (person == 2) {
701#line 208
702 personOnFloor_2_1 = 1;
703 } else {
704#line 209
705 if (person == 3) {
706#line 210
707 personOnFloor_3_1 = 1;
708 } else {
709#line 211
710 if (person == 4) {
711#line 212
712 personOnFloor_4_1 = 1;
713 } else {
714#line 213
715 if (person == 5) {
716#line 214
717 personOnFloor_5_1 = 1;
718 } else {
719
720 }
721 }
722 }
723 }
724 }
725 }
726 } else {
727#line 215
728 if (floor == 2) {
729#line 210
730 if (person == 0) {
731#line 211
732 personOnFloor_0_2 = 1;
733 } else {
734#line 212
735 if (person == 1) {
736#line 213
737 personOnFloor_1_2 = 1;
738 } else {
739#line 214
740 if (person == 2) {
741#line 215
742 personOnFloor_2_2 = 1;
743 } else {
744#line 216
745 if (person == 3) {
746#line 217
747 personOnFloor_3_2 = 1;
748 } else {
749#line 218
750 if (person == 4) {
751#line 219
752 personOnFloor_4_2 = 1;
753 } else {
754#line 220
755 if (person == 5) {
756#line 221
757 personOnFloor_5_2 = 1;
758 } else {
759
760 }
761 }
762 }
763 }
764 }
765 }
766 } else {
767#line 222
768 if (floor == 3) {
769#line 217
770 if (person == 0) {
771#line 218
772 personOnFloor_0_3 = 1;
773 } else {
774#line 219
775 if (person == 1) {
776#line 220
777 personOnFloor_1_3 = 1;
778 } else {
779#line 221
780 if (person == 2) {
781#line 222
782 personOnFloor_2_3 = 1;
783 } else {
784#line 223
785 if (person == 3) {
786#line 224
787 personOnFloor_3_3 = 1;
788 } else {
789#line 225
790 if (person == 4) {
791#line 226
792 personOnFloor_4_3 = 1;
793 } else {
794#line 227
795 if (person == 5) {
796#line 228
797 personOnFloor_5_3 = 1;
798 } else {
799
800 }
801 }
802 }
803 }
804 }
805 }
806 } else {
807#line 229
808 if (floor == 4) {
809#line 224
810 if (person == 0) {
811#line 225
812 personOnFloor_0_4 = 1;
813 } else {
814#line 226
815 if (person == 1) {
816#line 227
817 personOnFloor_1_4 = 1;
818 } else {
819#line 228
820 if (person == 2) {
821#line 229
822 personOnFloor_2_4 = 1;
823 } else {
824#line 230
825 if (person == 3) {
826#line 231
827 personOnFloor_3_4 = 1;
828 } else {
829#line 232
830 if (person == 4) {
831#line 233
832 personOnFloor_4_4 = 1;
833 } else {
834#line 234
835 if (person == 5) {
836#line 235
837 personOnFloor_5_4 = 1;
838 } else {
839
840 }
841 }
842 }
843 }
844 }
845 }
846 } else {
847
848 }
849 }
850 }
851 }
852 }
853 {
854#line 225
855 callOnFloor(floor);
856 }
857#line 1607 "Floor.c"
858 return;
859}
860}
861#line 228 "Floor.c"
862void removePersonFromFloor(int person , int floor )
863{
864
865 {
866#line 265
867 if (floor == 0) {
868#line 236
869 if (person == 0) {
870#line 237
871 personOnFloor_0_0 = 0;
872 } else {
873#line 238
874 if (person == 1) {
875#line 239
876 personOnFloor_1_0 = 0;
877 } else {
878#line 240
879 if (person == 2) {
880#line 241
881 personOnFloor_2_0 = 0;
882 } else {
883#line 242
884 if (person == 3) {
885#line 243
886 personOnFloor_3_0 = 0;
887 } else {
888#line 244
889 if (person == 4) {
890#line 245
891 personOnFloor_4_0 = 0;
892 } else {
893#line 246
894 if (person == 5) {
895#line 247
896 personOnFloor_5_0 = 0;
897 } else {
898
899 }
900 }
901 }
902 }
903 }
904 }
905 } else {
906#line 248
907 if (floor == 1) {
908#line 243
909 if (person == 0) {
910#line 244
911 personOnFloor_0_1 = 0;
912 } else {
913#line 245
914 if (person == 1) {
915#line 246
916 personOnFloor_1_1 = 0;
917 } else {
918#line 247
919 if (person == 2) {
920#line 248
921 personOnFloor_2_1 = 0;
922 } else {
923#line 249
924 if (person == 3) {
925#line 250
926 personOnFloor_3_1 = 0;
927 } else {
928#line 251
929 if (person == 4) {
930#line 252
931 personOnFloor_4_1 = 0;
932 } else {
933#line 253
934 if (person == 5) {
935#line 254
936 personOnFloor_5_1 = 0;
937 } else {
938
939 }
940 }
941 }
942 }
943 }
944 }
945 } else {
946#line 255
947 if (floor == 2) {
948#line 250
949 if (person == 0) {
950#line 251
951 personOnFloor_0_2 = 0;
952 } else {
953#line 252
954 if (person == 1) {
955#line 253
956 personOnFloor_1_2 = 0;
957 } else {
958#line 254
959 if (person == 2) {
960#line 255
961 personOnFloor_2_2 = 0;
962 } else {
963#line 256
964 if (person == 3) {
965#line 257
966 personOnFloor_3_2 = 0;
967 } else {
968#line 258
969 if (person == 4) {
970#line 259
971 personOnFloor_4_2 = 0;
972 } else {
973#line 260
974 if (person == 5) {
975#line 261
976 personOnFloor_5_2 = 0;
977 } else {
978
979 }
980 }
981 }
982 }
983 }
984 }
985 } else {
986#line 262
987 if (floor == 3) {
988#line 257
989 if (person == 0) {
990#line 258
991 personOnFloor_0_3 = 0;
992 } else {
993#line 259
994 if (person == 1) {
995#line 260
996 personOnFloor_1_3 = 0;
997 } else {
998#line 261
999 if (person == 2) {
1000#line 262
1001 personOnFloor_2_3 = 0;
1002 } else {
1003#line 263
1004 if (person == 3) {
1005#line 264
1006 personOnFloor_3_3 = 0;
1007 } else {
1008#line 265
1009 if (person == 4) {
1010#line 266
1011 personOnFloor_4_3 = 0;
1012 } else {
1013#line 267
1014 if (person == 5) {
1015#line 268
1016 personOnFloor_5_3 = 0;
1017 } else {
1018
1019 }
1020 }
1021 }
1022 }
1023 }
1024 }
1025 } else {
1026#line 269
1027 if (floor == 4) {
1028#line 264
1029 if (person == 0) {
1030#line 265
1031 personOnFloor_0_4 = 0;
1032 } else {
1033#line 266
1034 if (person == 1) {
1035#line 267
1036 personOnFloor_1_4 = 0;
1037 } else {
1038#line 268
1039 if (person == 2) {
1040#line 269
1041 personOnFloor_2_4 = 0;
1042 } else {
1043#line 270
1044 if (person == 3) {
1045#line 271
1046 personOnFloor_3_4 = 0;
1047 } else {
1048#line 272
1049 if (person == 4) {
1050#line 273
1051 personOnFloor_4_4 = 0;
1052 } else {
1053#line 274
1054 if (person == 5) {
1055#line 275
1056 personOnFloor_5_4 = 0;
1057 } else {
1058
1059 }
1060 }
1061 }
1062 }
1063 }
1064 }
1065 } else {
1066
1067 }
1068 }
1069 }
1070 }
1071 }
1072 {
1073#line 265
1074 resetCallOnFloor(floor);
1075 }
1076#line 1703 "Floor.c"
1077 return;
1078}
1079}
1080#line 268 "Floor.c"
1081int isTopFloor(int floorID )
1082{ int retValue_acc ;
1083
1084 {
1085#line 1721 "Floor.c"
1086 retValue_acc = floorID == 4;
1087#line 1723
1088 return (retValue_acc);
1089#line 1730
1090 return (retValue_acc);
1091}
1092}
1093#line 1 "libacc.o"
1094#pragma merger(0,"libacc.i","")
1095#line 73 "/usr/include/assert.h"
1096extern __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const *__assertion ,
1097 char const *__file ,
1098 unsigned int __line ,
1099 char const *__function ) ;
1100#line 471 "/usr/include/stdlib.h"
1101extern __attribute__((__nothrow__)) void *malloc(size_t __size ) __attribute__((__malloc__)) ;
1102#line 488
1103extern __attribute__((__nothrow__)) void free(void *__ptr ) ;
1104#line 32 "libacc.c"
1105void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int ,
1106 int ) ,
1107 int val )
1108{ struct __UTAC__EXCEPTION *excep ;
1109 struct __UTAC__CFLOW_FUNC *cf ;
1110 void *tmp ;
1111 unsigned long __cil_tmp7 ;
1112 unsigned long __cil_tmp8 ;
1113 unsigned long __cil_tmp9 ;
1114 unsigned long __cil_tmp10 ;
1115 unsigned long __cil_tmp11 ;
1116 unsigned long __cil_tmp12 ;
1117 unsigned long __cil_tmp13 ;
1118 unsigned long __cil_tmp14 ;
1119 int (**mem_15)(int , int ) ;
1120 int *mem_16 ;
1121 struct __UTAC__CFLOW_FUNC **mem_17 ;
1122 struct __UTAC__CFLOW_FUNC **mem_18 ;
1123 struct __UTAC__CFLOW_FUNC **mem_19 ;
1124
1125 {
1126 {
1127#line 33
1128 excep = (struct __UTAC__EXCEPTION *)exception;
1129#line 34
1130 tmp = malloc(24UL);
1131#line 34
1132 cf = (struct __UTAC__CFLOW_FUNC *)tmp;
1133#line 36
1134 mem_15 = (int (**)(int , int ))cf;
1135#line 36
1136 *mem_15 = cflow_func;
1137#line 37
1138 __cil_tmp7 = (unsigned long )cf;
1139#line 37
1140 __cil_tmp8 = __cil_tmp7 + 8;
1141#line 37
1142 mem_16 = (int *)__cil_tmp8;
1143#line 37
1144 *mem_16 = val;
1145#line 38
1146 __cil_tmp9 = (unsigned long )cf;
1147#line 38
1148 __cil_tmp10 = __cil_tmp9 + 16;
1149#line 38
1150 __cil_tmp11 = (unsigned long )excep;
1151#line 38
1152 __cil_tmp12 = __cil_tmp11 + 24;
1153#line 38
1154 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
1155#line 38
1156 mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
1157#line 38
1158 *mem_17 = *mem_18;
1159#line 39
1160 __cil_tmp13 = (unsigned long )excep;
1161#line 39
1162 __cil_tmp14 = __cil_tmp13 + 24;
1163#line 39
1164 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1165#line 39
1166 *mem_19 = cf;
1167 }
1168#line 654 "libacc.c"
1169 return;
1170}
1171}
1172#line 44 "libacc.c"
1173void __utac__exception__cf_handler_free(void *exception )
1174{ struct __UTAC__EXCEPTION *excep ;
1175 struct __UTAC__CFLOW_FUNC *cf ;
1176 struct __UTAC__CFLOW_FUNC *tmp ;
1177 unsigned long __cil_tmp5 ;
1178 unsigned long __cil_tmp6 ;
1179 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1180 unsigned long __cil_tmp8 ;
1181 unsigned long __cil_tmp9 ;
1182 unsigned long __cil_tmp10 ;
1183 unsigned long __cil_tmp11 ;
1184 void *__cil_tmp12 ;
1185 unsigned long __cil_tmp13 ;
1186 unsigned long __cil_tmp14 ;
1187 struct __UTAC__CFLOW_FUNC **mem_15 ;
1188 struct __UTAC__CFLOW_FUNC **mem_16 ;
1189 struct __UTAC__CFLOW_FUNC **mem_17 ;
1190
1191 {
1192#line 45
1193 excep = (struct __UTAC__EXCEPTION *)exception;
1194#line 46
1195 __cil_tmp5 = (unsigned long )excep;
1196#line 46
1197 __cil_tmp6 = __cil_tmp5 + 24;
1198#line 46
1199 mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1200#line 46
1201 cf = *mem_15;
1202 {
1203#line 49
1204 while (1) {
1205 while_0_continue: ;
1206 {
1207#line 49
1208 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1209#line 49
1210 __cil_tmp8 = (unsigned long )__cil_tmp7;
1211#line 49
1212 __cil_tmp9 = (unsigned long )cf;
1213#line 49
1214 if (__cil_tmp9 != __cil_tmp8) {
1215
1216 } else {
1217 goto while_0_break;
1218 }
1219 }
1220 {
1221#line 50
1222 tmp = cf;
1223#line 51
1224 __cil_tmp10 = (unsigned long )cf;
1225#line 51
1226 __cil_tmp11 = __cil_tmp10 + 16;
1227#line 51
1228 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
1229#line 51
1230 cf = *mem_16;
1231#line 52
1232 __cil_tmp12 = (void *)tmp;
1233#line 52
1234 free(__cil_tmp12);
1235 }
1236 }
1237 while_0_break: ;
1238 }
1239#line 55
1240 __cil_tmp13 = (unsigned long )excep;
1241#line 55
1242 __cil_tmp14 = __cil_tmp13 + 24;
1243#line 55
1244 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1245#line 55
1246 *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
1247#line 694 "libacc.c"
1248 return;
1249}
1250}
1251#line 59 "libacc.c"
1252void __utac__exception__cf_handler_reset(void *exception )
1253{ struct __UTAC__EXCEPTION *excep ;
1254 struct __UTAC__CFLOW_FUNC *cf ;
1255 unsigned long __cil_tmp5 ;
1256 unsigned long __cil_tmp6 ;
1257 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1258 unsigned long __cil_tmp8 ;
1259 unsigned long __cil_tmp9 ;
1260 int (*__cil_tmp10)(int , int ) ;
1261 unsigned long __cil_tmp11 ;
1262 unsigned long __cil_tmp12 ;
1263 int __cil_tmp13 ;
1264 unsigned long __cil_tmp14 ;
1265 unsigned long __cil_tmp15 ;
1266 struct __UTAC__CFLOW_FUNC **mem_16 ;
1267 int (**mem_17)(int , int ) ;
1268 int *mem_18 ;
1269 struct __UTAC__CFLOW_FUNC **mem_19 ;
1270
1271 {
1272#line 60
1273 excep = (struct __UTAC__EXCEPTION *)exception;
1274#line 61
1275 __cil_tmp5 = (unsigned long )excep;
1276#line 61
1277 __cil_tmp6 = __cil_tmp5 + 24;
1278#line 61
1279 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1280#line 61
1281 cf = *mem_16;
1282 {
1283#line 64
1284 while (1) {
1285 while_1_continue: ;
1286 {
1287#line 64
1288 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1289#line 64
1290 __cil_tmp8 = (unsigned long )__cil_tmp7;
1291#line 64
1292 __cil_tmp9 = (unsigned long )cf;
1293#line 64
1294 if (__cil_tmp9 != __cil_tmp8) {
1295
1296 } else {
1297 goto while_1_break;
1298 }
1299 }
1300 {
1301#line 65
1302 mem_17 = (int (**)(int , int ))cf;
1303#line 65
1304 __cil_tmp10 = *mem_17;
1305#line 65
1306 __cil_tmp11 = (unsigned long )cf;
1307#line 65
1308 __cil_tmp12 = __cil_tmp11 + 8;
1309#line 65
1310 mem_18 = (int *)__cil_tmp12;
1311#line 65
1312 __cil_tmp13 = *mem_18;
1313#line 65
1314 (*__cil_tmp10)(4, __cil_tmp13);
1315#line 66
1316 __cil_tmp14 = (unsigned long )cf;
1317#line 66
1318 __cil_tmp15 = __cil_tmp14 + 16;
1319#line 66
1320 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
1321#line 66
1322 cf = *mem_19;
1323 }
1324 }
1325 while_1_break: ;
1326 }
1327 {
1328#line 69
1329 __utac__exception__cf_handler_free(exception);
1330 }
1331#line 732 "libacc.c"
1332 return;
1333}
1334}
1335#line 80 "libacc.c"
1336void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
1337#line 80 "libacc.c"
1338static struct __ACC__ERR *head = (struct __ACC__ERR *)0;
1339#line 79 "libacc.c"
1340void *__utac__error_stack_mgt(void *env , int mode , int count )
1341{ void *retValue_acc ;
1342 struct __ACC__ERR *new ;
1343 void *tmp ;
1344 struct __ACC__ERR *temp ;
1345 struct __ACC__ERR *next ;
1346 void *excep ;
1347 unsigned long __cil_tmp10 ;
1348 unsigned long __cil_tmp11 ;
1349 unsigned long __cil_tmp12 ;
1350 unsigned long __cil_tmp13 ;
1351 void *__cil_tmp14 ;
1352 unsigned long __cil_tmp15 ;
1353 unsigned long __cil_tmp16 ;
1354 void *__cil_tmp17 ;
1355 void **mem_18 ;
1356 struct __ACC__ERR **mem_19 ;
1357 struct __ACC__ERR **mem_20 ;
1358 void **mem_21 ;
1359 struct __ACC__ERR **mem_22 ;
1360 void **mem_23 ;
1361 void **mem_24 ;
1362
1363 {
1364#line 82 "libacc.c"
1365 if (count == 0) {
1366#line 758 "libacc.c"
1367 return (retValue_acc);
1368 } else {
1369
1370 }
1371#line 86 "libacc.c"
1372 if (mode == 0) {
1373 {
1374#line 87
1375 tmp = malloc(16UL);
1376#line 87
1377 new = (struct __ACC__ERR *)tmp;
1378#line 88
1379 mem_18 = (void **)new;
1380#line 88
1381 *mem_18 = env;
1382#line 89
1383 __cil_tmp10 = (unsigned long )new;
1384#line 89
1385 __cil_tmp11 = __cil_tmp10 + 8;
1386#line 89
1387 mem_19 = (struct __ACC__ERR **)__cil_tmp11;
1388#line 89
1389 *mem_19 = head;
1390#line 90
1391 head = new;
1392#line 776 "libacc.c"
1393 retValue_acc = (void *)new;
1394 }
1395#line 778
1396 return (retValue_acc);
1397 } else {
1398
1399 }
1400#line 94 "libacc.c"
1401 if (mode == 1) {
1402#line 95
1403 temp = head;
1404 {
1405#line 98
1406 while (1) {
1407 while_2_continue: ;
1408#line 98
1409 if (count > 1) {
1410
1411 } else {
1412 goto while_2_break;
1413 }
1414 {
1415#line 99
1416 __cil_tmp12 = (unsigned long )temp;
1417#line 99
1418 __cil_tmp13 = __cil_tmp12 + 8;
1419#line 99
1420 mem_20 = (struct __ACC__ERR **)__cil_tmp13;
1421#line 99
1422 next = *mem_20;
1423#line 100
1424 mem_21 = (void **)temp;
1425#line 100
1426 excep = *mem_21;
1427#line 101
1428 __cil_tmp14 = (void *)temp;
1429#line 101
1430 free(__cil_tmp14);
1431#line 102
1432 __utac__exception__cf_handler_reset(excep);
1433#line 103
1434 temp = next;
1435#line 104
1436 count = count - 1;
1437 }
1438 }
1439 while_2_break: ;
1440 }
1441 {
1442#line 107
1443 __cil_tmp15 = (unsigned long )temp;
1444#line 107
1445 __cil_tmp16 = __cil_tmp15 + 8;
1446#line 107
1447 mem_22 = (struct __ACC__ERR **)__cil_tmp16;
1448#line 107
1449 head = *mem_22;
1450#line 108
1451 mem_23 = (void **)temp;
1452#line 108
1453 excep = *mem_23;
1454#line 109
1455 __cil_tmp17 = (void *)temp;
1456#line 109
1457 free(__cil_tmp17);
1458#line 110
1459 __utac__exception__cf_handler_reset(excep);
1460#line 820 "libacc.c"
1461 retValue_acc = excep;
1462 }
1463#line 822
1464 return (retValue_acc);
1465 } else {
1466
1467 }
1468#line 114
1469 if (mode == 2) {
1470#line 118 "libacc.c"
1471 if (head) {
1472#line 831
1473 mem_24 = (void **)head;
1474#line 831
1475 retValue_acc = *mem_24;
1476#line 833
1477 return (retValue_acc);
1478 } else {
1479#line 837 "libacc.c"
1480 retValue_acc = (void *)0;
1481#line 839
1482 return (retValue_acc);
1483 }
1484 } else {
1485
1486 }
1487#line 846 "libacc.c"
1488 return (retValue_acc);
1489}
1490}
1491#line 122 "libacc.c"
1492void *__utac__get_this_arg(int i , struct JoinPoint *this )
1493{ void *retValue_acc ;
1494 unsigned long __cil_tmp4 ;
1495 unsigned long __cil_tmp5 ;
1496 int __cil_tmp6 ;
1497 int __cil_tmp7 ;
1498 unsigned long __cil_tmp8 ;
1499 unsigned long __cil_tmp9 ;
1500 void **__cil_tmp10 ;
1501 void **__cil_tmp11 ;
1502 int *mem_12 ;
1503 void ***mem_13 ;
1504
1505 {
1506#line 123
1507 if (i > 0) {
1508 {
1509#line 123
1510 __cil_tmp4 = (unsigned long )this;
1511#line 123
1512 __cil_tmp5 = __cil_tmp4 + 16;
1513#line 123
1514 mem_12 = (int *)__cil_tmp5;
1515#line 123
1516 __cil_tmp6 = *mem_12;
1517#line 123
1518 if (i <= __cil_tmp6) {
1519
1520 } else {
1521 {
1522#line 123
1523 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1524 123U, "__utac__get_this_arg");
1525 }
1526 }
1527 }
1528 } else {
1529 {
1530#line 123
1531 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1532 123U, "__utac__get_this_arg");
1533 }
1534 }
1535#line 870 "libacc.c"
1536 __cil_tmp7 = i - 1;
1537#line 870
1538 __cil_tmp8 = (unsigned long )this;
1539#line 870
1540 __cil_tmp9 = __cil_tmp8 + 8;
1541#line 870
1542 mem_13 = (void ***)__cil_tmp9;
1543#line 870
1544 __cil_tmp10 = *mem_13;
1545#line 870
1546 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1547#line 870
1548 retValue_acc = *__cil_tmp11;
1549#line 872
1550 return (retValue_acc);
1551#line 879
1552 return (retValue_acc);
1553}
1554}
1555#line 129 "libacc.c"
1556char const *__utac__get_this_argtype(int i , struct JoinPoint *this )
1557{ char const *retValue_acc ;
1558 unsigned long __cil_tmp4 ;
1559 unsigned long __cil_tmp5 ;
1560 int __cil_tmp6 ;
1561 int __cil_tmp7 ;
1562 unsigned long __cil_tmp8 ;
1563 unsigned long __cil_tmp9 ;
1564 char const **__cil_tmp10 ;
1565 char const **__cil_tmp11 ;
1566 int *mem_12 ;
1567 char const ***mem_13 ;
1568
1569 {
1570#line 131
1571 if (i > 0) {
1572 {
1573#line 131
1574 __cil_tmp4 = (unsigned long )this;
1575#line 131
1576 __cil_tmp5 = __cil_tmp4 + 16;
1577#line 131
1578 mem_12 = (int *)__cil_tmp5;
1579#line 131
1580 __cil_tmp6 = *mem_12;
1581#line 131
1582 if (i <= __cil_tmp6) {
1583
1584 } else {
1585 {
1586#line 131
1587 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1588 131U, "__utac__get_this_argtype");
1589 }
1590 }
1591 }
1592 } else {
1593 {
1594#line 131
1595 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1596 131U, "__utac__get_this_argtype");
1597 }
1598 }
1599#line 903 "libacc.c"
1600 __cil_tmp7 = i - 1;
1601#line 903
1602 __cil_tmp8 = (unsigned long )this;
1603#line 903
1604 __cil_tmp9 = __cil_tmp8 + 24;
1605#line 903
1606 mem_13 = (char const ***)__cil_tmp9;
1607#line 903
1608 __cil_tmp10 = *mem_13;
1609#line 903
1610 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1611#line 903
1612 retValue_acc = *__cil_tmp11;
1613#line 905
1614 return (retValue_acc);
1615#line 912
1616 return (retValue_acc);
1617}
1618}
1619#line 1 "Specification1_spec.o"
1620#pragma merger(0,"Specification1_spec.i","")
1621#line 38 "Elevator.h"
1622int areDoorsOpen(void) ;
1623#line 40
1624int getCurrentFloorID(void) ;
1625#line 45 "Elevator.h"
1626int weight = 0;
1627#line 47 "Elevator.h"
1628int maximumWeight = 100;
1629#line 50 "Elevator.h"
1630int blocked = 0;
1631#line 7 "Specification1_spec.c"
1632int landingButtons_spc1_0 ;
1633#line 8 "Specification1_spec.c"
1634int landingButtons_spc1_1 ;
1635#line 9 "Specification1_spec.c"
1636int landingButtons_spc1_2 ;
1637#line 10 "Specification1_spec.c"
1638int landingButtons_spc1_3 ;
1639#line 11 "Specification1_spec.c"
1640int landingButtons_spc1_4 ;
1641#line 15 "Specification1_spec.c"
1642__inline void __utac_acc__Specification1_spec__1(void)
1643{
1644
1645 {
1646#line 17
1647 landingButtons_spc1_0 = 0;
1648#line 18
1649 landingButtons_spc1_1 = 0;
1650#line 19
1651 landingButtons_spc1_2 = 0;
1652#line 20
1653 landingButtons_spc1_3 = 0;
1654#line 21
1655 landingButtons_spc1_4 = 0;
1656#line 21
1657 return;
1658}
1659}
1660#line 25 "Specification1_spec.c"
1661void __utac_acc__Specification1_spec__2(int floor )
1662{
1663
1664 {
1665#line 33
1666 if (floor == 0) {
1667#line 34
1668 landingButtons_spc1_0 = 1;
1669 } else {
1670#line 35
1671 if (floor == 1) {
1672#line 36
1673 landingButtons_spc1_1 = 1;
1674 } else {
1675#line 37
1676 if (floor == 2) {
1677#line 38
1678 landingButtons_spc1_2 = 1;
1679 } else {
1680#line 39
1681 if (floor == 3) {
1682#line 40
1683 landingButtons_spc1_3 = 1;
1684 } else {
1685#line 41
1686 if (floor == 4) {
1687#line 42
1688 landingButtons_spc1_4 = 1;
1689 } else {
1690
1691 }
1692 }
1693 }
1694 }
1695 }
1696#line 42
1697 return;
1698}
1699}
1700#line 35 "Specification1_spec.c"
1701__inline void __utac_acc__Specification1_spec__3(void)
1702{ int floor ;
1703 int tmp ;
1704 int tmp___0 ;
1705 int tmp___1 ;
1706 int tmp___2 ;
1707 int tmp___3 ;
1708 int tmp___4 ;
1709
1710 {
1711 {
1712#line 37
1713 tmp = getCurrentFloorID();
1714#line 37
1715 floor = tmp;
1716 }
1717#line 38
1718 if (floor == 0) {
1719#line 38
1720 if (landingButtons_spc1_0) {
1721 {
1722#line 38
1723 tmp___4 = areDoorsOpen();
1724 }
1725#line 38
1726 if (tmp___4) {
1727#line 39
1728 landingButtons_spc1_0 = 0;
1729 } else {
1730 goto _L___6;
1731 }
1732 } else {
1733 goto _L___6;
1734 }
1735 } else {
1736 _L___6:
1737#line 40
1738 if (floor == 1) {
1739#line 40
1740 if (landingButtons_spc1_1) {
1741 {
1742#line 40
1743 tmp___3 = areDoorsOpen();
1744 }
1745#line 40
1746 if (tmp___3) {
1747#line 41
1748 landingButtons_spc1_1 = 0;
1749 } else {
1750 goto _L___4;
1751 }
1752 } else {
1753 goto _L___4;
1754 }
1755 } else {
1756 _L___4:
1757#line 42
1758 if (floor == 2) {
1759#line 42
1760 if (landingButtons_spc1_2) {
1761 {
1762#line 42
1763 tmp___2 = areDoorsOpen();
1764 }
1765#line 42
1766 if (tmp___2) {
1767#line 43
1768 landingButtons_spc1_2 = 0;
1769 } else {
1770 goto _L___2;
1771 }
1772 } else {
1773 goto _L___2;
1774 }
1775 } else {
1776 _L___2:
1777#line 44
1778 if (floor == 3) {
1779#line 44
1780 if (landingButtons_spc1_3) {
1781 {
1782#line 44
1783 tmp___1 = areDoorsOpen();
1784 }
1785#line 44
1786 if (tmp___1) {
1787#line 45
1788 landingButtons_spc1_3 = 0;
1789 } else {
1790 goto _L___0;
1791 }
1792 } else {
1793 goto _L___0;
1794 }
1795 } else {
1796 _L___0:
1797#line 46
1798 if (floor == 4) {
1799#line 46
1800 if (landingButtons_spc1_4) {
1801 {
1802#line 46
1803 tmp___0 = areDoorsOpen();
1804 }
1805#line 46
1806 if (tmp___0) {
1807#line 47
1808 landingButtons_spc1_4 = 0;
1809 } else {
1810
1811 }
1812 } else {
1813
1814 }
1815 } else {
1816
1817 }
1818 }
1819 }
1820 }
1821 }
1822#line 47
1823 return;
1824}
1825}
1826#line 52 "Specification1_spec.c"
1827__inline void __utac_acc__Specification1_spec__4(void)
1828{
1829
1830 {
1831#line 60
1832 if (landingButtons_spc1_0) {
1833 {
1834#line 54
1835 __automaton_fail();
1836 }
1837 } else {
1838#line 55
1839 if (landingButtons_spc1_1) {
1840 {
1841#line 55
1842 __automaton_fail();
1843 }
1844 } else {
1845#line 56
1846 if (landingButtons_spc1_2) {
1847 {
1848#line 56
1849 __automaton_fail();
1850 }
1851 } else {
1852#line 57
1853 if (landingButtons_spc1_3) {
1854 {
1855#line 57
1856 __automaton_fail();
1857 }
1858 } else {
1859#line 58
1860 if (landingButtons_spc1_4) {
1861 {
1862#line 58
1863 __automaton_fail();
1864 }
1865 } else {
1866
1867 }
1868 }
1869 }
1870 }
1871 }
1872#line 58
1873 return;
1874}
1875}
1876#line 1 "Elevator.o"
1877#pragma merger(0,"Elevator.i","")
1878#line 359 "/usr/include/stdio.h"
1879extern int printf(char const * __restrict __format , ...) ;
1880#line 10 "Person.h"
1881int getWeight(int person ) ;
1882#line 14
1883int getDestination(int person ) ;
1884#line 16
1885void enterElevator(int p ) ;
1886#line 20 "Elevator.h"
1887void timeShift(void) ;
1888#line 22
1889int isBlocked(void) ;
1890#line 24
1891void printState(void) ;
1892#line 26
1893int isEmpty(void) ;
1894#line 28
1895int isAnyLiftButtonPressed(void) ;
1896#line 30
1897int buttonForFloorIsPressed(int floorID ) ;
1898#line 33
1899void initTopDown(void) ;
1900#line 35
1901void initBottomUp(void) ;
1902#line 42
1903int isIdle(void) ;
1904#line 18 "Elevator.c"
1905int currentHeading = 1;
1906#line 20 "Elevator.c"
1907int currentFloorID = 0;
1908#line 22 "Elevator.c"
1909int persons_0 ;
1910#line 24 "Elevator.c"
1911int persons_1 ;
1912#line 26 "Elevator.c"
1913int persons_2 ;
1914#line 28 "Elevator.c"
1915int persons_3 ;
1916#line 30 "Elevator.c"
1917int persons_4 ;
1918#line 32 "Elevator.c"
1919int persons_5 ;
1920#line 35 "Elevator.c"
1921int doorState = 1;
1922#line 37 "Elevator.c"
1923int floorButtons_0 ;
1924#line 39 "Elevator.c"
1925int floorButtons_1 ;
1926#line 41 "Elevator.c"
1927int floorButtons_2 ;
1928#line 43 "Elevator.c"
1929int floorButtons_3 ;
1930#line 45 "Elevator.c"
1931int floorButtons_4 ;
1932#line 53 "Elevator.c"
1933void initTopDown(void)
1934{
1935
1936 {
1937 {
1938#line 54
1939 currentFloorID = 4;
1940#line 55
1941 currentHeading = 0;
1942#line 56
1943 floorButtons_0 = 0;
1944#line 57
1945 floorButtons_1 = 0;
1946#line 58
1947 floorButtons_2 = 0;
1948#line 59
1949 floorButtons_3 = 0;
1950#line 60
1951 floorButtons_4 = 0;
1952#line 61
1953 persons_0 = 0;
1954#line 62
1955 persons_1 = 0;
1956#line 63
1957 persons_2 = 0;
1958#line 64
1959 persons_3 = 0;
1960#line 65
1961 persons_4 = 0;
1962#line 66
1963 persons_5 = 0;
1964#line 67
1965 initFloors();
1966 }
1967#line 1077 "Elevator.c"
1968 return;
1969}
1970}
1971#line 70 "Elevator.c"
1972void initBottomUp(void)
1973{
1974
1975 {
1976 {
1977#line 71
1978 currentFloorID = 0;
1979#line 72
1980 currentHeading = 1;
1981#line 73
1982 floorButtons_0 = 0;
1983#line 74
1984 floorButtons_1 = 0;
1985#line 75
1986 floorButtons_2 = 0;
1987#line 76
1988 floorButtons_3 = 0;
1989#line 77
1990 floorButtons_4 = 0;
1991#line 78
1992 persons_0 = 0;
1993#line 79
1994 persons_1 = 0;
1995#line 80
1996 persons_2 = 0;
1997#line 81
1998 persons_3 = 0;
1999#line 82
2000 persons_4 = 0;
2001#line 83
2002 persons_5 = 0;
2003#line 84
2004 initFloors();
2005 }
2006#line 1123 "Elevator.c"
2007 return;
2008}
2009}
2010#line 86 "Elevator.c"
2011int isBlocked(void)
2012{ int retValue_acc ;
2013
2014 {
2015#line 1141 "Elevator.c"
2016 retValue_acc = blocked;
2017#line 1143
2018 return (retValue_acc);
2019#line 1150
2020 return (retValue_acc);
2021}
2022}
2023#line 91 "Elevator.c"
2024void enterElevator__wrappee__base(int p )
2025{
2026
2027 {
2028#line 100
2029 if (p == 0) {
2030#line 101
2031 persons_0 = 1;
2032 } else {
2033#line 102
2034 if (p == 1) {
2035#line 103
2036 persons_1 = 1;
2037 } else {
2038#line 104
2039 if (p == 2) {
2040#line 105
2041 persons_2 = 1;
2042 } else {
2043#line 106
2044 if (p == 3) {
2045#line 107
2046 persons_3 = 1;
2047 } else {
2048#line 108
2049 if (p == 4) {
2050#line 109
2051 persons_4 = 1;
2052 } else {
2053#line 110
2054 if (p == 5) {
2055#line 111
2056 persons_5 = 1;
2057 } else {
2058
2059 }
2060 }
2061 }
2062 }
2063 }
2064 }
2065#line 1185 "Elevator.c"
2066 return;
2067}
2068}
2069#line 102 "Elevator.c"
2070void enterElevator(int p )
2071{ int tmp ;
2072
2073 {
2074 {
2075#line 103
2076 enterElevator__wrappee__base(p);
2077#line 104
2078 tmp = getWeight(p);
2079#line 104
2080 weight = weight + tmp;
2081 }
2082#line 1207 "Elevator.c"
2083 return;
2084}
2085}
2086#line 107 "Elevator.c"
2087void leaveElevator__wrappee__base(int p )
2088{
2089
2090 {
2091#line 115
2092 if (p == 0) {
2093#line 116
2094 persons_0 = 0;
2095 } else {
2096#line 117
2097 if (p == 1) {
2098#line 118
2099 persons_1 = 0;
2100 } else {
2101#line 119
2102 if (p == 2) {
2103#line 120
2104 persons_2 = 0;
2105 } else {
2106#line 121
2107 if (p == 3) {
2108#line 122
2109 persons_3 = 0;
2110 } else {
2111#line 123
2112 if (p == 4) {
2113#line 124
2114 persons_4 = 0;
2115 } else {
2116#line 125
2117 if (p == 5) {
2118#line 126
2119 persons_5 = 0;
2120 } else {
2121
2122 }
2123 }
2124 }
2125 }
2126 }
2127 }
2128#line 1238 "Elevator.c"
2129 return;
2130}
2131}
2132#line 117 "Elevator.c"
2133void leaveElevator(int p )
2134{ int tmp ;
2135
2136 {
2137 {
2138#line 118
2139 leaveElevator__wrappee__base(p);
2140#line 119
2141 tmp = getWeight(p);
2142#line 119
2143 weight = weight - tmp;
2144 }
2145#line 1260 "Elevator.c"
2146 return;
2147}
2148}
2149#line 122 "Elevator.c"
2150void pressInLiftFloorButton(int floorID )
2151{
2152
2153 {
2154#line 128
2155 if (floorID == 0) {
2156#line 129
2157 floorButtons_0 = 1;
2158 } else {
2159#line 130
2160 if (floorID == 1) {
2161#line 131
2162 floorButtons_1 = 1;
2163 } else {
2164#line 132
2165 if (floorID == 2) {
2166#line 133
2167 floorButtons_2 = 1;
2168 } else {
2169#line 134
2170 if (floorID == 3) {
2171#line 135
2172 floorButtons_3 = 1;
2173 } else {
2174#line 136
2175 if (floorID == 4) {
2176#line 137
2177 floorButtons_4 = 1;
2178 } else {
2179
2180 }
2181 }
2182 }
2183 }
2184 }
2185#line 1289 "Elevator.c"
2186 return;
2187}
2188}
2189#line 130 "Elevator.c"
2190void resetFloorButton(int floorID )
2191{
2192
2193 {
2194#line 136
2195 if (floorID == 0) {
2196#line 137
2197 floorButtons_0 = 0;
2198 } else {
2199#line 138
2200 if (floorID == 1) {
2201#line 139
2202 floorButtons_1 = 0;
2203 } else {
2204#line 140
2205 if (floorID == 2) {
2206#line 141
2207 floorButtons_2 = 0;
2208 } else {
2209#line 142
2210 if (floorID == 3) {
2211#line 143
2212 floorButtons_3 = 0;
2213 } else {
2214#line 144
2215 if (floorID == 4) {
2216#line 145
2217 floorButtons_4 = 0;
2218 } else {
2219
2220 }
2221 }
2222 }
2223 }
2224 }
2225#line 1318 "Elevator.c"
2226 return;
2227}
2228}
2229#line 138 "Elevator.c"
2230int getCurrentFloorID(void)
2231{ int retValue_acc ;
2232
2233 {
2234#line 1336 "Elevator.c"
2235 retValue_acc = currentFloorID;
2236#line 1338
2237 return (retValue_acc);
2238#line 1345
2239 return (retValue_acc);
2240}
2241}
2242#line 142 "Elevator.c"
2243int areDoorsOpen(void)
2244{ int retValue_acc ;
2245
2246 {
2247#line 1367 "Elevator.c"
2248 retValue_acc = doorState;
2249#line 1369
2250 return (retValue_acc);
2251#line 1376
2252 return (retValue_acc);
2253}
2254}
2255#line 146 "Elevator.c"
2256int buttonForFloorIsPressed(int floorID )
2257{ int retValue_acc ;
2258
2259 {
2260#line 152 "Elevator.c"
2261 if (floorID == 0) {
2262#line 1399
2263 retValue_acc = floorButtons_0;
2264#line 1401
2265 return (retValue_acc);
2266 } else {
2267#line 1403
2268 if (floorID == 1) {
2269#line 1406
2270 retValue_acc = floorButtons_1;
2271#line 1408
2272 return (retValue_acc);
2273 } else {
2274#line 1410
2275 if (floorID == 2) {
2276#line 1413
2277 retValue_acc = floorButtons_2;
2278#line 1415
2279 return (retValue_acc);
2280 } else {
2281#line 1417
2282 if (floorID == 3) {
2283#line 1420
2284 retValue_acc = floorButtons_3;
2285#line 1422
2286 return (retValue_acc);
2287 } else {
2288#line 1424
2289 if (floorID == 4) {
2290#line 1427
2291 retValue_acc = floorButtons_4;
2292#line 1429
2293 return (retValue_acc);
2294 } else {
2295#line 1433 "Elevator.c"
2296 retValue_acc = 0;
2297#line 1435
2298 return (retValue_acc);
2299 }
2300 }
2301 }
2302 }
2303 }
2304#line 1442 "Elevator.c"
2305 return (retValue_acc);
2306}
2307}
2308#line 155 "Elevator.c"
2309int getCurrentHeading(void)
2310{ int retValue_acc ;
2311
2312 {
2313#line 1464 "Elevator.c"
2314 retValue_acc = currentHeading;
2315#line 1466
2316 return (retValue_acc);
2317#line 1473
2318 return (retValue_acc);
2319}
2320}
2321#line 159 "Elevator.c"
2322int isEmpty(void)
2323{ int retValue_acc ;
2324
2325 {
2326#line 166 "Elevator.c"
2327 if (persons_0 == 1) {
2328#line 1496
2329 retValue_acc = 0;
2330#line 1498
2331 return (retValue_acc);
2332 } else {
2333#line 1500
2334 if (persons_1 == 1) {
2335#line 1503
2336 retValue_acc = 0;
2337#line 1505
2338 return (retValue_acc);
2339 } else {
2340#line 1507
2341 if (persons_2 == 1) {
2342#line 1510
2343 retValue_acc = 0;
2344#line 1512
2345 return (retValue_acc);
2346 } else {
2347#line 1514
2348 if (persons_3 == 1) {
2349#line 1517
2350 retValue_acc = 0;
2351#line 1519
2352 return (retValue_acc);
2353 } else {
2354#line 1521
2355 if (persons_4 == 1) {
2356#line 1524
2357 retValue_acc = 0;
2358#line 1526
2359 return (retValue_acc);
2360 } else {
2361#line 1528
2362 if (persons_5 == 1) {
2363#line 1531 "Elevator.c"
2364 retValue_acc = 0;
2365#line 1533
2366 return (retValue_acc);
2367 } else {
2368
2369 }
2370 }
2371 }
2372 }
2373 }
2374 }
2375#line 1538 "Elevator.c"
2376 retValue_acc = 1;
2377#line 1540
2378 return (retValue_acc);
2379#line 1547
2380 return (retValue_acc);
2381}
2382}
2383#line 170 "Elevator.c"
2384int anyStopRequested(void)
2385{ int retValue_acc ;
2386 int tmp ;
2387 int tmp___0 ;
2388 int tmp___1 ;
2389 int tmp___2 ;
2390 int tmp___3 ;
2391
2392 {
2393 {
2394#line 181
2395 tmp___3 = isFloorCalling(0);
2396 }
2397#line 181 "Elevator.c"
2398 if (tmp___3) {
2399#line 1570
2400 retValue_acc = 1;
2401#line 1572
2402 return (retValue_acc);
2403 } else {
2404#line 1574
2405 if (floorButtons_0) {
2406#line 1577
2407 retValue_acc = 1;
2408#line 1579
2409 return (retValue_acc);
2410 } else {
2411 {
2412#line 1581 "Elevator.c"
2413 tmp___2 = isFloorCalling(1);
2414 }
2415#line 1581
2416 if (tmp___2) {
2417#line 1584
2418 retValue_acc = 1;
2419#line 1586
2420 return (retValue_acc);
2421 } else {
2422#line 1588
2423 if (floorButtons_1) {
2424#line 1591
2425 retValue_acc = 1;
2426#line 1593
2427 return (retValue_acc);
2428 } else {
2429 {
2430#line 1595
2431 tmp___1 = isFloorCalling(2);
2432 }
2433#line 1595
2434 if (tmp___1) {
2435#line 1598
2436 retValue_acc = 1;
2437#line 1600
2438 return (retValue_acc);
2439 } else {
2440#line 1602
2441 if (floorButtons_2) {
2442#line 1605
2443 retValue_acc = 1;
2444#line 1607
2445 return (retValue_acc);
2446 } else {
2447 {
2448#line 1609
2449 tmp___0 = isFloorCalling(3);
2450 }
2451#line 1609
2452 if (tmp___0) {
2453#line 1612
2454 retValue_acc = 1;
2455#line 1614
2456 return (retValue_acc);
2457 } else {
2458#line 1616
2459 if (floorButtons_3) {
2460#line 1619
2461 retValue_acc = 1;
2462#line 1621
2463 return (retValue_acc);
2464 } else {
2465 {
2466#line 1623
2467 tmp = isFloorCalling(4);
2468 }
2469#line 1623
2470 if (tmp) {
2471#line 1626
2472 retValue_acc = 1;
2473#line 1628
2474 return (retValue_acc);
2475 } else {
2476#line 1630
2477 if (floorButtons_4) {
2478#line 1633
2479 retValue_acc = 1;
2480#line 1635
2481 return (retValue_acc);
2482 } else {
2483
2484 }
2485 }
2486 }
2487 }
2488 }
2489 }
2490 }
2491 }
2492 }
2493 }
2494#line 1640 "Elevator.c"
2495 retValue_acc = 0;
2496#line 1642
2497 return (retValue_acc);
2498#line 1649
2499 return (retValue_acc);
2500}
2501}
2502#line 184 "Elevator.c"
2503int isIdle(void)
2504{ int retValue_acc ;
2505 int tmp ;
2506
2507 {
2508 {
2509#line 1671 "Elevator.c"
2510 tmp = anyStopRequested();
2511#line 1671
2512 retValue_acc = tmp == 0;
2513 }
2514#line 1673
2515 return (retValue_acc);
2516#line 1680
2517 return (retValue_acc);
2518}
2519}
2520#line 188 "Elevator.c"
2521int stopRequestedInDirection(int dir , int respectFloorCalls , int respectInLiftCalls )
2522{ int retValue_acc ;
2523 int tmp ;
2524 int tmp___0 ;
2525 int tmp___1 ;
2526 int tmp___2 ;
2527 int tmp___3 ;
2528 int tmp___4 ;
2529 int tmp___5 ;
2530 int tmp___6 ;
2531 int tmp___7 ;
2532 int tmp___8 ;
2533 int tmp___9 ;
2534
2535 {
2536#line 239
2537 if (dir == 1) {
2538 {
2539#line 199
2540 tmp = isTopFloor(currentFloorID);
2541 }
2542#line 199 "Elevator.c"
2543 if (tmp) {
2544#line 1706 "Elevator.c"
2545 retValue_acc = 0;
2546#line 1708
2547 return (retValue_acc);
2548 } else {
2549
2550 }
2551#line 199
2552 if (currentFloorID < 0) {
2553#line 199
2554 if (respectFloorCalls) {
2555 {
2556#line 199 "Elevator.c"
2557 tmp___4 = isFloorCalling(0);
2558 }
2559#line 199 "Elevator.c"
2560 if (tmp___4) {
2561#line 1714 "Elevator.c"
2562 retValue_acc = 1;
2563#line 1716
2564 return (retValue_acc);
2565 } else {
2566 goto _L___16;
2567 }
2568 } else {
2569 goto _L___16;
2570 }
2571 } else {
2572 _L___16:
2573#line 1718
2574 if (currentFloorID < 0) {
2575#line 1718
2576 if (respectInLiftCalls) {
2577#line 1718
2578 if (floorButtons_0) {
2579#line 1721
2580 retValue_acc = 1;
2581#line 1723
2582 return (retValue_acc);
2583 } else {
2584 goto _L___14;
2585 }
2586 } else {
2587 goto _L___14;
2588 }
2589 } else {
2590 _L___14:
2591#line 1725
2592 if (currentFloorID < 1) {
2593#line 1725
2594 if (respectFloorCalls) {
2595 {
2596#line 1725
2597 tmp___3 = isFloorCalling(1);
2598 }
2599#line 1725
2600 if (tmp___3) {
2601#line 1728
2602 retValue_acc = 1;
2603#line 1730
2604 return (retValue_acc);
2605 } else {
2606 goto _L___12;
2607 }
2608 } else {
2609 goto _L___12;
2610 }
2611 } else {
2612 _L___12:
2613#line 1732
2614 if (currentFloorID < 1) {
2615#line 1732
2616 if (respectInLiftCalls) {
2617#line 1732
2618 if (floorButtons_1) {
2619#line 1735
2620 retValue_acc = 1;
2621#line 1737
2622 return (retValue_acc);
2623 } else {
2624 goto _L___10;
2625 }
2626 } else {
2627 goto _L___10;
2628 }
2629 } else {
2630 _L___10:
2631#line 1739
2632 if (currentFloorID < 2) {
2633#line 1739
2634 if (respectFloorCalls) {
2635 {
2636#line 1739
2637 tmp___2 = isFloorCalling(2);
2638 }
2639#line 1739
2640 if (tmp___2) {
2641#line 1742
2642 retValue_acc = 1;
2643#line 1744
2644 return (retValue_acc);
2645 } else {
2646 goto _L___8;
2647 }
2648 } else {
2649 goto _L___8;
2650 }
2651 } else {
2652 _L___8:
2653#line 1746
2654 if (currentFloorID < 2) {
2655#line 1746
2656 if (respectInLiftCalls) {
2657#line 1746
2658 if (floorButtons_2) {
2659#line 1749
2660 retValue_acc = 1;
2661#line 1751
2662 return (retValue_acc);
2663 } else {
2664 goto _L___6;
2665 }
2666 } else {
2667 goto _L___6;
2668 }
2669 } else {
2670 _L___6:
2671#line 1753
2672 if (currentFloorID < 3) {
2673#line 1753
2674 if (respectFloorCalls) {
2675 {
2676#line 1753
2677 tmp___1 = isFloorCalling(3);
2678 }
2679#line 1753
2680 if (tmp___1) {
2681#line 1756
2682 retValue_acc = 1;
2683#line 1758
2684 return (retValue_acc);
2685 } else {
2686 goto _L___4;
2687 }
2688 } else {
2689 goto _L___4;
2690 }
2691 } else {
2692 _L___4:
2693#line 1760
2694 if (currentFloorID < 3) {
2695#line 1760
2696 if (respectInLiftCalls) {
2697#line 1760
2698 if (floorButtons_3) {
2699#line 1763
2700 retValue_acc = 1;
2701#line 1765
2702 return (retValue_acc);
2703 } else {
2704 goto _L___2;
2705 }
2706 } else {
2707 goto _L___2;
2708 }
2709 } else {
2710 _L___2:
2711#line 1767
2712 if (currentFloorID < 4) {
2713#line 1767
2714 if (respectFloorCalls) {
2715 {
2716#line 1767
2717 tmp___0 = isFloorCalling(4);
2718 }
2719#line 1767
2720 if (tmp___0) {
2721#line 1770
2722 retValue_acc = 1;
2723#line 1772
2724 return (retValue_acc);
2725 } else {
2726 goto _L___0;
2727 }
2728 } else {
2729 goto _L___0;
2730 }
2731 } else {
2732 _L___0:
2733#line 1774
2734 if (currentFloorID < 4) {
2735#line 1774
2736 if (respectInLiftCalls) {
2737#line 1774
2738 if (floorButtons_4) {
2739#line 1777
2740 retValue_acc = 1;
2741#line 1779
2742 return (retValue_acc);
2743 } else {
2744#line 1783
2745 retValue_acc = 0;
2746#line 1785
2747 return (retValue_acc);
2748 }
2749 } else {
2750#line 1783
2751 retValue_acc = 0;
2752#line 1785
2753 return (retValue_acc);
2754 }
2755 } else {
2756#line 1783 "Elevator.c"
2757 retValue_acc = 0;
2758#line 1785
2759 return (retValue_acc);
2760 }
2761 }
2762 }
2763 }
2764 }
2765 }
2766 }
2767 }
2768 }
2769 }
2770 } else {
2771#line 224 "Elevator.c"
2772 if (currentFloorID == 0) {
2773#line 1793 "Elevator.c"
2774 retValue_acc = 0;
2775#line 1795
2776 return (retValue_acc);
2777 } else {
2778
2779 }
2780#line 224
2781 if (currentFloorID > 0) {
2782#line 224
2783 if (respectFloorCalls) {
2784 {
2785#line 224 "Elevator.c"
2786 tmp___9 = isFloorCalling(0);
2787 }
2788#line 224 "Elevator.c"
2789 if (tmp___9) {
2790#line 1801 "Elevator.c"
2791 retValue_acc = 1;
2792#line 1803
2793 return (retValue_acc);
2794 } else {
2795 goto _L___34;
2796 }
2797 } else {
2798 goto _L___34;
2799 }
2800 } else {
2801 _L___34:
2802#line 1805
2803 if (currentFloorID > 0) {
2804#line 1805
2805 if (respectInLiftCalls) {
2806#line 1805
2807 if (floorButtons_0) {
2808#line 1808
2809 retValue_acc = 1;
2810#line 1810
2811 return (retValue_acc);
2812 } else {
2813 goto _L___32;
2814 }
2815 } else {
2816 goto _L___32;
2817 }
2818 } else {
2819 _L___32:
2820#line 1812
2821 if (currentFloorID > 1) {
2822#line 1812
2823 if (respectFloorCalls) {
2824 {
2825#line 1812
2826 tmp___8 = isFloorCalling(1);
2827 }
2828#line 1812
2829 if (tmp___8) {
2830#line 1815
2831 retValue_acc = 1;
2832#line 1817
2833 return (retValue_acc);
2834 } else {
2835 goto _L___30;
2836 }
2837 } else {
2838 goto _L___30;
2839 }
2840 } else {
2841 _L___30:
2842#line 1819
2843 if (currentFloorID > 1) {
2844#line 1819
2845 if (respectInLiftCalls) {
2846#line 1819
2847 if (floorButtons_1) {
2848#line 1822
2849 retValue_acc = 1;
2850#line 1824
2851 return (retValue_acc);
2852 } else {
2853 goto _L___28;
2854 }
2855 } else {
2856 goto _L___28;
2857 }
2858 } else {
2859 _L___28:
2860#line 1826
2861 if (currentFloorID > 2) {
2862#line 1826
2863 if (respectFloorCalls) {
2864 {
2865#line 1826
2866 tmp___7 = isFloorCalling(2);
2867 }
2868#line 1826
2869 if (tmp___7) {
2870#line 1829
2871 retValue_acc = 1;
2872#line 1831
2873 return (retValue_acc);
2874 } else {
2875 goto _L___26;
2876 }
2877 } else {
2878 goto _L___26;
2879 }
2880 } else {
2881 _L___26:
2882#line 1833
2883 if (currentFloorID > 2) {
2884#line 1833
2885 if (respectInLiftCalls) {
2886#line 1833
2887 if (floorButtons_2) {
2888#line 1836
2889 retValue_acc = 1;
2890#line 1838
2891 return (retValue_acc);
2892 } else {
2893 goto _L___24;
2894 }
2895 } else {
2896 goto _L___24;
2897 }
2898 } else {
2899 _L___24:
2900#line 1840
2901 if (currentFloorID > 3) {
2902#line 1840
2903 if (respectFloorCalls) {
2904 {
2905#line 1840
2906 tmp___6 = isFloorCalling(3);
2907 }
2908#line 1840
2909 if (tmp___6) {
2910#line 1843
2911 retValue_acc = 1;
2912#line 1845
2913 return (retValue_acc);
2914 } else {
2915 goto _L___22;
2916 }
2917 } else {
2918 goto _L___22;
2919 }
2920 } else {
2921 _L___22:
2922#line 1847
2923 if (currentFloorID > 3) {
2924#line 1847
2925 if (respectInLiftCalls) {
2926#line 1847
2927 if (floorButtons_3) {
2928#line 1850
2929 retValue_acc = 1;
2930#line 1852
2931 return (retValue_acc);
2932 } else {
2933 goto _L___20;
2934 }
2935 } else {
2936 goto _L___20;
2937 }
2938 } else {
2939 _L___20:
2940#line 1854
2941 if (currentFloorID > 4) {
2942#line 1854
2943 if (respectFloorCalls) {
2944 {
2945#line 1854
2946 tmp___5 = isFloorCalling(4);
2947 }
2948#line 1854
2949 if (tmp___5) {
2950#line 1857
2951 retValue_acc = 1;
2952#line 1859
2953 return (retValue_acc);
2954 } else {
2955 goto _L___18;
2956 }
2957 } else {
2958 goto _L___18;
2959 }
2960 } else {
2961 _L___18:
2962#line 1861
2963 if (currentFloorID > 4) {
2964#line 1861
2965 if (respectInLiftCalls) {
2966#line 1861
2967 if (floorButtons_4) {
2968#line 1864
2969 retValue_acc = 1;
2970#line 1866
2971 return (retValue_acc);
2972 } else {
2973#line 1870
2974 retValue_acc = 0;
2975#line 1872
2976 return (retValue_acc);
2977 }
2978 } else {
2979#line 1870
2980 retValue_acc = 0;
2981#line 1872
2982 return (retValue_acc);
2983 }
2984 } else {
2985#line 1870 "Elevator.c"
2986 retValue_acc = 0;
2987#line 1872
2988 return (retValue_acc);
2989 }
2990 }
2991 }
2992 }
2993 }
2994 }
2995 }
2996 }
2997 }
2998 }
2999 }
3000#line 1879 "Elevator.c"
3001 return (retValue_acc);
3002}
3003}
3004#line 242 "Elevator.c"
3005int isAnyLiftButtonPressed(void)
3006{ int retValue_acc ;
3007
3008 {
3009#line 248 "Elevator.c"
3010 if (floorButtons_0) {
3011#line 1902
3012 retValue_acc = 1;
3013#line 1904
3014 return (retValue_acc);
3015 } else {
3016#line 1906
3017 if (floorButtons_1) {
3018#line 1909
3019 retValue_acc = 1;
3020#line 1911
3021 return (retValue_acc);
3022 } else {
3023#line 1913
3024 if (floorButtons_2) {
3025#line 1916
3026 retValue_acc = 1;
3027#line 1918
3028 return (retValue_acc);
3029 } else {
3030#line 1920
3031 if (floorButtons_3) {
3032#line 1923
3033 retValue_acc = 1;
3034#line 1925
3035 return (retValue_acc);
3036 } else {
3037#line 1927
3038 if (floorButtons_4) {
3039#line 1930
3040 retValue_acc = 1;
3041#line 1932
3042 return (retValue_acc);
3043 } else {
3044#line 1936 "Elevator.c"
3045 retValue_acc = 0;
3046#line 1938
3047 return (retValue_acc);
3048 }
3049 }
3050 }
3051 }
3052 }
3053#line 1945 "Elevator.c"
3054 return (retValue_acc);
3055}
3056}
3057#line 251 "Elevator.c"
3058void continueInDirection(int dir )
3059{ int tmp ;
3060
3061 {
3062#line 252
3063 currentHeading = dir;
3064#line 253
3065 if (currentHeading == 1) {
3066 {
3067#line 258
3068 tmp = isTopFloor(currentFloorID);
3069 }
3070#line 258
3071 if (tmp) {
3072#line 256
3073 currentHeading = 0;
3074 } else {
3075
3076 }
3077 } else {
3078#line 263
3079 if (currentFloorID == 0) {
3080#line 261
3081 currentHeading = 1;
3082 } else {
3083
3084 }
3085 }
3086#line 264
3087 if (currentHeading == 1) {
3088#line 265
3089 currentFloorID = currentFloorID + 1;
3090 } else {
3091#line 267
3092 currentFloorID = currentFloorID - 1;
3093 }
3094#line 1991 "Elevator.c"
3095 return;
3096}
3097}
3098#line 271 "Elevator.c"
3099int stopRequestedAtCurrentFloor(void)
3100{ int retValue_acc ;
3101 int tmp ;
3102 int tmp___0 ;
3103
3104 {
3105 {
3106#line 278
3107 tmp___0 = isFloorCalling(currentFloorID);
3108 }
3109#line 278 "Elevator.c"
3110 if (tmp___0) {
3111#line 2012
3112 retValue_acc = 1;
3113#line 2014
3114 return (retValue_acc);
3115 } else {
3116 {
3117#line 2016 "Elevator.c"
3118 tmp = buttonForFloorIsPressed(currentFloorID);
3119 }
3120#line 2016
3121 if (tmp) {
3122#line 2021
3123 retValue_acc = 1;
3124#line 2023
3125 return (retValue_acc);
3126 } else {
3127#line 2029
3128 retValue_acc = 0;
3129#line 2031
3130 return (retValue_acc);
3131 }
3132 }
3133#line 2038 "Elevator.c"
3134 return (retValue_acc);
3135}
3136}
3137#line 281 "Elevator.c"
3138int getReverseHeading(int ofHeading )
3139{ int retValue_acc ;
3140
3141 {
3142#line 284 "Elevator.c"
3143 if (ofHeading == 0) {
3144#line 2063
3145 retValue_acc = 1;
3146#line 2065
3147 return (retValue_acc);
3148 } else {
3149#line 2069 "Elevator.c"
3150 retValue_acc = 0;
3151#line 2071
3152 return (retValue_acc);
3153 }
3154#line 2078 "Elevator.c"
3155 return (retValue_acc);
3156}
3157}
3158#line 288 "Elevator.c"
3159void processWaitingOnFloor(int floorID )
3160{ int tmp ;
3161 int tmp___0 ;
3162 int tmp___1 ;
3163 int tmp___2 ;
3164 int tmp___3 ;
3165 int tmp___4 ;
3166 int tmp___5 ;
3167 int tmp___6 ;
3168 int tmp___7 ;
3169 int tmp___8 ;
3170 int tmp___9 ;
3171 int tmp___10 ;
3172
3173 {
3174 {
3175#line 294
3176 tmp___0 = isPersonOnFloor(0, floorID);
3177 }
3178#line 294
3179 if (tmp___0) {
3180 {
3181#line 290
3182 removePersonFromFloor(0, floorID);
3183#line 291
3184 tmp = getDestination(0);
3185#line 291
3186 pressInLiftFloorButton(tmp);
3187#line 292
3188 enterElevator(0);
3189 }
3190 } else {
3191
3192 }
3193 {
3194#line 294
3195 tmp___2 = isPersonOnFloor(1, floorID);
3196 }
3197#line 294
3198 if (tmp___2) {
3199 {
3200#line 295
3201 removePersonFromFloor(1, floorID);
3202#line 296
3203 tmp___1 = getDestination(1);
3204#line 296
3205 pressInLiftFloorButton(tmp___1);
3206#line 297
3207 enterElevator(1);
3208 }
3209 } else {
3210
3211 }
3212 {
3213#line 299
3214 tmp___4 = isPersonOnFloor(2, floorID);
3215 }
3216#line 299
3217 if (tmp___4) {
3218 {
3219#line 300
3220 removePersonFromFloor(2, floorID);
3221#line 301
3222 tmp___3 = getDestination(2);
3223#line 301
3224 pressInLiftFloorButton(tmp___3);
3225#line 302
3226 enterElevator(2);
3227 }
3228 } else {
3229
3230 }
3231 {
3232#line 304
3233 tmp___6 = isPersonOnFloor(3, floorID);
3234 }
3235#line 304
3236 if (tmp___6) {
3237 {
3238#line 305
3239 removePersonFromFloor(3, floorID);
3240#line 306
3241 tmp___5 = getDestination(3);
3242#line 306
3243 pressInLiftFloorButton(tmp___5);
3244#line 307
3245 enterElevator(3);
3246 }
3247 } else {
3248
3249 }
3250 {
3251#line 309
3252 tmp___8 = isPersonOnFloor(4, floorID);
3253 }
3254#line 309
3255 if (tmp___8) {
3256 {
3257#line 310
3258 removePersonFromFloor(4, floorID);
3259#line 311
3260 tmp___7 = getDestination(4);
3261#line 311
3262 pressInLiftFloorButton(tmp___7);
3263#line 312
3264 enterElevator(4);
3265 }
3266 } else {
3267
3268 }
3269 {
3270#line 314
3271 tmp___10 = isPersonOnFloor(5, floorID);
3272 }
3273#line 314
3274 if (tmp___10) {
3275 {
3276#line 315
3277 removePersonFromFloor(5, floorID);
3278#line 316
3279 tmp___9 = getDestination(5);
3280#line 316
3281 pressInLiftFloorButton(tmp___9);
3282#line 317
3283 enterElevator(5);
3284 }
3285 } else {
3286
3287 }
3288 {
3289#line 319
3290 resetCallOnFloor(floorID);
3291 }
3292#line 2156 "Elevator.c"
3293 return;
3294}
3295}
3296#line 323 "Elevator.c"
3297void timeShift__wrappee__weight(void)
3298{ int tmp ;
3299 int tmp___0 ;
3300 int tmp___1 ;
3301 int tmp___2 ;
3302 int tmp___3 ;
3303 int tmp___4 ;
3304 int tmp___5 ;
3305 int tmp___6 ;
3306 int tmp___7 ;
3307 int tmp___8 ;
3308 int tmp___9 ;
3309
3310 {
3311 {
3312#line 356
3313 tmp___9 = stopRequestedAtCurrentFloor();
3314 }
3315#line 356
3316 if (tmp___9) {
3317#line 328
3318 doorState = 1;
3319#line 330
3320 if (persons_0) {
3321 {
3322#line 330
3323 tmp = getDestination(0);
3324 }
3325#line 330
3326 if (tmp == currentFloorID) {
3327 {
3328#line 331
3329 leaveElevator(0);
3330 }
3331 } else {
3332
3333 }
3334 } else {
3335
3336 }
3337#line 331
3338 if (persons_1) {
3339 {
3340#line 331
3341 tmp___0 = getDestination(1);
3342 }
3343#line 331
3344 if (tmp___0 == currentFloorID) {
3345 {
3346#line 332
3347 leaveElevator(1);
3348 }
3349 } else {
3350
3351 }
3352 } else {
3353
3354 }
3355#line 332
3356 if (persons_2) {
3357 {
3358#line 332
3359 tmp___1 = getDestination(2);
3360 }
3361#line 332
3362 if (tmp___1 == currentFloorID) {
3363 {
3364#line 333
3365 leaveElevator(2);
3366 }
3367 } else {
3368
3369 }
3370 } else {
3371
3372 }
3373#line 333
3374 if (persons_3) {
3375 {
3376#line 333
3377 tmp___2 = getDestination(3);
3378 }
3379#line 333
3380 if (tmp___2 == currentFloorID) {
3381 {
3382#line 334
3383 leaveElevator(3);
3384 }
3385 } else {
3386
3387 }
3388 } else {
3389
3390 }
3391#line 334
3392 if (persons_4) {
3393 {
3394#line 334
3395 tmp___3 = getDestination(4);
3396 }
3397#line 334
3398 if (tmp___3 == currentFloorID) {
3399 {
3400#line 335
3401 leaveElevator(4);
3402 }
3403 } else {
3404
3405 }
3406 } else {
3407
3408 }
3409#line 335
3410 if (persons_5) {
3411 {
3412#line 335
3413 tmp___4 = getDestination(5);
3414 }
3415#line 335
3416 if (tmp___4 == currentFloorID) {
3417 {
3418#line 336
3419 leaveElevator(5);
3420 }
3421 } else {
3422
3423 }
3424 } else {
3425
3426 }
3427 {
3428#line 336
3429 processWaitingOnFloor(currentFloorID);
3430#line 337
3431 resetFloorButton(currentFloorID);
3432 }
3433 } else {
3434#line 343
3435 if (doorState == 1) {
3436#line 340
3437 doorState = 0;
3438 } else {
3439
3440 }
3441 {
3442#line 343
3443 tmp___8 = stopRequestedInDirection(currentHeading, 1, 1);
3444 }
3445#line 343
3446 if (tmp___8) {
3447 {
3448#line 346
3449 continueInDirection(currentHeading);
3450 }
3451 } else {
3452 {
3453#line 347
3454 tmp___6 = getReverseHeading(currentHeading);
3455#line 347
3456 tmp___7 = stopRequestedInDirection(tmp___6, 1, 1);
3457 }
3458#line 347
3459 if (tmp___7) {
3460 {
3461#line 350
3462 tmp___5 = getReverseHeading(currentHeading);
3463#line 350
3464 continueInDirection(tmp___5);
3465 }
3466 } else {
3467 {
3468#line 354
3469 continueInDirection(currentHeading);
3470 }
3471 }
3472 }
3473 }
3474#line 2219 "Elevator.c"
3475 return;
3476}
3477}
3478#line 361 "Elevator.c"
3479void timeShift(void)
3480{ int tmp ;
3481
3482 {
3483 {
3484#line 367
3485 tmp = areDoorsOpen();
3486 }
3487#line 367
3488 if (tmp) {
3489#line 367
3490 if (weight > maximumWeight) {
3491#line 363
3492 blocked = 1;
3493 } else {
3494 {
3495#line 365
3496 blocked = 0;
3497#line 366
3498 timeShift__wrappee__weight();
3499 }
3500 }
3501 } else {
3502 {
3503#line 365
3504 blocked = 0;
3505#line 366
3506 timeShift__wrappee__weight();
3507 }
3508 }
3509 {
3510#line 2249 "Elevator.c"
3511 __utac_acc__Specification1_spec__3();
3512 }
3513#line 2255
3514 return;
3515}
3516}
3517#line 370 "Elevator.c"
3518void printState__wrappee__weight(void)
3519{ int tmp ;
3520 int tmp___0 ;
3521 int tmp___1 ;
3522 int tmp___2 ;
3523 int tmp___3 ;
3524 char const * __restrict __cil_tmp6 ;
3525 char const * __restrict __cil_tmp7 ;
3526 char const * __restrict __cil_tmp8 ;
3527 char const * __restrict __cil_tmp9 ;
3528 char const * __restrict __cil_tmp10 ;
3529 char const * __restrict __cil_tmp11 ;
3530 char const * __restrict __cil_tmp12 ;
3531 char const * __restrict __cil_tmp13 ;
3532 char const * __restrict __cil_tmp14 ;
3533 char const * __restrict __cil_tmp15 ;
3534 char const * __restrict __cil_tmp16 ;
3535 char const * __restrict __cil_tmp17 ;
3536 char const * __restrict __cil_tmp18 ;
3537 char const * __restrict __cil_tmp19 ;
3538 char const * __restrict __cil_tmp20 ;
3539 char const * __restrict __cil_tmp21 ;
3540 char const * __restrict __cil_tmp22 ;
3541 char const * __restrict __cil_tmp23 ;
3542 char const * __restrict __cil_tmp24 ;
3543 char const * __restrict __cil_tmp25 ;
3544 char const * __restrict __cil_tmp26 ;
3545
3546 {
3547 {
3548#line 371
3549 __cil_tmp6 = (char const * __restrict )"Elevator ";
3550#line 371
3551 printf(__cil_tmp6);
3552 }
3553#line 372
3554 if (doorState) {
3555 {
3556#line 373
3557 __cil_tmp7 = (char const * __restrict )"[_]";
3558#line 373
3559 printf(__cil_tmp7);
3560 }
3561 } else {
3562 {
3563#line 374
3564 __cil_tmp8 = (char const * __restrict )"[] ";
3565#line 374
3566 printf(__cil_tmp8);
3567 }
3568 }
3569 {
3570#line 374
3571 __cil_tmp9 = (char const * __restrict )" at ";
3572#line 374
3573 printf(__cil_tmp9);
3574#line 375
3575 __cil_tmp10 = (char const * __restrict )"%i";
3576#line 375
3577 printf(__cil_tmp10, currentFloorID);
3578#line 376
3579 __cil_tmp11 = (char const * __restrict )" heading ";
3580#line 376
3581 printf(__cil_tmp11);
3582 }
3583#line 377
3584 if (currentHeading) {
3585 {
3586#line 378
3587 __cil_tmp12 = (char const * __restrict )"up";
3588#line 378
3589 printf(__cil_tmp12);
3590 }
3591 } else {
3592 {
3593#line 379
3594 __cil_tmp13 = (char const * __restrict )"down";
3595#line 379
3596 printf(__cil_tmp13);
3597 }
3598 }
3599 {
3600#line 379
3601 __cil_tmp14 = (char const * __restrict )" IL_p:";
3602#line 379
3603 printf(__cil_tmp14);
3604 }
3605#line 380
3606 if (floorButtons_0) {
3607 {
3608#line 381
3609 __cil_tmp15 = (char const * __restrict )" %i";
3610#line 381
3611 printf(__cil_tmp15, 0);
3612 }
3613 } else {
3614
3615 }
3616#line 381
3617 if (floorButtons_1) {
3618 {
3619#line 382
3620 __cil_tmp16 = (char const * __restrict )" %i";
3621#line 382
3622 printf(__cil_tmp16, 1);
3623 }
3624 } else {
3625
3626 }
3627#line 382
3628 if (floorButtons_2) {
3629 {
3630#line 383
3631 __cil_tmp17 = (char const * __restrict )" %i";
3632#line 383
3633 printf(__cil_tmp17, 2);
3634 }
3635 } else {
3636
3637 }
3638#line 383
3639 if (floorButtons_3) {
3640 {
3641#line 384
3642 __cil_tmp18 = (char const * __restrict )" %i";
3643#line 384
3644 printf(__cil_tmp18, 3);
3645 }
3646 } else {
3647
3648 }
3649#line 384
3650 if (floorButtons_4) {
3651 {
3652#line 385
3653 __cil_tmp19 = (char const * __restrict )" %i";
3654#line 385
3655 printf(__cil_tmp19, 4);
3656 }
3657 } else {
3658
3659 }
3660 {
3661#line 385
3662 __cil_tmp20 = (char const * __restrict )" F_p:";
3663#line 385
3664 printf(__cil_tmp20);
3665#line 386
3666 tmp = isFloorCalling(0);
3667 }
3668#line 386
3669 if (tmp) {
3670 {
3671#line 387
3672 __cil_tmp21 = (char const * __restrict )" %i";
3673#line 387
3674 printf(__cil_tmp21, 0);
3675 }
3676 } else {
3677
3678 }
3679 {
3680#line 387
3681 tmp___0 = isFloorCalling(1);
3682 }
3683#line 387
3684 if (tmp___0) {
3685 {
3686#line 388
3687 __cil_tmp22 = (char const * __restrict )" %i";
3688#line 388
3689 printf(__cil_tmp22, 1);
3690 }
3691 } else {
3692
3693 }
3694 {
3695#line 388
3696 tmp___1 = isFloorCalling(2);
3697 }
3698#line 388
3699 if (tmp___1) {
3700 {
3701#line 389
3702 __cil_tmp23 = (char const * __restrict )" %i";
3703#line 389
3704 printf(__cil_tmp23, 2);
3705 }
3706 } else {
3707
3708 }
3709 {
3710#line 389
3711 tmp___2 = isFloorCalling(3);
3712 }
3713#line 389
3714 if (tmp___2) {
3715 {
3716#line 390
3717 __cil_tmp24 = (char const * __restrict )" %i";
3718#line 390
3719 printf(__cil_tmp24, 3);
3720 }
3721 } else {
3722
3723 }
3724 {
3725#line 390
3726 tmp___3 = isFloorCalling(4);
3727 }
3728#line 390
3729 if (tmp___3) {
3730 {
3731#line 391
3732 __cil_tmp25 = (char const * __restrict )" %i";
3733#line 391
3734 printf(__cil_tmp25, 4);
3735 }
3736 } else {
3737
3738 }
3739 {
3740#line 391
3741 __cil_tmp26 = (char const * __restrict )"\n";
3742#line 391
3743 printf(__cil_tmp26);
3744 }
3745#line 2325 "Elevator.c"
3746 return;
3747}
3748}
3749#line 394 "Elevator.c"
3750void printState(void)
3751{ int tmp ;
3752 char const * __restrict __cil_tmp2 ;
3753
3754 {
3755 {
3756#line 396
3757 tmp = isBlocked();
3758 }
3759#line 396
3760 if (tmp) {
3761 {
3762#line 397
3763 __cil_tmp2 = (char const * __restrict )"Blocked ";
3764#line 397
3765 printf(__cil_tmp2);
3766 }
3767 } else {
3768
3769 }
3770 {
3771#line 396
3772 printState__wrappee__weight();
3773 }
3774#line 2348 "Elevator.c"
3775 return;
3776}
3777}
3778#line 400 "Elevator.c"
3779int existInLiftCallsInDirection(int d )
3780{ int retValue_acc ;
3781 int i ;
3782 int i___0 ;
3783
3784 {
3785#line 421
3786 if (d == 1) {
3787#line 402 "Elevator.c"
3788 i = 0;
3789#line 403
3790 i = currentFloorID + 1;
3791 {
3792#line 403
3793 while (1) {
3794 while_3_continue: ;
3795#line 403
3796 if (i < 5) {
3797
3798 } else {
3799 goto while_3_break;
3800 }
3801#line 409
3802 if (i == 0) {
3803#line 409 "Elevator.c"
3804 if (floorButtons_0) {
3805#line 2376
3806 retValue_acc = 1;
3807#line 2378
3808 return (retValue_acc);
3809 } else {
3810 goto _L___2;
3811 }
3812 } else {
3813 _L___2:
3814#line 2380
3815 if (i == 1) {
3816#line 2380
3817 if (floorButtons_1) {
3818#line 2383
3819 retValue_acc = 1;
3820#line 2385
3821 return (retValue_acc);
3822 } else {
3823 goto _L___1;
3824 }
3825 } else {
3826 _L___1:
3827#line 2387
3828 if (i == 2) {
3829#line 2387
3830 if (floorButtons_2) {
3831#line 2390
3832 retValue_acc = 1;
3833#line 2392
3834 return (retValue_acc);
3835 } else {
3836 goto _L___0;
3837 }
3838 } else {
3839 _L___0:
3840#line 2394
3841 if (i == 3) {
3842#line 2394
3843 if (floorButtons_3) {
3844#line 2397
3845 retValue_acc = 1;
3846#line 2399
3847 return (retValue_acc);
3848 } else {
3849 goto _L;
3850 }
3851 } else {
3852 _L:
3853#line 2401
3854 if (i == 4) {
3855#line 2401
3856 if (floorButtons_4) {
3857#line 2404 "Elevator.c"
3858 retValue_acc = 1;
3859#line 2406
3860 return (retValue_acc);
3861 } else {
3862
3863 }
3864 } else {
3865
3866 }
3867 }
3868 }
3869 }
3870 }
3871#line 403
3872 i = i + 1;
3873 }
3874 while_3_break: ;
3875 }
3876 } else {
3877#line 2408 "Elevator.c"
3878 if (d == 0) {
3879#line 411
3880 i___0 = 0;
3881#line 412
3882 i___0 = currentFloorID - 1;
3883 {
3884#line 412
3885 while (1) {
3886 while_4_continue: ;
3887#line 412
3888 if (i___0 >= 0) {
3889
3890 } else {
3891 goto while_4_break;
3892 }
3893#line 412
3894 i___0 = currentFloorID + 1;
3895 {
3896#line 412
3897 while (1) {
3898 while_5_continue: ;
3899#line 412
3900 if (i___0 < 5) {
3901
3902 } else {
3903 goto while_5_break;
3904 }
3905#line 419
3906 if (i___0 == 0) {
3907#line 419 "Elevator.c"
3908 if (floorButtons_0) {
3909#line 2420
3910 retValue_acc = 1;
3911#line 2422
3912 return (retValue_acc);
3913 } else {
3914 goto _L___6;
3915 }
3916 } else {
3917 _L___6:
3918#line 2424
3919 if (i___0 == 1) {
3920#line 2424
3921 if (floorButtons_1) {
3922#line 2427
3923 retValue_acc = 1;
3924#line 2429
3925 return (retValue_acc);
3926 } else {
3927 goto _L___5;
3928 }
3929 } else {
3930 _L___5:
3931#line 2431
3932 if (i___0 == 2) {
3933#line 2431
3934 if (floorButtons_2) {
3935#line 2434
3936 retValue_acc = 1;
3937#line 2436
3938 return (retValue_acc);
3939 } else {
3940 goto _L___4;
3941 }
3942 } else {
3943 _L___4:
3944#line 2438
3945 if (i___0 == 3) {
3946#line 2438
3947 if (floorButtons_3) {
3948#line 2441
3949 retValue_acc = 1;
3950#line 2443
3951 return (retValue_acc);
3952 } else {
3953 goto _L___3;
3954 }
3955 } else {
3956 _L___3:
3957#line 2445
3958 if (i___0 == 4) {
3959#line 2445
3960 if (floorButtons_4) {
3961#line 2448 "Elevator.c"
3962 retValue_acc = 1;
3963#line 2450
3964 return (retValue_acc);
3965 } else {
3966
3967 }
3968 } else {
3969
3970 }
3971 }
3972 }
3973 }
3974 }
3975#line 412
3976 i___0 = i___0 + 1;
3977 }
3978 while_5_break: ;
3979 }
3980#line 412
3981 i___0 = i___0 - 1;
3982 }
3983 while_4_break: ;
3984 }
3985 } else {
3986
3987 }
3988 }
3989#line 2455 "Elevator.c"
3990 retValue_acc = 0;
3991#line 2457
3992 return (retValue_acc);
3993#line 2464
3994 return (retValue_acc);
3995}
3996}
3997#line 1 "Person.o"
3998#pragma merger(0,"Person.i","")
3999#line 12 "Person.h"
4000int getOrigin(int person ) ;
4001#line 20 "Person.c"
4002int getWeight(int person )
4003{ int retValue_acc ;
4004
4005 {
4006#line 35 "Person.c"
4007 if (person == 0) {
4008#line 974
4009 retValue_acc = 40;
4010#line 976
4011 return (retValue_acc);
4012 } else {
4013#line 978
4014 if (person == 1) {
4015#line 983
4016 retValue_acc = 40;
4017#line 985
4018 return (retValue_acc);
4019 } else {
4020#line 987
4021 if (person == 2) {
4022#line 992
4023 retValue_acc = 40;
4024#line 994
4025 return (retValue_acc);
4026 } else {
4027#line 996
4028 if (person == 3) {
4029#line 1001
4030 retValue_acc = 40;
4031#line 1003
4032 return (retValue_acc);
4033 } else {
4034#line 1005
4035 if (person == 4) {
4036#line 1010
4037 retValue_acc = 30;
4038#line 1012
4039 return (retValue_acc);
4040 } else {
4041#line 1014
4042 if (person == 5) {
4043#line 1019
4044 retValue_acc = 150;
4045#line 1021
4046 return (retValue_acc);
4047 } else {
4048#line 1027 "Person.c"
4049 retValue_acc = 0;
4050#line 1029
4051 return (retValue_acc);
4052 }
4053 }
4054 }
4055 }
4056 }
4057 }
4058#line 1036 "Person.c"
4059 return (retValue_acc);
4060}
4061}
4062#line 39 "Person.c"
4063int getOrigin(int person )
4064{ int retValue_acc ;
4065
4066 {
4067#line 54 "Person.c"
4068 if (person == 0) {
4069#line 1061
4070 retValue_acc = 4;
4071#line 1063
4072 return (retValue_acc);
4073 } else {
4074#line 1065
4075 if (person == 1) {
4076#line 1070
4077 retValue_acc = 3;
4078#line 1072
4079 return (retValue_acc);
4080 } else {
4081#line 1074
4082 if (person == 2) {
4083#line 1079
4084 retValue_acc = 2;
4085#line 1081
4086 return (retValue_acc);
4087 } else {
4088#line 1083
4089 if (person == 3) {
4090#line 1088
4091 retValue_acc = 1;
4092#line 1090
4093 return (retValue_acc);
4094 } else {
4095#line 1092
4096 if (person == 4) {
4097#line 1097
4098 retValue_acc = 0;
4099#line 1099
4100 return (retValue_acc);
4101 } else {
4102#line 1101
4103 if (person == 5) {
4104#line 1106
4105 retValue_acc = 1;
4106#line 1108
4107 return (retValue_acc);
4108 } else {
4109#line 1114 "Person.c"
4110 retValue_acc = 0;
4111#line 1116
4112 return (retValue_acc);
4113 }
4114 }
4115 }
4116 }
4117 }
4118 }
4119#line 1123 "Person.c"
4120 return (retValue_acc);
4121}
4122}
4123#line 57 "Person.c"
4124int getDestination(int person )
4125{ int retValue_acc ;
4126
4127 {
4128#line 72 "Person.c"
4129 if (person == 0) {
4130#line 1148
4131 retValue_acc = 0;
4132#line 1150
4133 return (retValue_acc);
4134 } else {
4135#line 1152
4136 if (person == 1) {
4137#line 1157
4138 retValue_acc = 0;
4139#line 1159
4140 return (retValue_acc);
4141 } else {
4142#line 1161
4143 if (person == 2) {
4144#line 1166
4145 retValue_acc = 1;
4146#line 1168
4147 return (retValue_acc);
4148 } else {
4149#line 1170
4150 if (person == 3) {
4151#line 1175
4152 retValue_acc = 3;
4153#line 1177
4154 return (retValue_acc);
4155 } else {
4156#line 1179
4157 if (person == 4) {
4158#line 1184
4159 retValue_acc = 1;
4160#line 1186
4161 return (retValue_acc);
4162 } else {
4163#line 1188
4164 if (person == 5) {
4165#line 1193
4166 retValue_acc = 3;
4167#line 1195
4168 return (retValue_acc);
4169 } else {
4170#line 1201 "Person.c"
4171 retValue_acc = 0;
4172#line 1203
4173 return (retValue_acc);
4174 }
4175 }
4176 }
4177 }
4178 }
4179 }
4180#line 1210 "Person.c"
4181 return (retValue_acc);
4182}
4183}
4184#line 1 "UnitTests.o"
4185#pragma merger(0,"UnitTests.i","")
4186#line 13 "UnitTests.c"
4187int cleanupTimeShifts = 12;
4188#line 24 "UnitTests.c"
4189void spec1(void)
4190{ int tmp ;
4191 int tmp___0 ;
4192 int i ;
4193 int tmp___1 ;
4194
4195 {
4196 {
4197#line 25
4198 initBottomUp();
4199#line 26
4200 tmp = getOrigin(5);
4201#line 26
4202 initPersonOnFloor(5, tmp);
4203#line 27
4204 printState();
4205#line 30
4206 tmp___0 = getOrigin(2);
4207#line 30
4208 initPersonOnFloor(2, tmp___0);
4209#line 31
4210 printState();
4211#line 35
4212 i = 0;
4213 }
4214 {
4215#line 35
4216 while (1) {
4217 while_6_continue: ;
4218#line 35
4219 if (i < cleanupTimeShifts) {
4220 {
4221#line 35
4222 tmp___1 = isBlocked();
4223 }
4224#line 35
4225 if (tmp___1 != 1) {
4226
4227 } else {
4228 goto while_6_break;
4229 }
4230 } else {
4231 goto while_6_break;
4232 }
4233 {
4234#line 36
4235 timeShift();
4236#line 37
4237 printState();
4238#line 35
4239 i = i + 1;
4240 }
4241 }
4242 while_6_break: ;
4243 }
4244#line 1073 "UnitTests.c"
4245 return;
4246}
4247}
4248#line 42 "UnitTests.c"
4249void spec14(void)
4250{ int tmp ;
4251 int tmp___0 ;
4252 int i ;
4253 int tmp___1 ;
4254
4255 {
4256 {
4257#line 43
4258 initTopDown();
4259#line 44
4260 tmp = getOrigin(5);
4261#line 44
4262 initPersonOnFloor(5, tmp);
4263#line 45
4264 printState();
4265#line 47
4266 timeShift();
4267#line 48
4268 timeShift();
4269#line 49
4270 timeShift();
4271#line 50
4272 timeShift();
4273#line 52
4274 tmp___0 = getOrigin(0);
4275#line 52
4276 initPersonOnFloor(0, tmp___0);
4277#line 53
4278 printState();
4279#line 57
4280 i = 0;
4281 }
4282 {
4283#line 57
4284 while (1) {
4285 while_7_continue: ;
4286#line 57
4287 if (i < cleanupTimeShifts) {
4288 {
4289#line 57
4290 tmp___1 = isBlocked();
4291 }
4292#line 57
4293 if (tmp___1 != 1) {
4294
4295 } else {
4296 goto while_7_break;
4297 }
4298 } else {
4299 goto while_7_break;
4300 }
4301 {
4302#line 58
4303 timeShift();
4304#line 59
4305 printState();
4306#line 57
4307 i = i + 1;
4308 }
4309 }
4310 while_7_break: ;
4311 }
4312#line 1119 "UnitTests.c"
4313 return;
4314}
4315}
4316#line 1 "featureselect.o"
4317#pragma merger(0,"featureselect.i","")
4318#line 9 "featureselect.h"
4319int select_one(void) ;
4320#line 11
4321void select_features(void) ;
4322#line 13
4323void select_helpers(void) ;
4324#line 15
4325int valid_product(void) ;
4326#line 8 "featureselect.c"
4327int select_one(void)
4328{ int retValue_acc ;
4329 int choice = __VERIFIER_nondet_int();
4330
4331 {
4332#line 63 "featureselect.c"
4333 retValue_acc = choice;
4334#line 65
4335 return (retValue_acc);
4336#line 72
4337 return (retValue_acc);
4338}
4339}
4340#line 14 "featureselect.c"
4341void select_features(void)
4342{
4343
4344 {
4345#line 94 "featureselect.c"
4346 return;
4347}
4348}
4349#line 20 "featureselect.c"
4350void select_helpers(void)
4351{
4352
4353 {
4354#line 112 "featureselect.c"
4355 return;
4356}
4357}
4358#line 25 "featureselect.c"
4359int valid_product(void)
4360{ int retValue_acc ;
4361
4362 {
4363#line 130 "featureselect.c"
4364 retValue_acc = 1;
4365#line 132
4366 return (retValue_acc);
4367#line 139
4368 return (retValue_acc);
4369}
4370}
4371#line 1 "scenario.o"
4372#pragma merger(0,"scenario.i","")
4373#line 2 "scenario.c"
4374void bigMacCall(void) ;
4375#line 3
4376void angelinaCall(void) ;
4377#line 4
4378void cleanup(void) ;
4379#line 1 "scenario.c"
4380void test(void)
4381{
4382
4383 {
4384 {
4385#line 2
4386 bigMacCall();
4387#line 3
4388 angelinaCall();
4389#line 4
4390 cleanup();
4391 }
4392#line 55 "scenario.c"
4393 return;
4394}
4395}
4396#line 1 "Test.o"
4397#pragma merger(0,"Test.i","")
4398#line 544 "/usr/include/stdlib.h"
4399extern __attribute__((__nothrow__, __noreturn__)) void exit(int __status ) ;
4400#line 17 "Test.c"
4401#line 23 "Test.c"
4402int get_nondetMinMax07(void)
4403{ int retValue_acc ;
4404 int nd ;
4405 nd = __VERIFIER_nondet_int();
4406
4407 {
4408#line 26 "Test.c"
4409 if (nd == 0) {
4410#line 1108
4411 retValue_acc = 0;
4412#line 1110
4413 return (retValue_acc);
4414 } else {
4415#line 1112
4416 if (nd == 1) {
4417#line 1117
4418 retValue_acc = 1;
4419#line 1119
4420 return (retValue_acc);
4421 } else {
4422#line 1121
4423 if (nd == 2) {
4424#line 1126
4425 retValue_acc = 2;
4426#line 1128
4427 return (retValue_acc);
4428 } else {
4429#line 1130
4430 if (nd == 3) {
4431#line 1135
4432 retValue_acc = 3;
4433#line 1137
4434 return (retValue_acc);
4435 } else {
4436#line 1139
4437 if (nd == 4) {
4438#line 1144
4439 retValue_acc = 4;
4440#line 1146
4441 return (retValue_acc);
4442 } else {
4443#line 1148
4444 if (nd == 5) {
4445#line 1153
4446 retValue_acc = 5;
4447#line 1155
4448 return (retValue_acc);
4449 } else {
4450#line 1157
4451 if (nd == 6) {
4452#line 1162
4453 retValue_acc = 6;
4454#line 1164
4455 return (retValue_acc);
4456 } else {
4457#line 1166
4458 if (nd == 7) {
4459#line 1171 "Test.c"
4460 retValue_acc = 7;
4461#line 1173
4462 return (retValue_acc);
4463 } else {
4464 {
4465#line 43
4466 exit(0);
4467 }
4468 }
4469 }
4470 }
4471 }
4472 }
4473 }
4474 }
4475 }
4476#line 1183 "Test.c"
4477 return (retValue_acc);
4478}
4479}
4480#line 48 "Test.c"
4481void bobCall(void)
4482{ int tmp ;
4483
4484 {
4485 {
4486#line 48
4487 tmp = getOrigin(0);
4488#line 48
4489 initPersonOnFloor(0, tmp);
4490 }
4491#line 1207 "Test.c"
4492 return;
4493}
4494}
4495#line 50 "Test.c"
4496void aliceCall(void)
4497{ int tmp ;
4498
4499 {
4500 {
4501#line 50
4502 tmp = getOrigin(1);
4503#line 50
4504 initPersonOnFloor(1, tmp);
4505 }
4506#line 1227 "Test.c"
4507 return;
4508}
4509}
4510#line 52 "Test.c"
4511void angelinaCall(void)
4512{ int tmp ;
4513
4514 {
4515 {
4516#line 52
4517 tmp = getOrigin(2);
4518#line 52
4519 initPersonOnFloor(2, tmp);
4520 }
4521#line 1247 "Test.c"
4522 return;
4523}
4524}
4525#line 54 "Test.c"
4526void chuckCall(void)
4527{ int tmp ;
4528
4529 {
4530 {
4531#line 54
4532 tmp = getOrigin(3);
4533#line 54
4534 initPersonOnFloor(3, tmp);
4535 }
4536#line 1267 "Test.c"
4537 return;
4538}
4539}
4540#line 56 "Test.c"
4541void monicaCall(void)
4542{ int tmp ;
4543
4544 {
4545 {
4546#line 56
4547 tmp = getOrigin(4);
4548#line 56
4549 initPersonOnFloor(4, tmp);
4550 }
4551#line 1287 "Test.c"
4552 return;
4553}
4554}
4555#line 58 "Test.c"
4556void bigMacCall(void)
4557{ int tmp ;
4558
4559 {
4560 {
4561#line 58
4562 tmp = getOrigin(5);
4563#line 58
4564 initPersonOnFloor(5, tmp);
4565 }
4566#line 1307 "Test.c"
4567 return;
4568}
4569}
4570#line 60 "Test.c"
4571void threeTS(void)
4572{
4573
4574 {
4575 {
4576#line 60
4577 timeShift();
4578#line 60
4579 timeShift();
4580#line 60
4581 timeShift();
4582 }
4583#line 1331 "Test.c"
4584 return;
4585}
4586}
4587#line 62 "Test.c"
4588void cleanup(void)
4589{ int i ;
4590 int tmp ;
4591 int tmp___0 ;
4592 int __cil_tmp4 ;
4593
4594 {
4595 {
4596#line 65
4597 timeShift();
4598#line 67
4599 i = 0;
4600 }
4601 {
4602#line 67
4603 while (1) {
4604 while_8_continue: ;
4605 {
4606#line 67
4607 __cil_tmp4 = cleanupTimeShifts - 1;
4608#line 67
4609 if (i < __cil_tmp4) {
4610 {
4611#line 67
4612 tmp___0 = isBlocked();
4613 }
4614#line 67
4615 if (tmp___0 != 1) {
4616
4617 } else {
4618 goto while_8_break;
4619 }
4620 } else {
4621 goto while_8_break;
4622 }
4623 }
4624 {
4625#line 71
4626 tmp = isIdle();
4627 }
4628#line 71
4629 if (tmp) {
4630#line 72
4631 return;
4632 } else {
4633 {
4634#line 74
4635 timeShift();
4636 }
4637 }
4638#line 67
4639 i = i + 1;
4640 }
4641 while_8_break: ;
4642 }
4643#line 1362 "Test.c"
4644 return;
4645}
4646}
4647#line 77 "Test.c"
4648void randomSequenceOfActions(void)
4649{ int maxLength ;
4650 int tmp ;
4651 int counter ;
4652 int action ;
4653 int tmp___0 ;
4654 int origin ;
4655 int tmp___1 ;
4656 int tmp___2 ;
4657
4658 {
4659 {
4660#line 78
4661 maxLength = 4;
4662#line 79
4663 tmp = __VERIFIER_nondet_int();
4664 }
4665#line 79
4666 if (tmp) {
4667 {
4668#line 81
4669 initTopDown();
4670 }
4671 } else {
4672 {
4673#line 85
4674 initBottomUp();
4675 }
4676 }
4677#line 90
4678 counter = 0;
4679 {
4680#line 91
4681 while (1) {
4682 while_9_continue: ;
4683#line 91
4684 if (counter < maxLength) {
4685
4686 } else {
4687 goto while_9_break;
4688 }
4689 {
4690#line 92
4691 counter = counter + 1;
4692#line 93
4693 tmp___0 = get_nondetMinMax07();
4694#line 93
4695 action = tmp___0;
4696 }
4697#line 99
4698 if (action < 6) {
4699 {
4700#line 100
4701 tmp___1 = getOrigin(action);
4702#line 100
4703 origin = tmp___1;
4704#line 101
4705 initPersonOnFloor(action, origin);
4706 }
4707 } else {
4708#line 102
4709 if (action == 6) {
4710 {
4711#line 103
4712 timeShift();
4713 }
4714 } else {
4715#line 104
4716 if (action == 7) {
4717 {
4718#line 106
4719 timeShift();
4720#line 107
4721 timeShift();
4722#line 108
4723 timeShift();
4724 }
4725 } else {
4726
4727 }
4728 }
4729 }
4730 {
4731#line 113
4732 tmp___2 = isBlocked();
4733 }
4734#line 113
4735 if (tmp___2) {
4736#line 114
4737 return;
4738 } else {
4739
4740 }
4741 }
4742 while_9_break: ;
4743 }
4744 {
4745#line 117
4746 cleanup();
4747 }
4748#line 1433 "Test.c"
4749 return;
4750}
4751}
4752#line 122 "Test.c"
4753void runTest_Simple(void)
4754{
4755
4756 {
4757 {
4758#line 123
4759 bigMacCall();
4760#line 124
4761 angelinaCall();
4762#line 125
4763 cleanup();
4764 }
4765#line 1457 "Test.c"
4766 return;
4767}
4768}
4769#line 130 "Test.c"
4770void Specification1(void)
4771{
4772
4773 {
4774 {
4775#line 131
4776 bigMacCall();
4777#line 132
4778 angelinaCall();
4779#line 133
4780 cleanup();
4781 }
4782#line 1481 "Test.c"
4783 return;
4784}
4785}
4786#line 137 "Test.c"
4787void Specification2(void)
4788{
4789
4790 {
4791 {
4792#line 138
4793 bigMacCall();
4794#line 139
4795 cleanup();
4796 }
4797#line 1503 "Test.c"
4798 return;
4799}
4800}
4801#line 142 "Test.c"
4802void Specification3(void)
4803{
4804
4805 {
4806 {
4807#line 143
4808 bobCall();
4809#line 144
4810 timeShift();
4811#line 145
4812 timeShift();
4813#line 146
4814 timeShift();
4815#line 147
4816 timeShift();
4817#line 149
4818 timeShift();
4819#line 154
4820 bobCall();
4821#line 155
4822 cleanup();
4823 }
4824#line 1537 "Test.c"
4825 return;
4826}
4827}
4828#line 160 "Test.c"
4829void setup(void)
4830{
4831
4832 {
4833#line 1555 "Test.c"
4834 return;
4835}
4836}
4837#line 165 "Test.c"
4838void runTest(void)
4839{
4840
4841 {
4842 {
4843#line 1571 "Test.c"
4844 __utac_acc__Specification1_spec__1();
4845#line 168 "Test.c"
4846 test();
4847#line 1585 "Test.c"
4848 __utac_acc__Specification1_spec__4();
4849 }
4850#line 1591
4851 return;
4852}
4853}
4854#line 173 "Test.c"
4855int main(void)
4856{ int retValue_acc ;
4857 int tmp ;
4858
4859 {
4860 {
4861#line 174
4862 select_helpers();
4863#line 175
4864 select_features();
4865#line 176
4866 tmp = valid_product();
4867 }
4868#line 176
4869 if (tmp) {
4870 {
4871#line 177
4872 setup();
4873#line 178
4874 runTest();
4875 }
4876 } else {
4877
4878 }
4879#line 1620 "Test.c"
4880 retValue_acc = 0;
4881#line 1622
4882 return (retValue_acc);
4883#line 1629
4884 return (retValue_acc);
4885}
4886}