// RUN: %boogie -noinfer -contractInfer -printAssignment "%s" > "%t" // RUN: %diff "%s.expect" "%t" const {:existential true} b1:bool; const {:existential true} b2:bool; var myVar: int; procedure bar(i:int) modifies myVar; ensures b2==>myVar>0; { call foo(5); } procedure foo (i:int) modifies myVar; ensures b1 ==> myVar>0; ensures myVar!=-1; { if (i>0) { myVar := 5; } else { myVar := 0; } } // expected output: Correct // expected end assigment: b1->False b2->False