Some initial changes to allow for lemmas on demand.
authorDejan Jovanović <dejan.jovanovic@gmail.com>
Tue, 25 May 2010 05:30:40 +0000 (05:30 +0000)
committerDejan Jovanović <dejan.jovanovic@gmail.com>
Tue, 25 May 2010 05:30:40 +0000 (05:30 +0000)
commite87c14798b99ccb586751d291b0eeb3208265bd8
tree8ffab42bc3b5b27d4a0f209adfd274f8741f26cd
parent4ba56dc24c972afae6137e4dd6a05f3957e48bf5
Some initial changes to allow for lemmas on demand.

To be done:
* Add erasable map Clause* to bool to minisat (backtracks with the solver)
* Add map from Clause* to Node (clauses that came from a node)
* Add reference counting Literal -> Node to CNFManager
* If Literal -> Node refcount goes to zero, the clauses of Node can be erased (if eresable)
* If clause is erased for each L in clause L -> Node refcount goes down
13 files changed:
src/prop/cnf_stream.cpp
src/prop/cnf_stream.h
src/prop/minisat/core/Solver.C
src/prop/minisat/core/Solver.h
src/prop/minisat/simp/SimpSolver.C
src/prop/minisat/simp/SimpSolver.h
src/prop/prop_engine.cpp
src/prop/prop_engine.h
src/prop/sat.cpp
src/prop/sat.h
src/smt/smt_engine.cpp
src/theory/arith/theory_arith.cpp
src/theory/theory_engine.h