summaryrefslogtreecommitdiff
path: root/Test/z3api/bar4.bpl
diff options
context:
space:
mode:
Diffstat (limited to 'Test/z3api/bar4.bpl')
-rw-r--r--Test/z3api/bar4.bpl38
1 files changed, 38 insertions, 0 deletions
diff --git a/Test/z3api/bar4.bpl b/Test/z3api/bar4.bpl
new file mode 100644
index 00000000..84640811
--- /dev/null
+++ b/Test/z3api/bar4.bpl
@@ -0,0 +1,38 @@
+var y: int;
+var x: int;
+
+procedure {:inline 1} bar() returns (b: bool)
+modifies y;
+{
+ if (b) {
+ y := y + 1;
+ } else {
+ y := y - 1;
+ }
+}
+
+procedure {:inline 1} foo()
+modifies x, y;
+{
+ var b: bool;
+
+ call b := bar();
+ if (b) {
+ x := x + 1;
+ } else {
+ x := x - 1;
+ }
+}
+
+
+procedure main() returns (b: bool)
+requires x == y;
+ensures !b ==> x == y+1;
+ensures b ==> x+1 == y;
+modifies x, y;
+modifies y;
+{
+ call foo();
+ assert x == y;
+ call b := bar();
+}