Enable BV proofs when using an eager bitblaster (#2733)
authorAlex Ozdemir <aozdemir@hmc.edu>
Fri, 7 Dec 2018 02:56:56 +0000 (18:56 -0800)
committerGitHub <noreply@github.com>
Fri, 7 Dec 2018 02:56:56 +0000 (18:56 -0800)
commit14fc21fc1101587810e64b0ed78ce03622e2939d
treea01dd53fd0598b18b46654757a0c4df7b99933fb
parent63fb4e8c33db706589fe41476c4d3358fb47164e
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
src/options/options_handler.cpp
src/proof/bitvector_proof.cpp
src/proof/proof_manager.cpp
src/theory/bv/bitblast/eager_bitblaster.cpp
test/regress/regress0/bv/ackermann1.smt2
test/regress/regress0/bv/ackermann2.smt2
test/regress/regress1/bv/bug787.smt2