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