Showing error 2083

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_spec4_product48_unsafe.cil.c
Line in file: 616
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 "Specification4_spec.o"
  43#pragma merger(0,"Specification4_spec.i","")
  44#line 4 "wsllib.h"
  45void __automaton_fail(void) ;
  46#line 10 "MinePump.h"
  47int isPumpRunning(void) ;
  48#line 12 "Environment.h"
  49int getWaterLevel(void) ;
  50#line 11 "Specification4_spec.c"
  51__inline void __utac_acc__Specification4_spec__1(void) 
  52{ int tmp ;
  53  int tmp___0 ;
  54
  55  {
  56  {
  57#line 17
  58  tmp = getWaterLevel();
  59  }
  60#line 17
  61  if (tmp == 0) {
  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 "wsllib_check.o"
 609#pragma merger(0,"wsllib_check.i","")
 610#line 3 "wsllib_check.c"
 611void __automaton_fail(void) 
 612{ 
 613
 614  {
 615  goto ERROR;
 616  ERROR: ;
 617#line 53 "wsllib_check.c"
 618  return;
 619}
 620}
 621#line 1 "Test.o"
 622#pragma merger(0,"Test.i","")
 623#line 8 "Test.c"
 624int cleanupTimeShifts  =    4;
 625#line 11 "Test.c"
 626#line 20 "Test.c"
 627void timeShift(void) ;
 628#line 17 "Test.c"
 629void cleanup(void) 
 630{ int i ;
 631  int __cil_tmp2 ;
 632
 633  {
 634  {
 635#line 20
 636  timeShift();
 637#line 22
 638  i = 0;
 639  }
 640  {
 641#line 22
 642  while (1) {
 643    while_3_continue: /* CIL Label */ ;
 644    {
 645#line 22
 646    __cil_tmp2 = cleanupTimeShifts - 1;
 647#line 22
 648    if (i < __cil_tmp2) {
 649
 650    } else {
 651      goto while_3_break;
 652    }
 653    }
 654    {
 655#line 23
 656    timeShift();
 657#line 22
 658    i = i + 1;
 659    }
 660  }
 661  while_3_break: /* CIL Label */ ;
 662  }
 663#line 1111 "Test.c"
 664  return;
 665}
 666}
 667#line 57 "Test.c"
 668void printPump(void) ;
 669#line 60
 670void waterRise(void) ;
 671#line 62
 672void changeMethaneLevel(void) ;
 673#line 56 "Test.c"
 674void Specification2(void) 
 675{ 
 676
 677  {
 678  {
 679#line 57
 680  timeShift();
 681#line 57
 682  printPump();
 683#line 58
 684  timeShift();
 685#line 58
 686  printPump();
 687#line 59
 688  timeShift();
 689#line 59
 690  printPump();
 691#line 60
 692  waterRise();
 693#line 60
 694  printPump();
 695#line 61
 696  timeShift();
 697#line 61
 698  printPump();
 699#line 62
 700  changeMethaneLevel();
 701#line 62
 702  printPump();
 703#line 63
 704  timeShift();
 705#line 63
 706  printPump();
 707#line 64
 708  cleanup();
 709  }
 710#line 1159 "Test.c"
 711  return;
 712}
 713}
 714#line 67 "Test.c"
 715void setup(void) 
 716{ 
 717
 718  {
 719#line 1177 "Test.c"
 720  return;
 721}
 722}
 723#line 77 "Test.c"
 724void test(void) ;
 725#line 74 "Test.c"
 726void runTest(void) 
 727{ 
 728
 729  {
 730  {
 731#line 77
 732  test();
 733  }
 734#line 1197 "Test.c"
 735  return;
 736}
 737}
 738#line 83 "Test.c"
 739void select_helpers(void) ;
 740#line 84
 741void select_features(void) ;
 742#line 85
 743int valid_product(void) ;
 744#line 82 "Test.c"
 745int main(void) 
 746{ int retValue_acc ;
 747  int tmp ;
 748
 749  {
 750  {
 751#line 83
 752  select_helpers();
 753#line 84
 754  select_features();
 755#line 85
 756  tmp = valid_product();
 757  }
 758#line 85
 759  if (tmp) {
 760    {
 761#line 86
 762    setup();
 763#line 87
 764    runTest();
 765    }
 766  } else {
 767
 768  }
 769#line 1226 "Test.c"
 770  retValue_acc = 0;
 771#line 1228
 772  return (retValue_acc);
 773#line 1235
 774  return (retValue_acc);
 775}
 776}
 777#line 1 "MinePump.o"
 778#pragma merger(0,"MinePump.i","")
 779#line 4 "Environment.h"
 780void lowerWaterLevel(void) ;
 781#line 10
 782int isMethaneLevelCritical(void) ;
 783#line 15
 784void printEnvironment(void) ;
 785#line 16
 786int isHighWaterSensorDry(void) ;
 787#line 6 "MinePump.h"
 788void activatePump(void) ;
 789#line 8
 790void deactivatePump(void) ;
 791#line 14
 792void stopSystem(void) ;
 793#line 15
 794void startSystem(void) ;
 795#line 7 "MinePump.c"
 796int pumpRunning  =    0;
 797#line 9 "MinePump.c"
 798int systemActive  =    1;
 799#line 16
 800void processEnvironment(void) ;
 801#line 12 "MinePump.c"
 802void timeShift(void) 
 803{ 
 804
 805  {
 806#line 15
 807  if (pumpRunning) {
 808    {
 809#line 16
 810    lowerWaterLevel();
 811    }
 812  } else {
 813
 814  }
 815#line 15
 816  if (systemActive) {
 817    {
 818#line 16
 819    processEnvironment();
 820    }
 821  } else {
 822
 823  }
 824  {
 825#line 101 "MinePump.c"
 826  __utac_acc__Specification4_spec__1();
 827  }
 828#line 107
 829  return;
 830}
 831}
 832#line 19 "MinePump.c"
 833void processEnvironment__wrappee__base(void) 
 834{ 
 835
 836  {
 837#line 125 "MinePump.c"
 838  return;
 839}
 840}
 841#line 28 "MinePump.c"
 842int isHighWaterLevel(void) ;
 843#line 23 "MinePump.c"
 844void processEnvironment__wrappee__methaneQuery(void) 
 845{ int tmp ;
 846
 847  {
 848#line 28
 849  if (! pumpRunning) {
 850    {
 851#line 28
 852    tmp = isHighWaterLevel();
 853    }
 854#line 28
 855    if (tmp) {
 856      {
 857#line 25
 858      activatePump();
 859      }
 860    } else {
 861      {
 862#line 27
 863      processEnvironment__wrappee__base();
 864      }
 865    }
 866  } else {
 867    {
 868#line 27
 869    processEnvironment__wrappee__base();
 870    }
 871  }
 872#line 151 "MinePump.c"
 873  return;
 874}
 875}
 876#line 35 "MinePump.c"
 877int isMethaneAlarm(void) ;
 878#line 30 "MinePump.c"
 879void processEnvironment(void) 
 880{ int tmp ;
 881
 882  {
 883#line 35
 884  if (pumpRunning) {
 885    {
 886#line 35
 887    tmp = isMethaneAlarm();
 888    }
 889#line 35
 890    if (tmp) {
 891      {
 892#line 32
 893      deactivatePump();
 894      }
 895    } else {
 896      {
 897#line 34
 898      processEnvironment__wrappee__methaneQuery();
 899      }
 900    }
 901  } else {
 902    {
 903#line 34
 904    processEnvironment__wrappee__methaneQuery();
 905    }
 906  }
 907#line 177 "MinePump.c"
 908  return;
 909}
 910}
 911#line 39 "MinePump.c"
 912void activatePump__wrappee__highWaterSensor(void) 
 913{ 
 914
 915  {
 916#line 40
 917  pumpRunning = 1;
 918#line 197 "MinePump.c"
 919  return;
 920}
 921}
 922#line 42 "MinePump.c"
 923void activatePump(void) 
 924{ int tmp ;
 925
 926  {
 927  {
 928#line 47
 929  tmp = isMethaneAlarm();
 930  }
 931#line 47
 932  if (tmp) {
 933
 934  } else {
 935    {
 936#line 44
 937    activatePump__wrappee__highWaterSensor();
 938    }
 939  }
 940#line 221 "MinePump.c"
 941  return;
 942}
 943}
 944#line 51 "MinePump.c"
 945void deactivatePump(void) 
 946{ 
 947
 948  {
 949#line 52
 950  pumpRunning = 0;
 951#line 241 "MinePump.c"
 952  return;
 953}
 954}
 955#line 56 "MinePump.c"
 956int isMethaneAlarm(void) 
 957{ int retValue_acc ;
 958
 959  {
 960  {
 961#line 259 "MinePump.c"
 962  retValue_acc = isMethaneLevelCritical();
 963  }
 964#line 261
 965  return (retValue_acc);
 966#line 268
 967  return (retValue_acc);
 968}
 969}
 970#line 61 "MinePump.c"
 971int isPumpRunning(void) 
 972{ int retValue_acc ;
 973
 974  {
 975#line 290 "MinePump.c"
 976  retValue_acc = pumpRunning;
 977#line 292
 978  return (retValue_acc);
 979#line 299
 980  return (retValue_acc);
 981}
 982}
 983#line 67 "MinePump.c"
 984#line 66 "MinePump.c"
 985void printPump(void) 
 986{ 
 987
 988  {
 989  {
 990#line 67
 991  printf("Pump(System:");
 992  }
 993#line 68
 994  if (systemActive) {
 995    {
 996#line 69
 997    printf("On");
 998    }
 999  } else {
1000    {
1001#line 70
1002    printf("Off");
1003    }
1004  }
1005  {
1006#line 72
1007  printf(",Pump:");
1008  }
1009#line 73
1010  if (pumpRunning) {
1011    {
1012#line 74
1013    printf("On");
1014    }
1015  } else {
1016    {
1017#line 75
1018    printf("Off");
1019    }
1020  }
1021  {
1022#line 77
1023  printf(") ");
1024#line 78
1025  printEnvironment();
1026#line 79
1027  printf("\n");
1028  }
1029#line 339 "MinePump.c"
1030  return;
1031}
1032}
1033#line 81 "MinePump.c"
1034int isHighWaterLevel(void) 
1035{ int retValue_acc ;
1036  int tmp ;
1037  int tmp___0 ;
1038
1039  {
1040  {
1041#line 357 "MinePump.c"
1042  tmp = isHighWaterSensorDry();
1043  }
1044#line 357
1045  if (tmp) {
1046#line 357
1047    tmp___0 = 0;
1048  } else {
1049#line 357
1050    tmp___0 = 1;
1051  }
1052#line 357
1053  retValue_acc = tmp___0;
1054#line 359
1055  return (retValue_acc);
1056#line 366
1057  return (retValue_acc);
1058}
1059}
1060#line 84 "MinePump.c"
1061void stopSystem(void) 
1062{ 
1063
1064  {
1065#line 89
1066  if (pumpRunning) {
1067    {
1068#line 86
1069    deactivatePump();
1070    }
1071  } else {
1072
1073  }
1074#line 89
1075  systemActive = 0;
1076#line 395 "MinePump.c"
1077  return;
1078}
1079}
1080#line 91 "MinePump.c"
1081void startSystem(void) 
1082{ 
1083
1084  {
1085#line 93
1086  systemActive = 1;
1087#line 415 "MinePump.c"
1088  return;
1089}
1090}
1091#line 1 "Environment.o"
1092#pragma merger(0,"Environment.i","")
1093#line 9 "Environment.c"
1094int waterLevel  =    1;
1095#line 12 "Environment.c"
1096int methaneLevelCritical  =    0;
1097#line 15 "Environment.c"
1098void lowerWaterLevel(void) 
1099{ 
1100
1101  {
1102#line 19
1103  if (waterLevel > 0) {
1104#line 17
1105    waterLevel = waterLevel - 1;
1106  } else {
1107
1108  }
1109#line 83 "Environment.c"
1110  return;
1111}
1112}
1113#line 22 "Environment.c"
1114void waterRise(void) 
1115{ 
1116
1117  {
1118#line 26
1119  if (waterLevel < 2) {
1120#line 24
1121    waterLevel = waterLevel + 1;
1122  } else {
1123
1124  }
1125#line 106 "Environment.c"
1126  return;
1127}
1128}
1129#line 29 "Environment.c"
1130void changeMethaneLevel(void) 
1131{ 
1132
1133  {
1134#line 34
1135  if (methaneLevelCritical) {
1136#line 31
1137    methaneLevelCritical = 0;
1138  } else {
1139#line 33
1140    methaneLevelCritical = 1;
1141  }
1142#line 132 "Environment.c"
1143  return;
1144}
1145}
1146#line 38 "Environment.c"
1147int isMethaneLevelCritical(void) 
1148{ int retValue_acc ;
1149
1150  {
1151#line 150 "Environment.c"
1152  retValue_acc = methaneLevelCritical;
1153#line 152
1154  return (retValue_acc);
1155#line 159
1156  return (retValue_acc);
1157}
1158}
1159#line 44 "Environment.c"
1160void printEnvironment(void) 
1161{ 
1162
1163  {
1164  {
1165#line 45
1166  printf("Env(Water:%i", waterLevel);
1167#line 46
1168  printf(",Meth:");
1169  }
1170#line 47
1171  if (methaneLevelCritical) {
1172    {
1173#line 48
1174    printf("CRIT");
1175    }
1176  } else {
1177    {
1178#line 49
1179    printf("OK");
1180    }
1181  }
1182  {
1183#line 51
1184  printf(")");
1185  }
1186#line 191 "Environment.c"
1187  return;
1188}
1189}
1190#line 55 "Environment.c"
1191int getWaterLevel(void) 
1192{ int retValue_acc ;
1193
1194  {
1195#line 209 "Environment.c"
1196  retValue_acc = waterLevel;
1197#line 211
1198  return (retValue_acc);
1199#line 218
1200  return (retValue_acc);
1201}
1202}
1203#line 58 "Environment.c"
1204int isHighWaterSensorDry(void) 
1205{ int retValue_acc ;
1206
1207  {
1208#line 65 "Environment.c"
1209  if (waterLevel < 2) {
1210#line 243
1211    retValue_acc = 1;
1212#line 245
1213    return (retValue_acc);
1214  } else {
1215#line 251 "Environment.c"
1216    retValue_acc = 0;
1217#line 253
1218    return (retValue_acc);
1219  }
1220#line 260 "Environment.c"
1221  return (retValue_acc);
1222}
1223}
1224#line 1 "scenario.o"
1225#pragma merger(0,"scenario.i","")
1226#line 1 "scenario.c"
1227void test(void) 
1228{ int splverifierCounter ;
1229  int tmp ;
1230  int tmp___0 ;
1231  int tmp___1 ;
1232  int tmp___2 ;
1233
1234  {
1235#line 2
1236  splverifierCounter = 0;
1237  {
1238#line 3
1239  while (1) {
1240    while_4_continue: /* CIL Label */ ;
1241#line 3
1242    if (splverifierCounter < 4) {
1243
1244    } else {
1245      goto while_4_break;
1246    }
1247    {
1248#line 7
1249    tmp = __VERIFIER_nondet_int();
1250    }
1251#line 7
1252    if (tmp) {
1253      {
1254#line 5
1255      waterRise();
1256      }
1257    } else {
1258
1259    }
1260    {
1261#line 7
1262    tmp___0 = __VERIFIER_nondet_int();
1263    }
1264#line 7
1265    if (tmp___0) {
1266      {
1267#line 8
1268      changeMethaneLevel();
1269      }
1270    } else {
1271
1272    }
1273    {
1274#line 10
1275    tmp___2 = __VERIFIER_nondet_int();
1276    }
1277#line 10
1278    if (tmp___2) {
1279      {
1280#line 11
1281      startSystem();
1282      }
1283    } else {
1284      {
1285#line 12
1286      tmp___1 = __VERIFIER_nondet_int();
1287      }
1288#line 12
1289      if (tmp___1) {
1290        {
1291#line 13
1292        stopSystem();
1293        }
1294      } else {
1295
1296      }
1297    }
1298    {
1299#line 15
1300    timeShift();
1301    }
1302  }
1303  while_4_break: /* CIL Label */ ;
1304  }
1305  {
1306#line 17
1307  cleanup();
1308  }
1309#line 78 "scenario.c"
1310  return;
1311}
1312}
1313#line 1 "featureselect.o"
1314#pragma merger(0,"featureselect.i","")
1315#line 8 "featureselect.h"
1316int select_one(void) ;
1317#line 8 "featureselect.c"
1318int select_one(void) 
1319{ int retValue_acc ;
1320  int choice = __VERIFIER_nondet_int();
1321
1322  {
1323#line 62 "featureselect.c"
1324  retValue_acc = choice;
1325#line 64
1326  return (retValue_acc);
1327#line 71
1328  return (retValue_acc);
1329}
1330}
1331#line 14 "featureselect.c"
1332void select_features(void) 
1333{ 
1334
1335  {
1336#line 93 "featureselect.c"
1337  return;
1338}
1339}
1340#line 20 "featureselect.c"
1341void select_helpers(void) 
1342{ 
1343
1344  {
1345#line 111 "featureselect.c"
1346  return;
1347}
1348}
1349#line 25 "featureselect.c"
1350int valid_product(void) 
1351{ int retValue_acc ;
1352
1353  {
1354#line 129 "featureselect.c"
1355  retValue_acc = 1;
1356#line 131
1357  return (retValue_acc);
1358#line 138
1359  return (retValue_acc);
1360}
1361}