class Cell { var value: int; predicate p { acc(value) } method test() requires p { var tmp: int := unfolding p in value; var tmp2: int := unfolding p in value; call void() assert tmp == unfolding p in value // ERROR: should fail } method test2() requires p { var tmp: int := unfolding p in value; var tmp2: int := unfolding p in value; call v() assert tmp == unfolding p in value } method v() requires true {} method void() requires p ensures p {} }