Bit vector proof superclass (#2599)
authorAlex Ozdemir <aozdemir@hmc.edu>
Mon, 3 Dec 2018 19:56:47 +0000 (11:56 -0800)
committerGitHub <noreply@github.com>
Mon, 3 Dec 2018 19:56:47 +0000 (11:56 -0800)
commitaa0a875dfd40bd9dfa810238327db51498b74677
tree5606b1214ef8388b86e964213ed3b9c67254317f
parent2a19474cdb6761fd4c9aeb0165e661c531ba3e38
Bit vector proof superclass (#2599)

* Split BitvectorProof into a sub/superclass

The superclass contains general printing knowledge.

The subclass contains CNF or Resolution-specific knowledge.

* Renames & code moves

* Nits cleaned in prep for PR

* Moved CNF-proof from ResolutionBitVectorProof to BitVectorProof

Since DRAT BV proofs will also contain a CNF-proof, the CNF proof should
be stored in `BitVectorProof`.

* Unique pointers, comments, and code movement.

Adjusted the distribution of code between BVP and RBVP.
  Notably, put the CNF proof in BVP because it isn't
  resolution-specific.
Added comments to the headers of both files -- mostly BVP.
Changed two owned pointers into unique_ptr.
  BVP's pointer to a CNF proof
  RBVP's pointer to a resolution proof

BVP: `BitVectorProof`
RBVP: `ResolutionBitVectorProof`

* clang-format

* Undo manual copyright modification

* s/superclass/base class/

Co-Authored-By: alex-ozdemir <aozdemir@hmc.edu>
* make LFSCBitVectorProof::printOwnedSort public

* Andres's Comments

Mostly cleaning up (or trying to clean up) includes.

* Cleaned up one header cycle

However, this only allowed me to move the forward-decl, not eliminate
it, because there were actually two underlying include cycles that the
forward-decl solved.

* Added single _s to header gaurds

* Fix Class name in debug output

Credits to Andres

Co-Authored-By: alex-ozdemir <aozdemir@hmc.edu>
* Reordered methods in BitVectorProof per original  ordering
28 files changed:
src/CMakeLists.txt
src/proof/bitvector_proof.cpp
src/proof/bitvector_proof.h
src/proof/proof_manager.cpp
src/proof/proof_manager.h
src/proof/resolution_bitvector_proof.cpp [new file with mode: 0644]
src/proof/resolution_bitvector_proof.h [new file with mode: 0644]
src/proof/theory_proof.cpp
src/prop/bv_sat_solver_notify.h [new file with mode: 0644]
src/prop/bvminisat/bvminisat.cpp
src/prop/bvminisat/bvminisat.h
src/prop/bvminisat/core/Solver.cc
src/prop/bvminisat/core/Solver.h
src/prop/sat_solver.h
src/prop/sat_solver_types.h
src/theory/bv/bitblast/aig_bitblaster.h
src/theory/bv/bitblast/bitblaster.h
src/theory/bv/bitblast/eager_bitblaster.cpp
src/theory/bv/bitblast/eager_bitblaster.h
src/theory/bv/bitblast/lazy_bitblaster.cpp
src/theory/bv/bitblast/lazy_bitblaster.h
src/theory/bv/bv_eager_solver.cpp
src/theory/bv/bv_eager_solver.h
src/theory/bv/bv_subtheory.h
src/theory/bv/bv_subtheory_bitblast.cpp
src/theory/bv/bv_subtheory_bitblast.h
src/theory/bv/theory_bv.cpp
src/theory/bv/theory_bv.h