mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 10:52:02 +00:00
#1284 build problems
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6eb442f06c
commit
f59cf2452d
3 changed files with 31 additions and 25 deletions
|
@ -7,6 +7,7 @@ z3_add_component(core_tactics
|
||||||
ctx_simplify_tactic.cpp
|
ctx_simplify_tactic.cpp
|
||||||
der_tactic.cpp
|
der_tactic.cpp
|
||||||
distribute_forall_tactic.cpp
|
distribute_forall_tactic.cpp
|
||||||
|
dom_simplify_tactic.cpp
|
||||||
elim_term_ite_tactic.cpp
|
elim_term_ite_tactic.cpp
|
||||||
elim_uncnstr_tactic.cpp
|
elim_uncnstr_tactic.cpp
|
||||||
injectivity_tactic.cpp
|
injectivity_tactic.cpp
|
||||||
|
@ -32,6 +33,7 @@ z3_add_component(core_tactics
|
||||||
ctx_simplify_tactic.h
|
ctx_simplify_tactic.h
|
||||||
der_tactic.h
|
der_tactic.h
|
||||||
distribute_forall_tactic.h
|
distribute_forall_tactic.h
|
||||||
|
dom_simplify_tactic.h
|
||||||
elim_term_ite_tactic.h
|
elim_term_ite_tactic.h
|
||||||
elim_uncnstr_tactic.h
|
elim_uncnstr_tactic.h
|
||||||
injectivity_tactic.h
|
injectivity_tactic.h
|
||||||
|
|
|
@ -188,6 +188,7 @@ expr_ref dom_simplify_tactic::simplify_ite(app * ite) {
|
||||||
simplify(child);
|
simplify(child);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pop(scope_level() - old_lvl);
|
pop(scope_level() - old_lvl);
|
||||||
expr_ref new_t = simplify(t);
|
expr_ref new_t = simplify(t);
|
||||||
if (!assert_expr(new_c, true)) {
|
if (!assert_expr(new_c, true)) {
|
||||||
|
|
|
@ -58,11 +58,11 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class dom_simplify_tactic : public tactic {
|
class dom_simplifier {
|
||||||
public:
|
|
||||||
class simplifier {
|
|
||||||
public:
|
public:
|
||||||
virtual ~simplifier() {}
|
dom_simplifier() {}
|
||||||
|
|
||||||
|
virtual ~dom_simplifier() {}
|
||||||
/**
|
/**
|
||||||
\brief assert_expr performs an implicit push
|
\brief assert_expr performs an implicit push
|
||||||
*/
|
*/
|
||||||
|
@ -78,12 +78,15 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void pop(unsigned num_scopes) = 0;
|
virtual void pop(unsigned num_scopes) = 0;
|
||||||
|
|
||||||
virtual simplifier * translate(ast_manager & m);
|
virtual dom_simplifier * translate(ast_manager & m) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class dom_simplify_tactic : public tactic {
|
||||||
|
public:
|
||||||
private:
|
private:
|
||||||
ast_manager& m;
|
ast_manager& m;
|
||||||
simplifier* m_simplifier;
|
dom_simplifier* m_simplifier;
|
||||||
params_ref m_params;
|
params_ref m_params;
|
||||||
expr_ref_vector m_trail, m_args, m_args2;
|
expr_ref_vector m_trail, m_args, m_args2;
|
||||||
obj_map<expr, expr*> m_result;
|
obj_map<expr, expr*> m_result;
|
||||||
|
@ -115,7 +118,7 @@ private:
|
||||||
void init(goal& g);
|
void init(goal& g);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
dom_simplify_tactic(ast_manager & m, simplifier* s, params_ref const & p = params_ref()):
|
dom_simplify_tactic(ast_manager & m, dom_simplifier* s, params_ref const & p = params_ref()):
|
||||||
m(m), m_simplifier(s), m_params(p),
|
m(m), m_simplifier(s), m_params(p),
|
||||||
m_trail(m), m_args(m), m_args2(m),
|
m_trail(m), m_args(m), m_args2(m),
|
||||||
m_dominators(m),
|
m_dominators(m),
|
||||||
|
@ -138,7 +141,7 @@ public:
|
||||||
virtual void cleanup();
|
virtual void cleanup();
|
||||||
};
|
};
|
||||||
|
|
||||||
class expr_substitution_simplifier : public dom_simplify_tactic::simplifier {
|
class expr_substitution_simplifier : public dom_simplifier {
|
||||||
ast_manager& m;
|
ast_manager& m;
|
||||||
expr_substitution m_subst;
|
expr_substitution m_subst;
|
||||||
scoped_expr_substitution m_scoped_substitution;
|
scoped_expr_substitution m_scoped_substitution;
|
||||||
|
@ -160,7 +163,7 @@ public:
|
||||||
|
|
||||||
virtual void pop(unsigned num_scopes) { m_scoped_substitution.pop(num_scopes); }
|
virtual void pop(unsigned num_scopes) { m_scoped_substitution.pop(num_scopes); }
|
||||||
|
|
||||||
virtual simplifier * translate(ast_manager & m) {
|
virtual dom_simplifier * translate(ast_manager & m) {
|
||||||
SASSERT(m_subst.empty());
|
SASSERT(m_subst.empty());
|
||||||
return alloc(expr_substitution_simplifier, m);
|
return alloc(expr_substitution_simplifier, m);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue