diff options
author | 2009-07-15 21:03:41 +0000 | |
---|---|---|
committer | 2009-07-15 21:03:41 +0000 | |
commit | ce1c2de044c91624370411e23acab13b0381949b (patch) | |
tree | 592539996fe08050ead5ee210c973801611dde40 /Test/inline/expansion4.bpl |
Initial set of files.
Diffstat (limited to 'Test/inline/expansion4.bpl')
-rw-r--r-- | Test/inline/expansion4.bpl | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Test/inline/expansion4.bpl b/Test/inline/expansion4.bpl new file mode 100644 index 00000000..593fa9fb --- /dev/null +++ b/Test/inline/expansion4.bpl @@ -0,0 +1,31 @@ +function f(x:int) returns(bool);
+axiom {:ignore "bvInt"} {:inline true} (forall x:int :: f(x) <==> true);
+axiom {:ignore "bvDefSem"} {:inline true} (forall x:int :: f(x) <==> false);
+
+procedure {:forceBvZ3Native true} foo()
+{
+ assert f(3);
+}
+
+procedure {:forceBvInt true} foo2()
+{
+ assert !f(3);
+}
+
+axiom (forall x: bv64, y: bv64 :: { $sub.unchk.u8(x, y) } $check.sub.u8(x, y) ==> $sub.u8(x, y) == $sub.unchk.u8(x, y));
+axiom {:inline true} {:ignore "bvDefSem"} (forall x: bv64, y: bv64 :: { $check.sub.u8(x, y) }
+$check.sub.u8(x, y) <==> $_inrange.u8($sub.i8(x, y)));
+
+function $check.sub.u8(x: bv64, y: bv64) returns (bool);
+function $_inrange.u8(bv64) returns (bool);
+function {:bvbuiltin "bvsub"} $sub.unchk.u8(x: bv64, y: bv64) returns (bv64);
+function {:bvbuiltin "bvsub"} {:bvint "-"} $sub.i8(x: bv64, y: bv64) returns (bv64);
+function {:bvbuiltin "bvsub"} {:bvint "-"} $sub.u8(x: bv64, y: bv64) returns (bv64);
+
+
+procedure {:forceBvZ3Native true} baz()
+{
+ return;
+}
+
+
|