mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
delay internalize (#4714)
* adding array solver Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * use default in model construction Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * debug delay internalization Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * bv Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * get rid of implied values and bounds Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * redo egraph * remove out Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remove files Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
25724401cf
commit
367e5fdd52
60 changed files with 1343 additions and 924 deletions
|
@ -184,28 +184,6 @@ public:
|
|||
return m_solver1->get_scope_level();
|
||||
}
|
||||
|
||||
expr_ref get_implied_value(expr* e) override {
|
||||
if (m_use_solver1_results)
|
||||
return m_solver1->get_implied_value(e);
|
||||
else
|
||||
return m_solver2->get_implied_value(e);
|
||||
}
|
||||
|
||||
expr_ref get_implied_lower_bound(expr* e) override {
|
||||
if (m_use_solver1_results)
|
||||
return m_solver1->get_implied_lower_bound(e);
|
||||
else
|
||||
return m_solver2->get_implied_lower_bound(e);
|
||||
}
|
||||
|
||||
expr_ref get_implied_upper_bound(expr* e) override {
|
||||
if (m_use_solver1_results)
|
||||
return m_solver1->get_implied_upper_bound(e);
|
||||
else
|
||||
return m_solver2->get_implied_upper_bound(e);
|
||||
}
|
||||
|
||||
|
||||
lbool get_consequences(expr_ref_vector const& asms, expr_ref_vector const& vars, expr_ref_vector& consequences) override {
|
||||
switch_inc_mode();
|
||||
m_use_solver1_results = false;
|
||||
|
|
|
@ -227,17 +227,6 @@ public:
|
|||
|
||||
virtual expr_ref_vector cube(expr_ref_vector& vars, unsigned backtrack_level) = 0;
|
||||
|
||||
/**
|
||||
\brief retrieve fixed value assignment in current solver state, if it is implied.
|
||||
*/
|
||||
virtual expr_ref get_implied_value(expr* e) = 0;
|
||||
|
||||
/**
|
||||
\brief retrieve upper/lower bound for arithmetic term, if it is implied.
|
||||
*/
|
||||
virtual expr_ref get_implied_lower_bound(expr* e) = 0;
|
||||
|
||||
virtual expr_ref get_implied_upper_bound(expr* e) = 0;
|
||||
|
||||
class propagate_callback {
|
||||
public:
|
||||
|
|
|
@ -127,18 +127,6 @@ public:
|
|||
return m_base->get_trail();
|
||||
}
|
||||
|
||||
expr_ref get_implied_value(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
expr_ref get_implied_lower_bound(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
expr_ref get_implied_upper_bound(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
lbool check_sat_core2(unsigned num_assumptions, expr * const * assumptions) override {
|
||||
SASSERT(!m_pushed || get_scope_level() > 0);
|
||||
m_proof.reset();
|
||||
|
|
|
@ -96,19 +96,6 @@ public:
|
|||
expr_ref_vector get_trail() override {
|
||||
throw default_exception("cannot retrieve trail from solvers created using tactics");
|
||||
}
|
||||
|
||||
expr_ref get_implied_value(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
expr_ref get_implied_lower_bound(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
expr_ref get_implied_upper_bound(expr* e) override {
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
ast_manager& tactic2solver::get_manager() const { return m_assertions.get_manager(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue