// verifast_options{disable_overflow_check target:ILP32}
// This file is part of the SV-Benchmarks collection of verification tasks:
// https://github.com/sosy-lab/sv-benchmarks
//
// SPDX-FileCopyrightText: 2019 Dirk Beyer and Matthias Dangl
//
// SPDX-License-Identifier: Apache-2.0

extern void abort(void);
//@ requires true;
//@ ensures true;
void reach_error()
//@ requires false;
//@ ensures true;
{}extern unsigned int __VERIFIER_nondet_uint(void);
void __VERIFIER_assert(int cond) 
//@ requires (cond != 0);
//@ ensures (cond != 0);
{  if (!(cond)) {
    ERROR: {reach_error();abort();}
  }
  return;
}
int main(void) 
//@ requires module(eq1__verifast_instrumented, true);
//@ ensures junk();
{
    //@ open_module(); 
  unsigned int w = __VERIFIER_nondet_uint();
  unsigned int x = w;
  unsigned int y = __VERIFIER_nondet_uint();
  unsigned int z = y;
while (__VERIFIER_nondet_uint())
//@ invariant ((z == y) && (x == w));
    {
if (__VERIFIER_nondet_uint()) 
//@ requires true;
//@ ensures true;
{      ++w; ++x;
    } else {
      --y; --z;
    }
  }
  __VERIFIER_assert(w == x && y == z);
  return 0;
}