Showing error 1884

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/minepump_spec1_product44_unsafe.cil.c
Line in file: 50
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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