mirror of
https://github.com/Z3Prover/z3
synced 2025-05-02 13:27:01 +00:00
simplify factory of dependent_expr_state_tactic
And as a side-effect, remove heap allocations for factories
This commit is contained in:
parent
de916f50d6
commit
eb8c53c164
12 changed files with 26 additions and 123 deletions
|
@ -21,20 +21,11 @@ Author:
|
|||
#include "tactic/dependent_expr_state_tactic.h"
|
||||
#include "ast/simplifiers/demodulator_simplifier.h"
|
||||
|
||||
|
||||
class demodulator_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(demodulator_simplifier, m, p, s);
|
||||
}
|
||||
};
|
||||
|
||||
inline tactic * mk_demodulator_tactic(ast_manager& m, params_ref const& p = params_ref()) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(demodulator_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(demodulator_simplifier, m, p, s); });
|
||||
}
|
||||
|
||||
/*
|
||||
ADD_TACTIC("demodulator", "solve for variables.", "mk_demodulator_tactic(m, p)")
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -21,20 +21,11 @@ Author:
|
|||
#include "tactic/dependent_expr_state_tactic.h"
|
||||
#include "ast/simplifiers/elim_unconstrained.h"
|
||||
|
||||
class elim_uncnstr2_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(elim_unconstrained, m, s);
|
||||
}
|
||||
};
|
||||
|
||||
inline tactic * mk_elim_uncnstr2_tactic(ast_manager & m, params_ref const & p = params_ref()) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(elim_uncnstr2_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(elim_unconstrained, m, s); });
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
ADD_TACTIC("elim-uncnstr2", "eliminate unconstrained variables.", "mk_elim_uncnstr2_tactic(m, p)")
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -21,20 +21,11 @@ Author:
|
|||
#include "tactic/tactic.h"
|
||||
#include "tactic/dependent_expr_state_tactic.h"
|
||||
|
||||
|
||||
class eliminate_predicates_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(eliminate_predicates, m, s);
|
||||
}
|
||||
};
|
||||
|
||||
inline tactic * mk_eliminate_predicates_tactic(ast_manager& m, params_ref const& p = params_ref()) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(eliminate_predicates_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(eliminate_predicates, m, s); });
|
||||
}
|
||||
|
||||
/*
|
||||
ADD_TACTIC("elim-predicates", "eliminate predicates.", "mk_eliminate_predicates_tactic(m, p)")
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -20,13 +20,7 @@ Author:
|
|||
#include "ast/simplifiers/euf_completion.h"
|
||||
#include "tactic/core/euf_completion_tactic.h"
|
||||
|
||||
class euf_completion_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(euf::completion, m, s);
|
||||
}
|
||||
};
|
||||
|
||||
tactic * mk_euf_completion_tactic(ast_manager& m, params_ref const& p) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(euf_completion_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(euf::completion, m, s); });
|
||||
}
|
||||
|
|
|
@ -14,8 +14,6 @@ Author:
|
|||
Nikolaj Bjorner (nbjorner) 2022-11-24
|
||||
|
||||
--*/
|
||||
|
||||
#include "util/params.h"
|
||||
#pragma once
|
||||
|
||||
#include "util/params.h"
|
||||
|
@ -23,19 +21,11 @@ Author:
|
|||
#include "tactic/dependent_expr_state_tactic.h"
|
||||
#include "ast/simplifiers/propagate_values.h"
|
||||
|
||||
class propagate_values2_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(propagate_values, m, p, s);
|
||||
}
|
||||
};
|
||||
|
||||
inline tactic * mk_propagate_values2_tactic(ast_manager & m, params_ref const & p = params_ref()) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(propagate_values2_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(propagate_values, m, p, s); });
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
ADD_TACTIC("propagate-values2", "propagate constants.", "mk_propagate_values2_tactic(m, p)")
|
||||
*/
|
||||
|
||||
|
|
|
@ -21,20 +21,11 @@ Author:
|
|||
#include "tactic/dependent_expr_state_tactic.h"
|
||||
#include "ast/simplifiers/solve_eqs.h"
|
||||
|
||||
|
||||
class solve_eqs_tactic_factory : public dependent_expr_simplifier_factory {
|
||||
public:
|
||||
dependent_expr_simplifier* mk(ast_manager& m, params_ref const& p, dependent_expr_state& s) override {
|
||||
return alloc(euf::solve_eqs, m, s);
|
||||
}
|
||||
};
|
||||
|
||||
inline tactic * mk_solve_eqs_tactic(ast_manager& m, params_ref const& p = params_ref()) {
|
||||
return alloc(dependent_expr_state_tactic, m, p, alloc(solve_eqs_tactic_factory));
|
||||
return alloc(dependent_expr_state_tactic, m, p,
|
||||
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return alloc(euf::solve_eqs, m, s); });
|
||||
}
|
||||
|
||||
/*
|
||||
ADD_TACTIC("solve-eqs", "solve for variables.", "mk_solve_eqs_tactic(m, p)")
|
||||
*/
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue