diff options
author | Alex Ozdemir <aozdemir@hmc.edu> | 2018-12-06 18:56:56 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-06 18:56:56 -0800 |
commit | 14fc21fc1101587810e64b0ed78ce03622e2939d (patch) | |
tree | a01dd53fd0598b18b46654757a0c4df7b99933fb /src/theory/bv | |
parent | 63fb4e8c33db706589fe41476c4d3358fb47164e (diff) |
Enable BV proofs when using an eager bitblaster (#2733)
* Enable BV proofs when using and eager bitblaster
Specifically:
* Removed assertions that blocked them.
* Made sure that only bitvectors were stored in the BV const let-map
* Prevented true/false from being bit-blasted by the eager bitblaster
Also:
* uncommented "no-check-proofs" from relevant tests
* Option handler logic for BV proofs
BV eager proofs only work when minisat is the sat solver being used by
the BV theory.
Added logic to the --proof hanlder to verify this or throw an option
exception.
* Bugfix for proof options handler
I forgot that proofEnabledBuild runs even if the --proof option is
negated. In my handler I now check that proofs are enabled.
* Clang-format
Diffstat (limited to 'src/theory/bv')
-rw-r--r-- | src/theory/bv/bitblast/eager_bitblaster.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/theory/bv/bitblast/eager_bitblaster.cpp b/src/theory/bv/bitblast/eager_bitblaster.cpp index 33d5a1c80..019918c2f 100644 --- a/src/theory/bv/bitblast/eager_bitblaster.cpp +++ b/src/theory/bv/bitblast/eager_bitblaster.cpp @@ -99,8 +99,8 @@ void EagerBitblaster::bbFormula(TNode node) void EagerBitblaster::bbAtom(TNode node) { node = node.getKind() == kind::NOT ? node[0] : node; - if (node.getKind() == kind::BITVECTOR_BITOF) return; - if (hasBBAtom(node)) + if (node.getKind() == kind::BITVECTOR_BITOF + || node.getKind() == kind::CONST_BOOLEAN || hasBBAtom(node)) { return; } |