3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00

removed front-end-params

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2012-12-02 10:05:29 -08:00
parent 288a96610f
commit ffb7e26c75
91 changed files with 264 additions and 412 deletions

View file

@ -40,7 +40,7 @@ Revision History:
#include"distribute_forall.h"
#include"quasi_macros.h"
asserted_formulas::asserted_formulas(ast_manager & m, front_end_params & p):
asserted_formulas::asserted_formulas(ast_manager & m, smt_params & p):
m_manager(m),
m_params(p),
m_pre_simplifier(m),

View file

@ -19,7 +19,7 @@ Revision History:
#ifndef _ASSERTED_FORMULAS_H_
#define _ASSERTED_FORMULAS_H_
#include"front_end_params.h"
#include"smt_params.h"
#include"simplifier.h"
#include"basic_simplifier_plugin.h"
#include"static_features.h"
@ -36,7 +36,7 @@ class bv_simplifier_plugin;
class asserted_formulas {
ast_manager & m_manager;
front_end_params & m_params;
smt_params & m_params;
simplifier m_pre_simplifier;
simplifier m_simplifier;
basic_simplifier_plugin * m_bsimp;
@ -100,7 +100,7 @@ class asserted_formulas {
bool canceled() { return m_cancel_flag; }
public:
asserted_formulas(ast_manager & m, front_end_params & p);
asserted_formulas(ast_manager & m, smt_params & p);
~asserted_formulas();
void setup();

View file

@ -310,7 +310,7 @@ bool expr_context_simplifier::is_false(expr* e) const {
// it occurs in the context (on the path) where it was inserted.
//
expr_strong_context_simplifier::expr_strong_context_simplifier(front_end_params& p, ast_manager& m):
expr_strong_context_simplifier::expr_strong_context_simplifier(smt_params& p, ast_manager& m):
m_manager(m), m_params(p), m_arith(m), m_id(0), m_fn(0,m), m_solver(m, p) {
sort* i_sort = m_arith.mk_int();
m_fn = m.mk_func_decl(symbol(0xbeef101), i_sort, m.mk_bool_sort());

View file

@ -22,7 +22,7 @@ Revision History:
#include "ast.h"
#include "obj_hashtable.h"
#include "basic_simplifier_plugin.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "smt_kernel.h"
#include "arith_decl_plugin.h"
@ -57,7 +57,7 @@ private:
class expr_strong_context_simplifier {
ast_manager& m_manager;
front_end_params & m_params;
smt_params & m_params;
arith_util m_arith;
unsigned m_id;
func_decl_ref m_fn;
@ -70,7 +70,7 @@ class expr_strong_context_simplifier {
bool is_forced(expr* e, expr* v);
public:
expr_strong_context_simplifier(front_end_params& p, ast_manager& m);
expr_strong_context_simplifier(smt_params& p, ast_manager& m);
void operator()(expr* e, expr_ref& result) { simplify(e, result); }
void operator()(expr_ref& result) { simplify(result.get(), result); }
void push() { m_solver.push(); }

View file

@ -278,7 +278,7 @@ namespace smt {
};
typedef int_hashtable<int_hash, default_eq<int> > bool_var_set;
context & m_context;
front_end_params &m_params;
smt_params &m_params;
ast_manager & m_manager;
ptr_vector<expr> m_queue;
unsigned m_head;
@ -287,7 +287,7 @@ namespace smt {
unsigned m_head2;
svector<scope> m_scopes;
public:
rel_case_split_queue(context & ctx, front_end_params & p):
rel_case_split_queue(context & ctx, smt_params & p):
m_context(ctx),
m_params(p),
m_manager(ctx.get_manager()),
@ -465,14 +465,14 @@ namespace smt {
typedef int_hashtable<int_hash, default_eq<int> > bool_var_set;
context & m_context;
ast_manager & m_manager;
front_end_params &m_params;
smt_params &m_params;
ptr_vector<expr> m_queue;
unsigned m_head;
int m_bs_num_bool_vars; //!< Number of boolean variable before starting to search.
bool_var_act_queue m_delayed_queue;
svector<scope> m_scopes;
public:
rel_act_case_split_queue(context & ctx, front_end_params & p):
rel_act_case_split_queue(context & ctx, smt_params & p):
m_context(ctx),
m_manager(ctx.get_manager()),
m_params(p),
@ -694,7 +694,7 @@ namespace smt {
typedef int_hashtable<int_hash, default_eq<int> > bool_var_set;
context & m_context;
front_end_params & m_params;
smt_params & m_params;
ast_manager & m_manager;
ptr_vector<expr> m_queue;
unsigned m_head;
@ -714,7 +714,7 @@ namespace smt {
public:
rel_goal_case_split_queue(context & ctx, front_end_params & p):
rel_goal_case_split_queue(context & ctx, smt_params & p):
m_context(ctx),
m_params(p),
m_manager(ctx.get_manager()),
@ -1088,7 +1088,7 @@ namespace smt {
};
case_split_queue * mk_case_split_queue(context & ctx, front_end_params & p) {
case_split_queue * mk_case_split_queue(context & ctx, smt_params & p) {
if (p.m_relevancy_lvl < 2 && (p.m_case_split_strategy == CS_RELEVANCY || p.m_case_split_strategy == CS_RELEVANCY_ACTIVITY ||
p.m_case_split_strategy == CS_RELEVANCY_GOAL)) {
warning_msg("relevacy must be enabled to use option CASE_SPLIT=3, 4 or 5");

View file

@ -48,7 +48,7 @@ namespace smt {
virtual ~case_split_queue() {}
};
case_split_queue * mk_case_split_queue(context & ctx, front_end_params & p);
case_split_queue * mk_case_split_queue(context & ctx, smt_params & p);
};
#endif /* _SMT_CASE_SPLIT_QUEUE_H_ */

View file

@ -32,7 +32,7 @@ namespace smt {
conflict_resolution::conflict_resolution(ast_manager & m,
context & ctx,
dyn_ack_manager & dyn_ack_manager,
front_end_params const & params,
smt_params const & params,
literal_vector const & assigned_literals,
vector<watch_list> & watches
):
@ -1419,7 +1419,7 @@ namespace smt {
conflict_resolution * mk_conflict_resolution(ast_manager & m,
context & ctx,
dyn_ack_manager & dack_manager,
front_end_params const & params,
smt_params const & params,
literal_vector const & assigned_literals,
vector<watch_list> & watches) {
return alloc(conflict_resolution, m, ctx, dack_manager, params, assigned_literals, watches);

View file

@ -25,7 +25,7 @@ Revision History:
#include"smt_enode.h"
#include"dyn_ack.h"
#include"obj_pair_hashtable.h"
#include"front_end_params.h"
#include"smt_params.h"
#include"obj_pair_hashtable.h"
#include"map.h"
#include"watch_list.h"
@ -46,7 +46,7 @@ namespace smt {
typedef obj_pair_set<enode, enode> enode_pair_set;
ast_manager & m_manager;
front_end_params const & m_params;
smt_params const & m_params;
context & m_ctx;
dyn_ack_manager & m_dyn_ack_manager;
literal_vector const & m_assigned_literals;
@ -204,7 +204,7 @@ namespace smt {
conflict_resolution(ast_manager & m,
context & ctx,
dyn_ack_manager & dack_manager,
front_end_params const & params,
smt_params const & params,
literal_vector const & assigned_literals,
vector<watch_list> & watches
);
@ -266,7 +266,7 @@ namespace smt {
conflict_resolution * mk_conflict_resolution(ast_manager & m,
context & ctx,
dyn_ack_manager & dack_manager,
front_end_params const & params,
smt_params const & params,
literal_vector const & assigned_literals,
vector<watch_list> & watches
);

View file

@ -39,7 +39,7 @@ Revision History:
namespace smt {
context::context(ast_manager & m, front_end_params & p, params_ref const & _p):
context::context(ast_manager & m, smt_params & p, params_ref const & _p):
m_manager(m),
m_fparams(p),
m_params(_p),
@ -102,7 +102,7 @@ namespace smt {
flush();
}
context * context::mk_fresh(symbol const * l, front_end_params * p) {
context * context::mk_fresh(symbol const * l, smt_params * p) {
context * new_ctx = alloc(context, m_manager, p == 0 ? m_fparams : *p);
new_ctx->set_logic(l == 0 ? m_setup.get_logic() : *l);
// copy missing simplifier_plugins

View file

@ -71,7 +71,7 @@ namespace smt {
protected:
ast_manager & m_manager;
front_end_params & m_fparams;
smt_params & m_fparams;
params_ref m_params;
setup m_setup;
volatile bool m_cancel_flag;
@ -220,7 +220,7 @@ namespace smt {
return m_asserted_formulas.get_simplifier();
}
front_end_params & get_fparams() {
smt_params & get_fparams() {
return m_fparams;
}
@ -1314,7 +1314,7 @@ namespace smt {
void assert_expr_core(expr * e, proof * pr);
public:
context(ast_manager & m, front_end_params & fp, params_ref const & p = params_ref());
context(ast_manager & m, smt_params & fp, params_ref const & p = params_ref());
virtual ~context();
@ -1325,7 +1325,7 @@ namespace smt {
If l == 0, then the logic of this context is used in the new context.
If p == 0, then this->m_params is used
*/
context * mk_fresh(symbol const * l = 0, front_end_params * p = 0);
context * mk_fresh(symbol const * l = 0, smt_params * p = 0);
app * mk_eq_atom(expr * lhs, expr * rhs);

View file

@ -19,7 +19,7 @@ Revision History:
#include"smt_kernel.h"
#include"smt_context.h"
#include"ast_smt2_pp.h"
#include"params2front_end_params.h"
#include"params2smt_params.h"
namespace smt {
@ -27,12 +27,12 @@ namespace smt {
smt::context m_kernel;
params_ref m_params;
imp(ast_manager & m, front_end_params & fp, params_ref const & p):
imp(ast_manager & m, smt_params & fp, params_ref const & p):
m_kernel(m, fp, p),
m_params(p) {
}
front_end_params & fparams() {
smt_params & fparams() {
return m_kernel.get_fparams();
}
@ -179,11 +179,11 @@ namespace smt {
}
void updt_params(params_ref const & p) {
params2front_end_params(p, fparams());
params2smt_params(p, fparams());
}
};
kernel::kernel(ast_manager & m, front_end_params & fp, params_ref const & p) {
kernel::kernel(ast_manager & m, smt_params & fp, params_ref const & p) {
m_imp = alloc(imp, m, fp, p);
}
@ -237,7 +237,7 @@ namespace smt {
void kernel::reset() {
ast_manager & _m = m();
front_end_params & fps = m_imp->fparams();
smt_params & fps = m_imp->fparams();
params_ref ps = m_imp->params();
#pragma omp critical (smt_kernel)
{
@ -343,7 +343,7 @@ namespace smt {
}
void kernel::collect_param_descrs(param_descrs & d) {
solver_front_end_params_descrs(d);
solver_smt_params_descrs(d);
}
context & kernel::get_context() {

View file

@ -34,7 +34,7 @@ Revision History:
#include"statistics.h"
#include"smt_failure.h"
struct front_end_params;
struct smt_params;
class progress_callback;
namespace smt {
@ -46,7 +46,7 @@ namespace smt {
struct imp;
imp * m_imp;
public:
kernel(ast_manager & m, front_end_params & fp, params_ref const & p = params_ref());
kernel(ast_manager & m, smt_params & fp, params_ref const & p = params_ref());
~kernel();

View file

@ -281,7 +281,7 @@ namespace smt {
void model_checker::init_aux_context() {
if (!m_fparams) {
m_fparams = alloc(front_end_params, m_context->get_fparams());
m_fparams = alloc(smt_params, m_context->get_fparams());
m_fparams->m_relevancy_lvl = 0; // no relevancy since the model checking problems are quantifier free
}
if (!m_aux_context) {

View file

@ -24,7 +24,7 @@ Revision History:
#include"ast.h"
#include"obj_hashtable.h"
#include"qi_params.h"
#include"front_end_params.h"
#include"smt_params.h"
#include"region.h"
class proto_model;
@ -39,9 +39,9 @@ namespace smt {
class model_checker {
ast_manager & m_manager;
qi_params const & m_params;
// copy of front_end_params for auxiliary context.
// copy of smt_params for auxiliary context.
// the idea is to use a different configuration for the aux context (e.g., disable relevancy)
scoped_ptr<front_end_params> m_fparams;
scoped_ptr<smt_params> m_fparams;
quantifier_manager * m_qm;
context * m_context; // owner of the model checker
obj_map<enode, app *> const * m_root2value; // temp field to store mapping received in the check method.

View file

@ -33,7 +33,7 @@ namespace smt {
struct quantifier_manager::imp {
quantifier_manager & m_wrapper;
context & m_context;
front_end_params & m_params;
smt_params & m_params;
qi_queue m_qi_queue;
obj_map<quantifier, quantifier_stat *> m_quantifier_stat;
quantifier_stat_gen m_qstat_gen;
@ -41,7 +41,7 @@ namespace smt {
scoped_ptr<quantifier_manager_plugin> m_plugin;
unsigned m_num_instances;
imp(quantifier_manager & wrapper, context & ctx, front_end_params & p, quantifier_manager_plugin * plugin):
imp(quantifier_manager & wrapper, context & ctx, smt_params & p, quantifier_manager_plugin * plugin):
m_wrapper(wrapper),
m_context(ctx),
m_params(p),
@ -242,7 +242,7 @@ namespace smt {
};
quantifier_manager::quantifier_manager(context & ctx, front_end_params & fp, params_ref const & p) {
quantifier_manager::quantifier_manager(context & ctx, smt_params & fp, params_ref const & p) {
m_imp = alloc(imp, *this, ctx, fp, mk_default_plugin());
m_imp->m_plugin->set_manager(*this);
}
@ -355,7 +355,7 @@ namespace smt {
#pragma omp critical (quantifier_manager)
{
context & ctx = m_imp->m_context;
front_end_params & p = m_imp->m_params;
smt_params & p = m_imp->m_params;
quantifier_manager_plugin * plugin = m_imp->m_plugin->mk_fresh();
dealloc(m_imp);
m_imp = alloc(imp, *this, ctx, p, plugin);
@ -395,7 +395,7 @@ namespace smt {
// The default plugin uses E-matching, MBQI and quick-checker
class default_qm_plugin : public quantifier_manager_plugin {
quantifier_manager * m_qm;
front_end_params * m_fparams;
smt_params * m_fparams;
context * m_context;
scoped_ptr<mam> m_mam;
scoped_ptr<mam> m_lazy_mam;

View file

@ -25,7 +25,7 @@ Revision History:
#include"smt_types.h"
class proto_model;
struct front_end_params;
struct smt_params;
namespace smt {
class quantifier_manager_plugin;
@ -35,7 +35,7 @@ namespace smt {
struct imp;
imp * m_imp;
public:
quantifier_manager(context & ctx, front_end_params & fp, params_ref const & p);
quantifier_manager(context & ctx, smt_params & fp, params_ref const & p);
~quantifier_manager();
context & get_context() const;

View file

@ -33,7 +33,7 @@ Revision History:
namespace smt {
setup::setup(context & c, front_end_params & params):
setup::setup(context & c, smt_params & params):
m_context(c),
m_manager(c.get_manager()),
m_params(params),

View file

@ -20,7 +20,7 @@ Revision History:
#define _SMT_SETUP_H_
#include"ast.h"
#include"front_end_params.h"
#include"smt_params.h"
struct static_features;
namespace smt {
@ -42,7 +42,7 @@ namespace smt {
class setup {
context & m_context;
ast_manager & m_manager;
front_end_params & m_params;
smt_params & m_params;
symbol m_logic;
bool m_already_configured;
void setup_auto_config();
@ -96,7 +96,7 @@ namespace smt {
void setup_i_arith();
void setup_mi_arith();
public:
setup(context & c, front_end_params & params);
setup(context & c, smt_params & params);
void mark_already_configured() { m_already_configured = true; }
bool already_configured() const { return m_already_configured; }
bool set_logic(symbol logic) {

View file

@ -19,12 +19,12 @@ Notes:
#include"solver_na2as.h"
#include"smt_kernel.h"
#include"reg_decl_plugins.h"
#include"front_end_params.h"
#include"smt_params.h"
namespace smt {
class solver : public solver_na2as {
front_end_params m_params;
smt_params m_params;
smt::kernel * m_context;
progress_callback * m_callback;
public:

View file

@ -19,7 +19,7 @@ Notes:
#include"ctx_solver_simplify_tactic.h"
#include"arith_decl_plugin.h"
#include"front_end_params.h"
#include"smt_params.h"
#include"smt_kernel.h"
#include"ast_pp.h"
#include"mk_simplified_app.h"
@ -28,7 +28,7 @@ Notes:
class ctx_solver_simplify_tactic : public tactic {
ast_manager& m;
params_ref m_params;
front_end_params m_front_p;
smt_params m_front_p;
smt::kernel m_solver;
arith_util m_arith;
mk_simplified_app m_mk_app;

View file

@ -19,12 +19,12 @@ Notes:
#include"tactic.h"
#include"tactical.h"
#include"smt_kernel.h"
#include"front_end_params.h"
#include"params2front_end_params.h"
#include"smt_params.h"
#include"params2smt_params.h"
#include"rewriter_types.h"
class smt_tactic : public tactic {
front_end_params m_params;
smt_params m_params;
params_ref m_params_ref;
statistics m_stats;
std::string m_failure;
@ -51,7 +51,7 @@ public:
SASSERT(m_ctx == 0);
}
front_end_params & fparams() {
smt_params & fparams() {
return m_params;
}
@ -64,15 +64,15 @@ public:
TRACE("smt_tactic", tout << this << "\nupdt_params: " << p << "\n";);
updt_params_core(p);
m_params_ref = p;
// PARAM-TODO update params2front_end_params p ---> m_params
params2front_end_params(m_params_ref, fparams());
// PARAM-TODO update params2smt_params p ---> m_params
params2smt_params(m_params_ref, fparams());
SASSERT(p.get_bool("auto_config", fparams().m_auto_config) == fparams().m_auto_config);
}
virtual void collect_param_descrs(param_descrs & r) {
r.insert("candidate_models", CPK_BOOL, "(default: false) create candidate models even when quantifier or theory reasoning is incomplete.");
r.insert("fail_if_inconclusive", CPK_BOOL, "(default: true) fail if found unsat (sat) for under (over) approximated goal.");
solver_front_end_params_descrs(r);
solver_smt_params_descrs(r);
}
virtual void set_cancel(bool f) {

View file

@ -32,7 +32,7 @@ Revision History:
#include"arith_decl_plugin.h"
#include"smt_justification.h"
#include"map.h"
#include"front_end_params.h"
#include"smt_params.h"
#include"arith_eq_adapter.h"
#include"smt_model_generator.h"
#include"numeral_factory.h"
@ -251,7 +251,7 @@ namespace smt {
}
};
front_end_params & m_params;
smt_params & m_params;
arith_util m_util;
arith_eq_adapter m_arith_eq_adapter;
theory_diff_logic_statistics m_stats;
@ -305,7 +305,7 @@ namespace smt {
void del_clause_eh(clause* cls);
public:
theory_diff_logic(ast_manager& m, front_end_params & params):
theory_diff_logic(ast_manager& m, smt_params & params):
theory(m.get_family_id("arith")),
m_params(params),
m_util(m),

View file

@ -230,12 +230,12 @@ namespace smt {
class clause_subsumption {
ast_manager& m;
grounder m_grounder;
front_end_params m_params;
smt_params m_params;
context m_ctx;
quantifier_ref_vector m_assumptions;
unsigned_vector m_limit;
public:
clause_subsumption(ast_manager& m, front_end_params& p):
clause_subsumption(ast_manager& m, smt_params& p):
m(m), m_grounder(m), m_params(p), m_ctx(m,m_params), m_assumptions(m) {
m_params.m_instgen = false;
}
@ -1131,7 +1131,7 @@ namespace smt {
};
ast_manager& m_manager;
front_end_params& m_params;
smt_params& m_params;
fo_clause_internalizer m_internalizer;
instantiator m_instantiator;
clause_subsumption m_subsumer;
@ -1184,7 +1184,7 @@ namespace smt {
public:
theory_instgen_impl(ast_manager& m, front_end_params& p):
theory_instgen_impl(ast_manager& m, smt_params& p):
theory_instgen(m.get_family_id("inst_gen")),
m_manager(m),
m_params(p),
@ -1277,7 +1277,7 @@ namespace smt {
};
theory_instgen* mk_theory_instgen(ast_manager& m, front_end_params& p) {
theory_instgen* mk_theory_instgen(ast_manager& m, smt_params& p) {
return alloc(theory_instgen_impl, m, p);
}

View file

@ -25,7 +25,7 @@ Revision History:
#define _THEORY_INST_GEN_H_
#include "smt_theory.h"
#include "front_end_params.h"
#include "smt_params.h"
namespace smt {
@ -37,7 +37,7 @@ namespace smt {
virtual char const * get_name() const { return "instgen"; }
};
theory_instgen* mk_theory_instgen(ast_manager& m, front_end_params& p);
theory_instgen* mk_theory_instgen(ast_manager& m, smt_params& p);
};

View file

@ -44,7 +44,7 @@ namespace smt {
{}
};
user_theory::user_theory(ast_manager & m, front_end_params const& p, void * ext_context, void * ext_data, char const * name, family_id fid, user_decl_plugin * dp, user_simplifier_plugin * sp):
user_theory::user_theory(ast_manager & m, smt_params const& p, void * ext_context, void * ext_data, char const * name, family_id fid, user_decl_plugin * dp, user_simplifier_plugin * sp):
theory(fid),
m_params(p),
m_ext_context(ext_context),

View file

@ -43,7 +43,7 @@ namespace smt {
typedef union_find<user_theory> th_union_find;
typedef std::pair<theory_var, theory_var> var_pair;
front_end_params const& m_params;
smt_params const& m_params;
void * m_ext_context;
void * m_ext_data;
std::string m_name;
@ -134,7 +134,7 @@ namespace smt {
void assert_axiom_core(app* axiom);
public:
user_theory(ast_manager & m, front_end_params const& p, void * ext_context, void * ext_data, char const * name, family_id fid, user_decl_plugin * dp, user_simplifier_plugin * sp);
user_theory(ast_manager & m, smt_params const& p, void * ext_context, void * ext_data, char const * name, family_id fid, user_decl_plugin * dp, user_simplifier_plugin * sp);
virtual ~user_theory();
virtual theory * mk_fresh(context * new_ctx);