Skip to content

Commit 2897661

Browse files
register completion with solver
1 parent 1cd1622 commit 2897661

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

‎src/tactic/portfolio/euf_completion_tactic.cpp‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ class euf_side_condition_solver : public euf::side_condition_solver {
3535
public:
3636
euf_side_condition_solver(ast_manager& m, params_ref const& p) : m(m), m_params(p), m_deps(m) {}
3737

38+
void push() override {
39+
init_solver();
40+
m_solver->push();
41+
}
42+
43+
void pop(unsigned n) override {
44+
SASSERT(m_solver.get());
45+
m_solver->pop(n);
46+
}
47+
3848
void add_constraint(expr* f, expr_dependency* d) override {
3949
if (!is_ground(f))
4050
return;
@@ -66,7 +76,7 @@ class euf_side_condition_solver : public euf::side_condition_solver {
6676
}
6777
};
6878

69-
static euf::completion* mk_completion(ast_manager& m, dependent_expr_state& s, params_ref const& p) {
79+
dependent_expr_simplifier* mk_euf_completion_simplifier(ast_manager& m, dependent_expr_state& s, params_ref const& p) {
7080
auto r = alloc(euf::completion, m, s);
7181
auto scs = alloc(euf_side_condition_solver, m, p);
7282
r->set_solver(scs);
@@ -75,5 +85,5 @@ static euf::completion* mk_completion(ast_manager& m, dependent_expr_state& s, p
7585

7686
tactic * mk_euf_completion_tactic(ast_manager& m, params_ref const& p) {
7787
return alloc(dependent_expr_state_tactic, m, p,
78-
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return mk_completion(m, s, p); });
88+
[](auto& m, auto& p, auto &s) -> dependent_expr_simplifier* { return mk_euf_completion_simplifier(m, s, p); });
7989
}

‎src/tactic/portfolio/euf_completion_tactic.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ class ast_manager;
4040
class tactic;
4141

4242
tactic * mk_euf_completion_tactic(ast_manager & m, params_ref const & p = params_ref());
43+
dependent_expr_simplifier* mk_euf_completion_simplifier(ast_manager& m, dependent_expr_state& s, params_ref const& p = params_ref());
4344

4445
/*
4546
ADD_TACTIC("euf-completion", "simplify using equalities.", "mk_euf_completion_tactic(m, p)")
46-
ADD_SIMPLIFIER("euf-completion", "simplify modulo congruence closure.", "alloc(euf::completion, m, s)")
47+
ADD_SIMPLIFIER("euf-completion", "simplify modulo congruence closure.", "mk_euf_completion_simplifier(m, s, p)")
4748
*/
4849

4950

0 commit comments

Comments
 (0)