1extern int __VERIFIER_nondet_int(void);
2extern int printf (__const char *__restrict __format, ...);
3
4
5
6#line 2 "libacc.c"
7struct JoinPoint {
8 void **(*fp)(struct JoinPoint * ) ;
9 void **args ;
10 int argsCount ;
11 char const **argsType ;
12 void *(*arg)(int , struct JoinPoint * ) ;
13 char const *(*argType)(int , struct JoinPoint * ) ;
14 void **retValue ;
15 char const *retType ;
16 char const *funcName ;
17 char const *targetName ;
18 char const *fileName ;
19 char const *kind ;
20 void *excep_return ;
21};
22#line 18 "libacc.c"
23struct __UTAC__CFLOW_FUNC {
24 int (*func)(int , int ) ;
25 int val ;
26 struct __UTAC__CFLOW_FUNC *next ;
27};
28#line 18 "libacc.c"
29struct __UTAC__EXCEPTION {
30 void *jumpbuf ;
31 unsigned long long prtValue ;
32 int pops ;
33 struct __UTAC__CFLOW_FUNC *cflowfuncs ;
34};
35#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
36typedef unsigned long size_t;
37#line 76 "libacc.c"
38struct __ACC__ERR {
39 void *v ;
40 struct __ACC__ERR *next ;
41};
42#line 1 "Test.o"
43#pragma merger(0,"Test.i","")
44#line 8 "Test.c"
45int cleanupTimeShifts = 4;
46#line 11 "Test.c"
47#line 20 "Test.c"
48void timeShift(void) ;
49#line 17 "Test.c"
50void cleanup(void)
51{ int i ;
52 int __cil_tmp2 ;
53
54 {
55 {
56#line 20
57 timeShift();
58#line 22
59 i = 0;
60 }
61 {
62#line 22
63 while (1) {
64 while_0_continue: ;
65 {
66#line 22
67 __cil_tmp2 = cleanupTimeShifts - 1;
68#line 22
69 if (i < __cil_tmp2) {
70
71 } else {
72 goto while_0_break;
73 }
74 }
75 {
76#line 23
77 timeShift();
78#line 22
79 i = i + 1;
80 }
81 }
82 while_0_break: ;
83 }
84#line 1111 "Test.c"
85 return;
86}
87}
88#line 57 "Test.c"
89void printPump(void) ;
90#line 60
91void waterRise(void) ;
92#line 62
93void changeMethaneLevel(void) ;
94#line 56 "Test.c"
95void Specification2(void)
96{
97
98 {
99 {
100#line 57
101 timeShift();
102#line 57
103 printPump();
104#line 58
105 timeShift();
106#line 58
107 printPump();
108#line 59
109 timeShift();
110#line 59
111 printPump();
112#line 60
113 waterRise();
114#line 60
115 printPump();
116#line 61
117 timeShift();
118#line 61
119 printPump();
120#line 62
121 changeMethaneLevel();
122#line 62
123 printPump();
124#line 63
125 timeShift();
126#line 63
127 printPump();
128#line 64
129 cleanup();
130 }
131#line 1159 "Test.c"
132 return;
133}
134}
135#line 67 "Test.c"
136void setup(void)
137{
138
139 {
140#line 1177 "Test.c"
141 return;
142}
143}
144#line 77 "Test.c"
145void test(void) ;
146#line 74 "Test.c"
147void runTest(void)
148{
149
150 {
151 {
152#line 77
153 test();
154 }
155#line 1197 "Test.c"
156 return;
157}
158}
159#line 83 "Test.c"
160void select_helpers(void) ;
161#line 84
162void select_features(void) ;
163#line 85
164int valid_product(void) ;
165#line 82 "Test.c"
166int main(void)
167{ int retValue_acc ;
168 int tmp ;
169
170 {
171 {
172#line 83
173 select_helpers();
174#line 84
175 select_features();
176#line 85
177 tmp = valid_product();
178 }
179#line 85
180 if (tmp) {
181 {
182#line 86
183 setup();
184#line 87
185 runTest();
186 }
187 } else {
188
189 }
190#line 1226 "Test.c"
191 retValue_acc = 0;
192#line 1228
193 return (retValue_acc);
194#line 1235
195 return (retValue_acc);
196}
197}
198#line 1 "Environment.o"
199#pragma merger(0,"Environment.i","")
200#line 4 "Environment.h"
201void lowerWaterLevel(void) ;
202#line 10
203int isMethaneLevelCritical(void) ;
204#line 12
205int getWaterLevel(void) ;
206#line 15
207void printEnvironment(void) ;
208#line 16
209int isLowWaterSensorDry(void) ;
210#line 9 "Environment.c"
211int waterLevel = 1;
212#line 12 "Environment.c"
213int methaneLevelCritical = 0;
214#line 15 "Environment.c"
215void lowerWaterLevel(void)
216{
217
218 {
219#line 19
220 if (waterLevel > 0) {
221#line 17
222 waterLevel = waterLevel - 1;
223 } else {
224
225 }
226#line 83 "Environment.c"
227 return;
228}
229}
230#line 22 "Environment.c"
231void waterRise(void)
232{
233
234 {
235#line 26
236 if (waterLevel < 2) {
237#line 24
238 waterLevel = waterLevel + 1;
239 } else {
240
241 }
242#line 106 "Environment.c"
243 return;
244}
245}
246#line 29 "Environment.c"
247void changeMethaneLevel(void)
248{
249
250 {
251#line 34
252 if (methaneLevelCritical) {
253#line 31
254 methaneLevelCritical = 0;
255 } else {
256#line 33
257 methaneLevelCritical = 1;
258 }
259#line 132 "Environment.c"
260 return;
261}
262}
263#line 38 "Environment.c"
264int isMethaneLevelCritical(void)
265{ int retValue_acc ;
266
267 {
268#line 150 "Environment.c"
269 retValue_acc = methaneLevelCritical;
270#line 152
271 return (retValue_acc);
272#line 159
273 return (retValue_acc);
274}
275}
276#line 45 "Environment.c"
277#line 44 "Environment.c"
278void printEnvironment(void)
279{
280
281 {
282 {
283#line 45
284 printf("Env(Water:%i", waterLevel);
285#line 46
286 printf(",Meth:");
287 }
288#line 47
289 if (methaneLevelCritical) {
290 {
291#line 48
292 printf("CRIT");
293 }
294 } else {
295 {
296#line 49
297 printf("OK");
298 }
299 }
300 {
301#line 51
302 printf(")");
303 }
304#line 191 "Environment.c"
305 return;
306}
307}
308#line 55 "Environment.c"
309int getWaterLevel(void)
310{ int retValue_acc ;
311
312 {
313#line 209 "Environment.c"
314 retValue_acc = waterLevel;
315#line 211
316 return (retValue_acc);
317#line 218
318 return (retValue_acc);
319}
320}
321#line 58 "Environment.c"
322int isLowWaterSensorDry(void)
323{ int retValue_acc ;
324
325 {
326#line 240 "Environment.c"
327 retValue_acc = waterLevel == 0;
328#line 242
329 return (retValue_acc);
330#line 249
331 return (retValue_acc);
332}
333}
334#line 1 "libacc.o"
335#pragma merger(0,"libacc.i","")
336#line 73 "/usr/include/assert.h"
337extern __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const *__assertion ,
338 char const *__file ,
339 unsigned int __line ,
340 char const *__function ) ;
341#line 471 "/usr/include/stdlib.h"
342extern __attribute__((__nothrow__)) void *malloc(size_t __size ) __attribute__((__malloc__)) ;
343#line 488
344extern __attribute__((__nothrow__)) void free(void *__ptr ) ;
345#line 32 "libacc.c"
346void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int ,
347 int ) ,
348 int val )
349{ struct __UTAC__EXCEPTION *excep ;
350 struct __UTAC__CFLOW_FUNC *cf ;
351 void *tmp ;
352 unsigned long __cil_tmp7 ;
353 unsigned long __cil_tmp8 ;
354 unsigned long __cil_tmp9 ;
355 unsigned long __cil_tmp10 ;
356 unsigned long __cil_tmp11 ;
357 unsigned long __cil_tmp12 ;
358 unsigned long __cil_tmp13 ;
359 unsigned long __cil_tmp14 ;
360 int (**mem_15)(int , int ) ;
361 int *mem_16 ;
362 struct __UTAC__CFLOW_FUNC **mem_17 ;
363 struct __UTAC__CFLOW_FUNC **mem_18 ;
364 struct __UTAC__CFLOW_FUNC **mem_19 ;
365
366 {
367 {
368#line 33
369 excep = (struct __UTAC__EXCEPTION *)exception;
370#line 34
371 tmp = malloc(24UL);
372#line 34
373 cf = (struct __UTAC__CFLOW_FUNC *)tmp;
374#line 36
375 mem_15 = (int (**)(int , int ))cf;
376#line 36
377 *mem_15 = cflow_func;
378#line 37
379 __cil_tmp7 = (unsigned long )cf;
380#line 37
381 __cil_tmp8 = __cil_tmp7 + 8;
382#line 37
383 mem_16 = (int *)__cil_tmp8;
384#line 37
385 *mem_16 = val;
386#line 38
387 __cil_tmp9 = (unsigned long )cf;
388#line 38
389 __cil_tmp10 = __cil_tmp9 + 16;
390#line 38
391 __cil_tmp11 = (unsigned long )excep;
392#line 38
393 __cil_tmp12 = __cil_tmp11 + 24;
394#line 38
395 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
396#line 38
397 mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
398#line 38
399 *mem_17 = *mem_18;
400#line 39
401 __cil_tmp13 = (unsigned long )excep;
402#line 39
403 __cil_tmp14 = __cil_tmp13 + 24;
404#line 39
405 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
406#line 39
407 *mem_19 = cf;
408 }
409#line 654 "libacc.c"
410 return;
411}
412}
413#line 44 "libacc.c"
414void __utac__exception__cf_handler_free(void *exception )
415{ struct __UTAC__EXCEPTION *excep ;
416 struct __UTAC__CFLOW_FUNC *cf ;
417 struct __UTAC__CFLOW_FUNC *tmp ;
418 unsigned long __cil_tmp5 ;
419 unsigned long __cil_tmp6 ;
420 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
421 unsigned long __cil_tmp8 ;
422 unsigned long __cil_tmp9 ;
423 unsigned long __cil_tmp10 ;
424 unsigned long __cil_tmp11 ;
425 void *__cil_tmp12 ;
426 unsigned long __cil_tmp13 ;
427 unsigned long __cil_tmp14 ;
428 struct __UTAC__CFLOW_FUNC **mem_15 ;
429 struct __UTAC__CFLOW_FUNC **mem_16 ;
430 struct __UTAC__CFLOW_FUNC **mem_17 ;
431
432 {
433#line 45
434 excep = (struct __UTAC__EXCEPTION *)exception;
435#line 46
436 __cil_tmp5 = (unsigned long )excep;
437#line 46
438 __cil_tmp6 = __cil_tmp5 + 24;
439#line 46
440 mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
441#line 46
442 cf = *mem_15;
443 {
444#line 49
445 while (1) {
446 while_1_continue: ;
447 {
448#line 49
449 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
450#line 49
451 __cil_tmp8 = (unsigned long )__cil_tmp7;
452#line 49
453 __cil_tmp9 = (unsigned long )cf;
454#line 49
455 if (__cil_tmp9 != __cil_tmp8) {
456
457 } else {
458 goto while_1_break;
459 }
460 }
461 {
462#line 50
463 tmp = cf;
464#line 51
465 __cil_tmp10 = (unsigned long )cf;
466#line 51
467 __cil_tmp11 = __cil_tmp10 + 16;
468#line 51
469 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
470#line 51
471 cf = *mem_16;
472#line 52
473 __cil_tmp12 = (void *)tmp;
474#line 52
475 free(__cil_tmp12);
476 }
477 }
478 while_1_break: ;
479 }
480#line 55
481 __cil_tmp13 = (unsigned long )excep;
482#line 55
483 __cil_tmp14 = __cil_tmp13 + 24;
484#line 55
485 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
486#line 55
487 *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
488#line 694 "libacc.c"
489 return;
490}
491}
492#line 59 "libacc.c"
493void __utac__exception__cf_handler_reset(void *exception )
494{ struct __UTAC__EXCEPTION *excep ;
495 struct __UTAC__CFLOW_FUNC *cf ;
496 unsigned long __cil_tmp5 ;
497 unsigned long __cil_tmp6 ;
498 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
499 unsigned long __cil_tmp8 ;
500 unsigned long __cil_tmp9 ;
501 int (*__cil_tmp10)(int , int ) ;
502 unsigned long __cil_tmp11 ;
503 unsigned long __cil_tmp12 ;
504 int __cil_tmp13 ;
505 unsigned long __cil_tmp14 ;
506 unsigned long __cil_tmp15 ;
507 struct __UTAC__CFLOW_FUNC **mem_16 ;
508 int (**mem_17)(int , int ) ;
509 int *mem_18 ;
510 struct __UTAC__CFLOW_FUNC **mem_19 ;
511
512 {
513#line 60
514 excep = (struct __UTAC__EXCEPTION *)exception;
515#line 61
516 __cil_tmp5 = (unsigned long )excep;
517#line 61
518 __cil_tmp6 = __cil_tmp5 + 24;
519#line 61
520 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
521#line 61
522 cf = *mem_16;
523 {
524#line 64
525 while (1) {
526 while_2_continue: ;
527 {
528#line 64
529 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
530#line 64
531 __cil_tmp8 = (unsigned long )__cil_tmp7;
532#line 64
533 __cil_tmp9 = (unsigned long )cf;
534#line 64
535 if (__cil_tmp9 != __cil_tmp8) {
536
537 } else {
538 goto while_2_break;
539 }
540 }
541 {
542#line 65
543 mem_17 = (int (**)(int , int ))cf;
544#line 65
545 __cil_tmp10 = *mem_17;
546#line 65
547 __cil_tmp11 = (unsigned long )cf;
548#line 65
549 __cil_tmp12 = __cil_tmp11 + 8;
550#line 65
551 mem_18 = (int *)__cil_tmp12;
552#line 65
553 __cil_tmp13 = *mem_18;
554#line 65
555 (*__cil_tmp10)(4, __cil_tmp13);
556#line 66
557 __cil_tmp14 = (unsigned long )cf;
558#line 66
559 __cil_tmp15 = __cil_tmp14 + 16;
560#line 66
561 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
562#line 66
563 cf = *mem_19;
564 }
565 }
566 while_2_break: ;
567 }
568 {
569#line 69
570 __utac__exception__cf_handler_free(exception);
571 }
572#line 732 "libacc.c"
573 return;
574}
575}
576#line 80 "libacc.c"
577void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
578#line 80 "libacc.c"
579static struct __ACC__ERR *head = (struct __ACC__ERR *)0;
580#line 79 "libacc.c"
581void *__utac__error_stack_mgt(void *env , int mode , int count )
582{ void *retValue_acc ;
583 struct __ACC__ERR *new ;
584 void *tmp ;
585 struct __ACC__ERR *temp ;
586 struct __ACC__ERR *next ;
587 void *excep ;
588 unsigned long __cil_tmp10 ;
589 unsigned long __cil_tmp11 ;
590 unsigned long __cil_tmp12 ;
591 unsigned long __cil_tmp13 ;
592 void *__cil_tmp14 ;
593 unsigned long __cil_tmp15 ;
594 unsigned long __cil_tmp16 ;
595 void *__cil_tmp17 ;
596 void **mem_18 ;
597 struct __ACC__ERR **mem_19 ;
598 struct __ACC__ERR **mem_20 ;
599 void **mem_21 ;
600 struct __ACC__ERR **mem_22 ;
601 void **mem_23 ;
602 void **mem_24 ;
603
604 {
605#line 82 "libacc.c"
606 if (count == 0) {
607#line 758 "libacc.c"
608 return (retValue_acc);
609 } else {
610
611 }
612#line 86 "libacc.c"
613 if (mode == 0) {
614 {
615#line 87
616 tmp = malloc(16UL);
617#line 87
618 new = (struct __ACC__ERR *)tmp;
619#line 88
620 mem_18 = (void **)new;
621#line 88
622 *mem_18 = env;
623#line 89
624 __cil_tmp10 = (unsigned long )new;
625#line 89
626 __cil_tmp11 = __cil_tmp10 + 8;
627#line 89
628 mem_19 = (struct __ACC__ERR **)__cil_tmp11;
629#line 89
630 *mem_19 = head;
631#line 90
632 head = new;
633#line 776 "libacc.c"
634 retValue_acc = (void *)new;
635 }
636#line 778
637 return (retValue_acc);
638 } else {
639
640 }
641#line 94 "libacc.c"
642 if (mode == 1) {
643#line 95
644 temp = head;
645 {
646#line 98
647 while (1) {
648 while_3_continue: ;
649#line 98
650 if (count > 1) {
651
652 } else {
653 goto while_3_break;
654 }
655 {
656#line 99
657 __cil_tmp12 = (unsigned long )temp;
658#line 99
659 __cil_tmp13 = __cil_tmp12 + 8;
660#line 99
661 mem_20 = (struct __ACC__ERR **)__cil_tmp13;
662#line 99
663 next = *mem_20;
664#line 100
665 mem_21 = (void **)temp;
666#line 100
667 excep = *mem_21;
668#line 101
669 __cil_tmp14 = (void *)temp;
670#line 101
671 free(__cil_tmp14);
672#line 102
673 __utac__exception__cf_handler_reset(excep);
674#line 103
675 temp = next;
676#line 104
677 count = count - 1;
678 }
679 }
680 while_3_break: ;
681 }
682 {
683#line 107
684 __cil_tmp15 = (unsigned long )temp;
685#line 107
686 __cil_tmp16 = __cil_tmp15 + 8;
687#line 107
688 mem_22 = (struct __ACC__ERR **)__cil_tmp16;
689#line 107
690 head = *mem_22;
691#line 108
692 mem_23 = (void **)temp;
693#line 108
694 excep = *mem_23;
695#line 109
696 __cil_tmp17 = (void *)temp;
697#line 109
698 free(__cil_tmp17);
699#line 110
700 __utac__exception__cf_handler_reset(excep);
701#line 820 "libacc.c"
702 retValue_acc = excep;
703 }
704#line 822
705 return (retValue_acc);
706 } else {
707
708 }
709#line 114
710 if (mode == 2) {
711#line 118 "libacc.c"
712 if (head) {
713#line 831
714 mem_24 = (void **)head;
715#line 831
716 retValue_acc = *mem_24;
717#line 833
718 return (retValue_acc);
719 } else {
720#line 837 "libacc.c"
721 retValue_acc = (void *)0;
722#line 839
723 return (retValue_acc);
724 }
725 } else {
726
727 }
728#line 846 "libacc.c"
729 return (retValue_acc);
730}
731}
732#line 122 "libacc.c"
733void *__utac__get_this_arg(int i , struct JoinPoint *this )
734{ void *retValue_acc ;
735 unsigned long __cil_tmp4 ;
736 unsigned long __cil_tmp5 ;
737 int __cil_tmp6 ;
738 int __cil_tmp7 ;
739 unsigned long __cil_tmp8 ;
740 unsigned long __cil_tmp9 ;
741 void **__cil_tmp10 ;
742 void **__cil_tmp11 ;
743 int *mem_12 ;
744 void ***mem_13 ;
745
746 {
747#line 123
748 if (i > 0) {
749 {
750#line 123
751 __cil_tmp4 = (unsigned long )this;
752#line 123
753 __cil_tmp5 = __cil_tmp4 + 16;
754#line 123
755 mem_12 = (int *)__cil_tmp5;
756#line 123
757 __cil_tmp6 = *mem_12;
758#line 123
759 if (i <= __cil_tmp6) {
760
761 } else {
762 {
763#line 123
764 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
765 123U, "__utac__get_this_arg");
766 }
767 }
768 }
769 } else {
770 {
771#line 123
772 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
773 123U, "__utac__get_this_arg");
774 }
775 }
776#line 870 "libacc.c"
777 __cil_tmp7 = i - 1;
778#line 870
779 __cil_tmp8 = (unsigned long )this;
780#line 870
781 __cil_tmp9 = __cil_tmp8 + 8;
782#line 870
783 mem_13 = (void ***)__cil_tmp9;
784#line 870
785 __cil_tmp10 = *mem_13;
786#line 870
787 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
788#line 870
789 retValue_acc = *__cil_tmp11;
790#line 872
791 return (retValue_acc);
792#line 879
793 return (retValue_acc);
794}
795}
796#line 129 "libacc.c"
797char const *__utac__get_this_argtype(int i , struct JoinPoint *this )
798{ char const *retValue_acc ;
799 unsigned long __cil_tmp4 ;
800 unsigned long __cil_tmp5 ;
801 int __cil_tmp6 ;
802 int __cil_tmp7 ;
803 unsigned long __cil_tmp8 ;
804 unsigned long __cil_tmp9 ;
805 char const **__cil_tmp10 ;
806 char const **__cil_tmp11 ;
807 int *mem_12 ;
808 char const ***mem_13 ;
809
810 {
811#line 131
812 if (i > 0) {
813 {
814#line 131
815 __cil_tmp4 = (unsigned long )this;
816#line 131
817 __cil_tmp5 = __cil_tmp4 + 16;
818#line 131
819 mem_12 = (int *)__cil_tmp5;
820#line 131
821 __cil_tmp6 = *mem_12;
822#line 131
823 if (i <= __cil_tmp6) {
824
825 } else {
826 {
827#line 131
828 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
829 131U, "__utac__get_this_argtype");
830 }
831 }
832 }
833 } else {
834 {
835#line 131
836 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
837 131U, "__utac__get_this_argtype");
838 }
839 }
840#line 903 "libacc.c"
841 __cil_tmp7 = i - 1;
842#line 903
843 __cil_tmp8 = (unsigned long )this;
844#line 903
845 __cil_tmp9 = __cil_tmp8 + 24;
846#line 903
847 mem_13 = (char const ***)__cil_tmp9;
848#line 903
849 __cil_tmp10 = *mem_13;
850#line 903
851 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
852#line 903
853 retValue_acc = *__cil_tmp11;
854#line 905
855 return (retValue_acc);
856#line 912
857 return (retValue_acc);
858}
859}
860#line 1 "MinePump.o"
861#pragma merger(0,"MinePump.i","")
862#line 6 "MinePump.h"
863void activatePump(void) ;
864#line 8
865void deactivatePump(void) ;
866#line 10
867int isPumpRunning(void) ;
868#line 14
869void startSystem(void) ;
870#line 7 "MinePump.c"
871int pumpRunning = 0;
872#line 9 "MinePump.c"
873int systemActive = 1;
874#line 10
875void __utac_acc__Specification3_spec__1(void) ;
876#line 16
877void processEnvironment(void) ;
878#line 12 "MinePump.c"
879void timeShift(void)
880{
881
882 {
883#line 15
884 if (pumpRunning) {
885 {
886#line 16
887 lowerWaterLevel();
888 }
889 } else {
890
891 }
892#line 15
893 if (systemActive) {
894 {
895#line 16
896 processEnvironment();
897 }
898 } else {
899
900 }
901 {
902#line 99 "MinePump.c"
903 __utac_acc__Specification3_spec__1();
904 }
905#line 105
906 return;
907}
908}
909#line 19 "MinePump.c"
910void processEnvironment__wrappee__base(void)
911{
912
913 {
914#line 123 "MinePump.c"
915 return;
916}
917}
918#line 28 "MinePump.c"
919int isLowWaterLevel(void) ;
920#line 23 "MinePump.c"
921void processEnvironment(void)
922{ int tmp ;
923
924 {
925#line 28
926 if (pumpRunning) {
927 {
928#line 28
929 tmp = isLowWaterLevel();
930 }
931#line 28
932 if (tmp) {
933 {
934#line 25
935 deactivatePump();
936 }
937 } else {
938 {
939#line 27
940 processEnvironment__wrappee__base();
941 }
942 }
943 } else {
944 {
945#line 27
946 processEnvironment__wrappee__base();
947 }
948 }
949#line 149 "MinePump.c"
950 return;
951}
952}
953#line 32 "MinePump.c"
954void activatePump(void)
955{
956
957 {
958#line 33
959 pumpRunning = 1;
960#line 169 "MinePump.c"
961 return;
962}
963}
964#line 37 "MinePump.c"
965void deactivatePump(void)
966{
967
968 {
969#line 38
970 pumpRunning = 0;
971#line 189 "MinePump.c"
972 return;
973}
974}
975#line 42 "MinePump.c"
976int isMethaneAlarm(void)
977{ int retValue_acc ;
978
979 {
980 {
981#line 207 "MinePump.c"
982 retValue_acc = isMethaneLevelCritical();
983 }
984#line 209
985 return (retValue_acc);
986#line 216
987 return (retValue_acc);
988}
989}
990#line 47 "MinePump.c"
991int isPumpRunning(void)
992{ int retValue_acc ;
993
994 {
995#line 238 "MinePump.c"
996 retValue_acc = pumpRunning;
997#line 240
998 return (retValue_acc);
999#line 247
1000 return (retValue_acc);
1001}
1002}
1003#line 52 "MinePump.c"
1004void printPump(void)
1005{
1006
1007 {
1008 {
1009#line 53
1010 printf("Pump(System:");
1011 }
1012#line 54
1013 if (systemActive) {
1014 {
1015#line 55
1016 printf("On");
1017 }
1018 } else {
1019 {
1020#line 56
1021 printf("Off");
1022 }
1023 }
1024 {
1025#line 58
1026 printf(",Pump:");
1027 }
1028#line 59
1029 if (pumpRunning) {
1030 {
1031#line 60
1032 printf("On");
1033 }
1034 } else {
1035 {
1036#line 61
1037 printf("Off");
1038 }
1039 }
1040 {
1041#line 63
1042 printf(") ");
1043#line 64
1044 printEnvironment();
1045#line 65
1046 printf("\n");
1047 }
1048#line 287 "MinePump.c"
1049 return;
1050}
1051}
1052#line 67 "MinePump.c"
1053int isLowWaterLevel(void)
1054{ int retValue_acc ;
1055 int tmp ;
1056 int tmp___0 ;
1057
1058 {
1059 {
1060#line 305 "MinePump.c"
1061 tmp = isLowWaterSensorDry();
1062 }
1063#line 305
1064 if (tmp) {
1065#line 305
1066 tmp___0 = 0;
1067 } else {
1068#line 305
1069 tmp___0 = 1;
1070 }
1071#line 305
1072 retValue_acc = tmp___0;
1073#line 307
1074 return (retValue_acc);
1075#line 314
1076 return (retValue_acc);
1077}
1078}
1079#line 70 "MinePump.c"
1080void startSystem(void)
1081{
1082
1083 {
1084#line 72
1085 systemActive = 1;
1086#line 338 "MinePump.c"
1087 return;
1088}
1089}
1090#line 1 "scenario.o"
1091#pragma merger(0,"scenario.i","")
1092#line 1 "scenario.c"
1093void test(void)
1094{ int splverifierCounter ;
1095 int tmp ;
1096 int tmp___0 ;
1097 int tmp___1 ;
1098 int tmp___2 ;
1099
1100 {
1101#line 2
1102 splverifierCounter = 0;
1103 {
1104#line 3
1105 while (1) {
1106 while_4_continue: ;
1107#line 3
1108 if (splverifierCounter < 4) {
1109
1110 } else {
1111 goto while_4_break;
1112 }
1113 {
1114#line 7
1115 tmp = __VERIFIER_nondet_int();
1116 }
1117#line 7
1118 if (tmp) {
1119 {
1120#line 5
1121 waterRise();
1122 }
1123 } else {
1124
1125 }
1126 {
1127#line 7
1128 tmp___0 = __VERIFIER_nondet_int();
1129 }
1130#line 7
1131 if (tmp___0) {
1132 {
1133#line 8
1134 changeMethaneLevel();
1135 }
1136 } else {
1137
1138 }
1139 {
1140#line 10
1141 tmp___2 = __VERIFIER_nondet_int();
1142 }
1143#line 10
1144 if (tmp___2) {
1145 {
1146#line 11
1147 startSystem();
1148 }
1149 } else {
1150 {
1151#line 12
1152 tmp___1 = __VERIFIER_nondet_int();
1153 }
1154#line 12
1155 if (tmp___1) {
1156
1157 } else {
1158
1159 }
1160 }
1161 {
1162#line 14
1163 timeShift();
1164 }
1165 }
1166 while_4_break: ;
1167 }
1168 {
1169#line 16
1170 cleanup();
1171 }
1172#line 76 "scenario.c"
1173 return;
1174}
1175}
1176#line 1 "featureselect.o"
1177#pragma merger(0,"featureselect.i","")
1178#line 8 "featureselect.h"
1179int select_one(void) ;
1180#line 8 "featureselect.c"
1181int select_one(void)
1182{ int retValue_acc ;
1183 int choice = __VERIFIER_nondet_int();
1184
1185 {
1186#line 62 "featureselect.c"
1187 retValue_acc = choice;
1188#line 64
1189 return (retValue_acc);
1190#line 71
1191 return (retValue_acc);
1192}
1193}
1194#line 14 "featureselect.c"
1195void select_features(void)
1196{
1197
1198 {
1199#line 93 "featureselect.c"
1200 return;
1201}
1202}
1203#line 20 "featureselect.c"
1204void select_helpers(void)
1205{
1206
1207 {
1208#line 111 "featureselect.c"
1209 return;
1210}
1211}
1212#line 25 "featureselect.c"
1213int valid_product(void)
1214{ int retValue_acc ;
1215
1216 {
1217#line 129 "featureselect.c"
1218 retValue_acc = 1;
1219#line 131
1220 return (retValue_acc);
1221#line 138
1222 return (retValue_acc);
1223}
1224}
1225#line 1 "Specification3_spec.o"
1226#pragma merger(0,"Specification3_spec.i","")
1227#line 4 "wsllib.h"
1228void __automaton_fail(void) ;
1229#line 11 "Specification3_spec.c"
1230void __utac_acc__Specification3_spec__1(void)
1231{ int tmp ;
1232 int tmp___0 ;
1233 int tmp___1 ;
1234
1235 {
1236 {
1237#line 19
1238 tmp = isMethaneLevelCritical();
1239 }
1240#line 19
1241 if (tmp) {
1242
1243 } else {
1244 {
1245#line 19
1246 tmp___0 = getWaterLevel();
1247 }
1248#line 19
1249 if (tmp___0 == 2) {
1250 {
1251#line 19
1252 tmp___1 = isPumpRunning();
1253 }
1254#line 19
1255 if (tmp___1) {
1256
1257 } else {
1258 {
1259#line 16
1260 __automaton_fail();
1261 }
1262 }
1263 } else {
1264
1265 }
1266 }
1267#line 16
1268 return;
1269}
1270}
1271#line 1 "wsllib_check.o"
1272#pragma merger(0,"wsllib_check.i","")
1273#line 3 "wsllib_check.c"
1274void __automaton_fail(void)
1275{
1276
1277 {
1278 goto ERROR;
1279 ERROR: ;
1280#line 53 "wsllib_check.c"
1281 return;
1282}
1283}