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