Showing error 1857

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