Added Theory::postsolve() infrastructure as Clark requested.
authorMorgan Deters <mdeters@gmail.com>
Mon, 20 Feb 2012 14:48:22 +0000 (14:48 +0000)
committerMorgan Deters <mdeters@gmail.com>
Mon, 20 Feb 2012 14:48:22 +0000 (14:48 +0000)
commita426d4b7795a173d6a50418a38a3b41bbfaf880d
tree0687d074dd73c5b474538814e1c5f29207f48ab1
parent96240c3cbc2a25e2d9ab14d1048ffda82a83ded2
Added Theory::postsolve() infrastructure as Clark requested.
(Though currently unused.)

For theories that request presolve and postsolve (in their kinds file),
they will get a presolve() notification before the first check().  After
the final check during the current search, they get a postsolve().
presolve() and postsolve() notifications always come in pairs, bracketing
all check()/propagate()/getValue() calls related to a single query.  In
the case of incremental benchmarks, theories may get additional
presolve()/postsolve() pairs, but again, they always come in pairs.

Expected performance impact: none (for theories that don't use it)
  http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=3598&reference_id=3581&p=5
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/theory/mktheorytraits
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h