3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-05 09:37:44 +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

@ -32,7 +32,7 @@ namespace datalog {
class bmc {
context& m_ctx;
ast_manager& m;
front_end_params m_fparams;
smt_params m_fparams;
smt::kernel m_solver;
obj_map<func_decl, sort*> m_pred2sort;
obj_map<sort, func_decl*> m_sort2pred;

View file

@ -33,8 +33,8 @@ Notes:
class dl_context {
// PARAM-TODO temp HACK: added m_params field because cmd_context does not have front_end_params anymore
front_end_params m_params;
// PARAM-TODO temp HACK: added m_params field because cmd_context does not have smt_params anymore
smt_params m_params;
cmd_context & m_cmd;
dl_collected_cmds* m_collected_cmds;
unsigned m_ref_count;

View file

@ -226,7 +226,7 @@ namespace datalog {
//
// -----------------------------------
context::context(ast_manager & m, front_end_params& fp, params_ref const& pa):
context::context(ast_manager & m, smt_params& fp, params_ref const& pa):
m(m),
m_fparams(fp),
m_params(pa),

View file

@ -24,7 +24,7 @@ Revision History:
#undef max
#endif
#include"arith_decl_plugin.h"
#include"front_end_params.h"
#include"smt_params.h"
#include"map.h"
#include"th_rewriter.h"
#include"str_hashtable.h"
@ -78,7 +78,7 @@ namespace datalog {
typedef vector<std::pair<func_decl*,relation_fact> > fact_vector;
ast_manager & m;
front_end_params& m_fparams;
smt_params& m_fparams;
params_ref m_params;
dl_decl_util m_decl_util;
th_rewriter m_rewriter;
@ -122,7 +122,7 @@ namespace datalog {
public:
context(ast_manager & m, front_end_params& params, params_ref const& p = params_ref());
context(ast_manager & m, smt_params& params, params_ref const& p = params_ref());
~context();
void reset();
@ -149,7 +149,7 @@ namespace datalog {
relation_manager & get_rmanager() { return m_rmanager; }
const relation_manager & get_rmanager() const { return m_rmanager; }
rule_manager & get_rule_manager() { return m_rule_manager; }
front_end_params & get_fparams() const { return m_fparams; }
smt_params & get_fparams() const { return m_fparams; }
params_ref const& get_params() const { return m_params; }
DL_ENGINE get_engine() { configure_engine(); return m_engine; }
th_rewriter& get_rewriter() { return m_rewriter; }

View file

@ -129,7 +129,7 @@ namespace datalog {
}
IF_VERBOSE(10, verbose_stream() << "Checking emptiness...\n"; );
front_end_params& params = get_plugin().get_fparams();
smt_params& params = get_plugin().get_fparams();
// [Leo]: asserted_formulas do not have support for der.
// We should use the tactics der.
// flet<bool> flet2(params.m_der, true);
@ -182,7 +182,7 @@ namespace datalog {
expr_ref fml_free(m), fml_inst(m);
fml_free = m.mk_and(facts, m.mk_not(get_relation()));
instantiate(fml_free, fml_inst);
front_end_params& params = get_plugin().get_fparams();
smt_params& params = get_plugin().get_fparams();
// [Leo]: asserted_formulas do not have support for qe nor der.
// We should use the tactics qe and der.
// BTW, qe at asserted_formulas was disabled when we moved to codeplex, but the field m_quant_elim was not deleted.
@ -239,7 +239,7 @@ namespace datalog {
void smt_relation::display_finite(std::ostream & out) const {
ast_manager& m = get_manager();
front_end_params& params = get_plugin().get_fparams();
smt_params& params = get_plugin().get_fparams();
expr* r = get_relation();
expr_ref tmp(m);
expr_ref_vector values(m), eqs(m);
@ -524,7 +524,7 @@ namespace datalog {
expr_ref rInst(m), srcInst(m), tmp(m), tmp1(m);
expr_ref notR(m), srcGround(m);
front_end_params& fparams = get(r).get_plugin().get_fparams();
smt_params& fparams = get(r).get_plugin().get_fparams();
params_ref const& params = get(r).get_plugin().get_params();
get(r).instantiate(get(r).get_relation(), rInst);
@ -730,8 +730,8 @@ namespace datalog {
return symbol(m_counter++);
}
front_end_params& smt_relation_plugin::get_fparams() {
return const_cast<front_end_params&>(get_manager().get_context().get_fparams());
smt_params& smt_relation_plugin::get_fparams() {
return const_cast<smt_params&>(get_manager().get_context().get_fparams());
}
params_ref const& smt_relation_plugin::get_params() {

View file

@ -20,7 +20,7 @@ Revision History:
#define _DL_SMT_RELATION_H_
#include "dl_base.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "params.h"
namespace datalog {
@ -70,7 +70,7 @@ namespace datalog {
symbol fresh_name();
front_end_params& get_fparams();
smt_params& get_fparams();
params_ref const& get_params();

View file

@ -26,7 +26,7 @@ class horn_tactic : public tactic {
struct imp {
ast_manager& m;
datalog::context m_ctx;
front_end_params m_fparams;
smt_params m_fparams;
imp(ast_manager & m, params_ref const & p):
m(m),

View file

@ -72,7 +72,7 @@ namespace nlarith {
bool m_enable_linear;
app_ref m_zero;
app_ref m_one;
front_end_params m_params;
smt_params m_params;
basic_simplifier_plugin m_bs;
arith_simplifier_plugin m_rw;
arith_rewriter m_rw1;

View file

@ -1087,7 +1087,7 @@ namespace pdr {
// context
context::context(
front_end_params& fparams,
smt_params& fparams,
params_ref const& params,
ast_manager& m
)

View file

@ -285,7 +285,7 @@ namespace pdr {
void reset() { memset(this, 0, sizeof(*this)); }
};
front_end_params& m_fparams;
smt_params& m_fparams;
params_ref const& m_params;
ast_manager& m;
datalog::context* m_context;
@ -343,13 +343,13 @@ namespace pdr {
We check whether there is some reachable state of the relation checked_relation.
*/
context(
front_end_params& fparams,
smt_params& fparams,
params_ref const& params,
ast_manager& m);
~context();
front_end_params& get_fparams() const { return m_fparams; }
smt_params& get_fparams() const { return m_fparams; }
params_ref const& get_params() const { return m_params; }
ast_manager& get_manager() const { return m; }
manager& get_pdr_manager() { return m_pm; }

View file

@ -244,7 +244,7 @@ namespace pdr {
}
};
farkas_learner::farkas_learner(front_end_params& params, ast_manager& outer_mgr)
farkas_learner::farkas_learner(smt_params& params, ast_manager& outer_mgr)
: m_proof_params(get_proof_params(params)),
m_pr(PROOF_MODE),
p2o(m_pr, outer_mgr),
@ -254,8 +254,8 @@ namespace pdr {
m_ctx = alloc(smt::kernel, m_pr, m_proof_params);
}
front_end_params farkas_learner::get_proof_params(front_end_params& orig_params) {
front_end_params res(orig_params);
smt_params farkas_learner::get_proof_params(smt_params& orig_params) {
smt_params res(orig_params);
res.m_proof_mode = PROOF_MODE;
res.m_arith_bound_prop = BP_NONE;
// temp hack to fix the build
@ -796,7 +796,7 @@ namespace pdr {
void farkas_learner::test() {
front_end_params params;
smt_params params;
enable_trace("farkas_learner");
bool res;
@ -883,7 +883,7 @@ namespace pdr {
end = p->get_benchmark()->end_formulas();
B = m.mk_and(static_cast<unsigned>(end-it), it);
front_end_params params;
smt_params params;
pdr::farkas_learner fl(params, m);
expr_ref_vector lemmas(m);
bool res = fl.get_lemma_guesses(A, B, lemmas);

View file

@ -26,7 +26,7 @@ Revision History:
#include "smt_kernel.h"
#include "bool_rewriter.h"
#include "pdr_util.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "tactic.h"
namespace pdr {
@ -39,12 +39,12 @@ class farkas_learner {
typedef obj_hashtable<expr> expr_set;
front_end_params m_proof_params;
smt_params m_proof_params;
ast_manager m_pr;
scoped_ptr<smt::kernel> m_ctx;
static front_end_params get_proof_params(front_end_params& orig_params);
static smt_params get_proof_params(smt_params& orig_params);
//
// all ast objects passed to private functions have m_proof_mgs as their ast_manager
@ -72,7 +72,7 @@ class farkas_learner {
static void test();
public:
farkas_learner(front_end_params& params, ast_manager& m);
farkas_learner(smt_params& params, ast_manager& m);
/**
All ast objects have the ast_manager which was passed as

View file

@ -103,7 +103,7 @@ namespace pdr {
// weaken predecessor.
//
core_farkas_generalizer::core_farkas_generalizer(context& ctx, ast_manager& m, front_end_params& p):
core_farkas_generalizer::core_farkas_generalizer(context& ctx, ast_manager& m, smt_params& p):
core_generalizer(ctx),
m_farkas_learner(p, m)
{}

View file

@ -36,7 +36,7 @@ namespace pdr {
class core_farkas_generalizer : public core_generalizer {
farkas_learner m_farkas_learner;
public:
core_farkas_generalizer(context& ctx, ast_manager& m, front_end_params& p);
core_farkas_generalizer(context& ctx, ast_manager& m, smt_params& p);
virtual ~core_farkas_generalizer() {}
virtual void operator()(model_node& n, expr_ref_vector& core, bool& uses_level);
virtual void collect_statistics(statistics& st) const;

View file

@ -306,7 +306,7 @@ lbool interpolant_provider_impl::get_interpolant(expr * f1, expr * f2, expr_ref&
return l_undef;
}
front_end_params dummy_params;
smt_params dummy_params;
cmd_context cctx(&dummy_params, false, &m);
for_each_expr(used_symbol_inserter(cctx), f1);

View file

@ -166,7 +166,7 @@ namespace pdr {
return res;
}
manager::manager(front_end_params& fparams, params_ref const& params, ast_manager& manager) :
manager::manager(smt_params& fparams, params_ref const& params, ast_manager& manager) :
m(manager),
m_fparams(fparams),
m_params(params),

View file

@ -78,7 +78,7 @@ namespace pdr {
class manager
{
ast_manager& m;
front_end_params& m_fparams;
smt_params& m_fparams;
params_ref const& m_params;
mutable bool_rewriter m_brwr;
@ -110,11 +110,11 @@ namespace pdr {
void add_new_state(func_decl * s);
public:
manager(front_end_params& fparams, params_ref const& params,
manager(smt_params& fparams, params_ref const& params,
ast_manager & manager);
ast_manager& get_manager() const { return m; }
front_end_params& get_fparams() const { return m_fparams; }
smt_params& get_fparams() const { return m_fparams; }
params_ref const& get_params() const { return m_params; }
bool_rewriter& get_brwr() const { return m_brwr; }

View file

@ -24,7 +24,7 @@ Revision History:
#include "ast_smt2_pp.h"
#include "dl_util.h"
#include "model_pp.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "datatype_decl_plugin.h"
#include "bv_decl_plugin.h"
#include "pdr_farkas_learner.h"

View file

@ -35,7 +35,7 @@ namespace pdr {
class prop_solver {
private:
front_end_params& m_fparams;
smt_params& m_fparams;
ast_manager& m;
manager& m_pm;
symbol m_name;

View file

@ -206,7 +206,7 @@ namespace pdr {
datalog::scoped_fine_proof _scp(m);
expr_ref_vector fmls(m);
front_end_params fparams;
smt_params fparams;
fparams.m_proof_mode = PGM_FINE;
fparams.m_mbqi = true;

View file

@ -21,7 +21,7 @@ Revision History:
#include "has_free_vars.h"
#include "ast_pp.h"
#include <sstream>
#include "front_end_params.h"
#include "smt_params.h"
namespace pdr {
@ -93,7 +93,7 @@ namespace pdr {
return m_context.get_proof();
}
smt_context_manager::smt_context_manager(front_end_params& fp, params_ref const& p, ast_manager& m):
smt_context_manager::smt_context_manager(smt_params& fp, params_ref const& p, ast_manager& m):
m_fparams(fp),
m(m),
m_max_num_contexts(p.get_uint("max_num_contexts", 500)),

View file

@ -88,7 +88,7 @@ namespace pdr {
};
class smt_context_manager {
front_end_params& m_fparams;
smt_params& m_fparams;
ast_manager& m;
unsigned m_max_num_contexts;
ptr_vector<smt::kernel> m_contexts;
@ -96,7 +96,7 @@ namespace pdr {
app_ref_vector m_predicate_list;
func_decl_set m_predicate_set;
public:
smt_context_manager(front_end_params& fp, params_ref const& p, ast_manager& m);
smt_context_manager(smt_params& fp, params_ref const& p, ast_manager& m);
~smt_context_manager();
smt_context* mk_fresh();
void collect_statistics(statistics& st) const;

View file

@ -30,7 +30,7 @@ Notes:
#include "bool_rewriter.h"
#include "dl_util.h"
#include "for_each_expr.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "model.h"
#include "model_v2_pp.h"
#include "ref_vector.h"

View file

@ -1319,7 +1319,7 @@ namespace qe {
public:
quant_elim_plugin(ast_manager& m, quant_elim& qe, front_end_params& p):
quant_elim_plugin(ast_manager& m, quant_elim& qe, smt_params& p):
m(m),
m_qe(qe),
m_rewriter(m),
@ -1959,7 +1959,7 @@ namespace qe {
class quant_elim_new : public quant_elim {
ast_manager& m;
front_end_params& m_fparams;
smt_params& m_fparams;
expr_ref m_assumption;
bool m_produce_models;
ptr_vector<quant_elim_plugin> m_plugins;
@ -1968,7 +1968,7 @@ namespace qe {
bool m_eliminate_variables_as_block;
public:
quant_elim_new(ast_manager& m, front_end_params& p) :
quant_elim_new(ast_manager& m, smt_params& p) :
m(m),
m_fparams(p),
m_assumption(m),
@ -2165,7 +2165,7 @@ namespace qe {
// ------------------------------------------------
// expr_quant_elim
expr_quant_elim::expr_quant_elim(ast_manager& m, front_end_params const& fp, params_ref const& p):
expr_quant_elim::expr_quant_elim(ast_manager& m, smt_params const& fp, params_ref const& p):
m(m),
m_fparams(fp),
m_params(p),
@ -2212,7 +2212,7 @@ namespace qe {
void expr_quant_elim::init_qe() {
if (!m_qe) {
m_qe = alloc(quant_elim_new, m, const_cast<front_end_params&>(m_fparams));
m_qe = alloc(quant_elim_new, m, const_cast<smt_params&>(m_fparams));
}
}
@ -2399,7 +2399,7 @@ namespace qe {
cache_result(q, r, pr);
}
expr_quant_elim_star1::expr_quant_elim_star1(ast_manager& m, front_end_params const& p):
expr_quant_elim_star1::expr_quant_elim_star1(ast_manager& m, smt_params const& p):
simplifier(m), m_quant_elim(m, p), m_assumption(m.mk_true())
{
}
@ -2437,7 +2437,7 @@ namespace qe {
class simplify_solver_context : public i_solver_context {
ast_manager& m;
front_end_params m_fparams;
smt_params m_fparams;
app_ref_vector* m_vars;
expr_ref* m_fml;
ptr_vector<contains_app> m_contains;
@ -2612,7 +2612,7 @@ namespace qe {
}
void simplify_exists(app_ref_vector& vars, expr_ref& fml) {
front_end_params params;
smt_params params;
ast_manager& m = fml.get_manager();
simplify_solver_context ctx(m);
ctx.solve(fml, vars);

View file

@ -22,7 +22,7 @@ Revision History:
#define __QE_H__
#include "ast.h"
#include "front_end_params.h"
#include "smt_params.h"
#include "statistics.h"
#include "lbool.h"
#include "expr_functors.h"
@ -221,7 +221,7 @@ namespace qe {
qe_solver_plugin* mk_array_plugin(i_solver_context& ctx);
qe_solver_plugin* mk_arith_plugin(i_solver_context& ctx, bool produce_models, front_end_params& p);
qe_solver_plugin* mk_arith_plugin(i_solver_context& ctx, bool produce_models, smt_params& p);
class def_vector {
func_decl_ref_vector m_vars;
@ -275,7 +275,7 @@ namespace qe {
class expr_quant_elim {
ast_manager& m;
front_end_params const& m_fparams;
smt_params const& m_fparams;
params_ref m_params;
expr_ref_vector m_trail;
obj_map<expr,expr*> m_visited;
@ -283,7 +283,7 @@ namespace qe {
expr* m_assumption;
bool m_use_new_qe;
public:
expr_quant_elim(ast_manager& m, front_end_params const& fp, params_ref const& p = params_ref());
expr_quant_elim(ast_manager& m, smt_params const& fp, params_ref const& p = params_ref());
~expr_quant_elim();
void operator()(expr* assumption, expr* fml, expr_ref& result);
@ -331,7 +331,7 @@ namespace qe {
virtual void reduce1_quantifier(quantifier * q);
virtual bool is_target(quantifier * q) const { return q->get_num_patterns() == 0 && q->get_num_no_patterns() == 0; }
public:
expr_quant_elim_star1(ast_manager & m, front_end_params const& p);
expr_quant_elim_star1(ast_manager & m, smt_params const& p);
virtual ~expr_quant_elim_star1() {}
void collect_statistics(statistics & st) const {

View file

@ -98,7 +98,7 @@ namespace qe {
bool_rewriter m_bool_rewriter;
arith_rewriter m_arith_rewriter;
arith_qe_util(ast_manager& m, front_end_params& p, i_solver_context& ctx) :
arith_qe_util(ast_manager& m, smt_params& p, i_solver_context& ctx) :
m(m),
m_ctx(ctx),
m_arith(m),
@ -1511,7 +1511,7 @@ public:
subst_cache m_subst;
public:
arith_plugin(i_solver_context& ctx, ast_manager& m, front_end_params& p):
arith_plugin(i_solver_context& ctx, ast_manager& m, smt_params& p):
qe_solver_plugin(m, m.get_family_id("arith"), ctx),
m_util(m, p, ctx),
m_trail(m)
@ -2562,7 +2562,7 @@ public:
};
qe_solver_plugin* mk_arith_plugin(i_solver_context& ctx, bool produce_models, front_end_params& p) {
qe_solver_plugin* mk_arith_plugin(i_solver_context& ctx, bool produce_models, smt_params& p) {
if (p.m_nlquant_elim) {
return alloc(nlarith_plugin, ctx, ctx.get_manager(), produce_models);
}

View file

@ -38,7 +38,7 @@ public:
}
virtual void execute(cmd_context & ctx) {
front_end_params par;
smt_params par;
proof_ref pr(ctx.m());
qe::expr_quant_elim_star1 qe(ctx.m(), par);
expr_ref result(ctx.m());

View file

@ -59,7 +59,7 @@ namespace qe {
ast_manager& m;
expr_ref m_false;
volatile bool m_cancel;
front_end_params m_fparams;
smt_params m_fparams;
params_ref m_params;
unsigned m_extrapolate_strategy_param;
bool m_projection_mode_param;

View file

@ -24,7 +24,7 @@ Revision History:
class qe_tactic : public tactic {
struct imp {
ast_manager & m;
front_end_params m_fparams;
smt_params m_fparams;
volatile bool m_cancel;
qe::expr_quant_elim m_qe;

View file

@ -21,7 +21,7 @@ Author:
struct unit_subsumption_tactic : public tactic {
ast_manager& m;
params_ref m_params;
front_end_params m_fparams;
smt_params m_fparams;
volatile bool m_cancel;
smt::context m_context;
expr_ref_vector m_clauses;

View file

@ -45,7 +45,7 @@ Notes:
#include"arith_decl_plugin.h"
#include"for_each_expr.h"
#include"extension_model_converter.h"
#include"params2front_end_params.h"
#include"params2smt_params.h"
#include"ast_smt2_pp.h"
class vsubst_tactic : public tactic {
@ -93,8 +93,8 @@ class vsubst_tactic : public tactic {
throw tactic_exception("there are no real variables");
}
front_end_params params;
params2front_end_params(p, params);
smt_params params;
params2smt_params(p, params);
params.m_model = false;
flet<bool> fl1(params.m_nlquant_elim, true);
flet<bool> fl2(params.m_nl_arith_gb, false);