Showing error 1904

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