summaryrefslogtreecommitdiff
path: root/proofs/signatures
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.stanford.edu>2017-03-06 00:25:26 -0800
committerClark Barrett <barrett@cs.stanford.edu>2017-03-06 00:25:26 -0800
commit5f096cbd59afa98e8b3c7e7e7aa0b6df3c7e01b0 (patch)
treef7897714f42c89eac1547039de37fa25a730537a /proofs/signatures
parentf81c51ca8af1c38126336f0c31a33fba72614dc1 (diff)
Adding support for bool-to-bv
Squashed commit of the following: commit 5197a663eb262afbeb7740f53b5bd27479dccea0 Author: Clark Barrett <barrett@cs.stanford.edu> Date: Mon Mar 6 00:16:16 2017 -0800 Remove IFF case commit 2119b25a30ed42eca54f632e7232c9f76ae5755a Author: guykatzz <katz911@gmail.com> Date: Mon Feb 20 12:37:06 2017 -0800 proof support for bvcomp commit d8c0c0d2c9c92ce06a5033ec0f3f85ea7bda1a22 Author: Clark Barrett <barrett@cs.stanford.edu> Date: Fri Feb 17 21:09:04 2017 -0800 Added missing cases to operator<< for bv rewrite rules. commit 0ed797c31d0e66cadc35b2397716c841d1aff270 Author: Clark Barrett <barrett@cs.stanford.edu> Date: Fri Feb 17 11:43:51 2017 -0800 Added rewrite rules for new bitvector kinds. commit 3b23dffb317de5559f8a95118fef633f711c114a Author: Clark Barrett <barrett@cs.stanford.edu> Date: Mon Feb 13 14:41:49 2017 -0800 First draft of bool-to-bv pass.
Diffstat (limited to 'proofs/signatures')
-rw-r--r--proofs/signatures/th_bv_bitblast.plf23
1 files changed, 23 insertions, 0 deletions
diff --git a/proofs/signatures/th_bv_bitblast.plf b/proofs/signatures/th_bv_bitblast.plf
index 3cc1ec296..2b2fe0868 100644
--- a/proofs/signatures/th_bv_bitblast.plf
+++ b/proofs/signatures/th_bv_bitblast.plf
@@ -533,6 +533,29 @@
(! c (^ (bblast_bvslt bx by n) f)
(th_holds (iff (bvslt n x y) f))))))))))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; BITBLAST BVCOMP
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(program bblast_bvcomp ((x bblt) (y bblt) (n mpz)) bblt
+ (match x ((bbltc bx x') (match y ((bbltc by y')
+ (bbltc (bblast_eq_rec x' y' (iff bx by)) bbltn))
+ (default (fail bblt))))
+ (default (fail bblt))
+ ))
+
+(declare bv_bbl_bvcomp (! n mpz
+ (! x (term (BitVec n))
+ (! y (term (BitVec n))
+ (! xb bblt
+ (! yb bblt
+ (! rb bblt
+ (! xbb (bblast_term n x xb)
+ (! ybb (bblast_term n y yb)
+ (! c (^ (bblast_bvcomp xb yb n) rb)
+ (bblast_term 1 (bvcomp n x y) rb)))))))))))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; BITBLASTING CONNECTORS
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback