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