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