-- a test for the new INVAR section
-- uncomment the INVAR section and the property will be true

VAR 

  a[4]
  b[4]
  c[4]

ASSIGN
  
  init(a) := 0;
  next(a) :=
    case
      oracle_a : inc(a);
      1 : dec(a);
    esac;

  init(b) := 0;
  next(b) :=
    case
      oracle_b : dec(b);
      1 : inc(b);
    esac;

/*

INVAR

  oracle_a = oracle_b

*/
  
DEFINE
  
  c := add(a, b);

SPEC
  
  AG c = 0
