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