diff options
author | Clark Barrett <barrett@cs.stanford.edu> | 2017-03-06 00:25:26 -0800 |
---|---|---|
committer | Clark Barrett <barrett@cs.stanford.edu> | 2017-03-06 00:25:26 -0800 |
commit | 5f096cbd59afa98e8b3c7e7e7aa0b6df3c7e01b0 (patch) | |
tree | f7897714f42c89eac1547039de37fa25a730537a /proofs | |
parent | f81c51ca8af1c38126336f0c31a33fba72614dc1 (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')
-rw-r--r-- | proofs/signatures/th_bv_bitblast.plf | 23 |
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 |