3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

recursive function definitions; combine model-building functionality

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-03-03 07:59:03 -08:00
parent 6fa2338edc
commit 7c6540e18f
19 changed files with 129 additions and 173 deletions

View file

@ -32,7 +32,7 @@ Revision History:
#include"cooperate.h"
struct evaluator_cfg : public default_rewriter_cfg {
model & m_model;
model_core & m_model;
bool_rewriter m_b_rw;
arith_rewriter m_a_rw;
bv_rewriter m_bv_rw;
@ -46,7 +46,7 @@ struct evaluator_cfg : public default_rewriter_cfg {
bool m_model_completion;
bool m_cache;
evaluator_cfg(ast_manager & m, model & md, params_ref const & p):
evaluator_cfg(ast_manager & m, model_core & md, params_ref const & p):
m_model(md),
m_b_rw(m),
// We must allow customers to set parameters for arithmetic rewriter/evaluator.
@ -231,7 +231,7 @@ template class rewriter_tpl<evaluator_cfg>;
struct model_evaluator::imp : public rewriter_tpl<evaluator_cfg> {
evaluator_cfg m_cfg;
imp(model & md, params_ref const & p):
imp(model_core & md, params_ref const & p):
rewriter_tpl<evaluator_cfg>(md.get_manager(),
false, // no proofs for evaluator
m_cfg),
@ -239,7 +239,7 @@ struct model_evaluator::imp : public rewriter_tpl<evaluator_cfg> {
}
};
model_evaluator::model_evaluator(model & md, params_ref const & p) {
model_evaluator::model_evaluator(model_core & md, params_ref const & p) {
m_imp = alloc(imp, md, p);
}
@ -269,7 +269,7 @@ unsigned model_evaluator::get_num_steps() const {
void model_evaluator::cleanup(params_ref const & p) {
model & md = m_imp->cfg().m_model;
model_core & md = m_imp->cfg().m_model;
#pragma omp critical (model_evaluator)
{
dealloc(m_imp);