diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-05-07 18:35:08 +0100 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-05-07 18:35:08 +0100 |
commit | 24900726a3934752401ff481ac773b2b1ddcb7d0 (patch) | |
tree | 45e77ee2fe9da93e0f250af63d6d5ec51ad91963 /Test/aitest0/constants.bpl.expect | |
parent | dd2fe48ba2c48ad9bb1972f7f6f26fc5bec6b463 (diff) |
Enable the Constant propagation tests as lit tests.
Diffstat (limited to 'Test/aitest0/constants.bpl.expect')
-rw-r--r-- | Test/aitest0/constants.bpl.expect | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/Test/aitest0/constants.bpl.expect b/Test/aitest0/constants.bpl.expect new file mode 100644 index 00000000..b23f9938 --- /dev/null +++ b/Test/aitest0/constants.bpl.expect @@ -0,0 +1,111 @@ +var GlobalFlag: bool; + +const A: int; + +const B: int; + +const C: int; + +procedure Join(b: bool); + modifies GlobalFlag; + + + +implementation Join(b: bool) +{ + var x: int; + var y: int; + var z: int; + + start: + assume {:inferred} true; + GlobalFlag := true; + x := 3; + y := 4; + z := x + y; + assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7; + goto Then, Else; + + Else: + assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7; + assume b <==> false; + y := 4; + assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7 && !b; + goto join; + + join: + assume {:inferred} GlobalFlag && 3 <= x && x < 5 && y == 4 && z == 7; + assert y == 4; + assert z == 7; + assert GlobalFlag <==> true; + assume {:inferred} GlobalFlag && 3 <= x && x < 5 && y == 4 && z == 7; + return; + + Then: + assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7; + assume b <==> true; + x := x + 1; + assume {:inferred} GlobalFlag && x == 4 && y == 4 && z == 7 && b; + goto join; +} + + + +procedure Loop(); + + + +implementation Loop() +{ + var c: int; + var i: int; + + start: + assume {:inferred} true; + c := 0; + i := 0; + assume {:inferred} c == 0 && i == 0; + goto test; + + test: // cut point + assume {:inferred} c == 0 && 0 <= i && i < 11; + assume {:inferred} c == 0 && 0 <= i && i < 11; + goto Then, Else; + + Else: + assume {:inferred} c == 0 && 0 <= i && i < 11; + assume {:inferred} c == 0 && 0 <= i && i < 11; + return; + + Then: + assume {:inferred} c == 0 && 0 <= i && i < 11; + assume i < 10; + i := i + 1; + assume {:inferred} c == 0 && 1 <= i && i < 11; + goto test; +} + + + +procedure Evaluate(); + + + +implementation Evaluate() +{ + var i: int; + + start: + assume {:inferred} true; + i := 5; + i := 3 * i + 1; + i := 3 * (i + 1); + i := 1 + 3 * i; + i := (i + 1) * 3; + assume {:inferred} i == 465; + return; +} + + + +Boogie program verifier finished with 0 verified, 0 errors |