Showing error 2127

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