3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

integrate v2 of lns

This commit is contained in:
Nikolaj Bjorner 2021-02-04 15:47:40 -08:00
parent dfb7c87448
commit 0ec567fe15
18 changed files with 254 additions and 105 deletions

View file

@ -136,6 +136,9 @@ public:
}
void set_phase(expr* e) override { m_solver1->set_phase(e); m_solver2->set_phase(e); }
solver::phase* get_phase() override { auto* p = m_solver1->get_phase(); if (!p) p = m_solver2->get_phase(); return p; }
void set_phase(solver::phase* p) override { m_solver1->set_phase(p); m_solver2->set_phase(p); }
void move_to_front(expr* e) override { m_solver1->move_to_front(e); m_solver2->move_to_front(e); }
void updt_params(params_ref const & p) override {
solver::updt_params(p);

View file

@ -112,6 +112,14 @@ public:
}
virtual void set_phase(expr* e) = 0;
virtual void move_to_front(expr* e) = 0;
class phase { public: virtual ~phase() {} };
virtual phase* get_phase() = 0;
virtual void set_phase(phase* p) = 0;
void assert_expr(ptr_vector<expr> const& ts) {
for (expr* e : ts) assert_expr(e);

View file

@ -69,6 +69,9 @@ public:
solver* base_solver() { return m_base.get(); }
void set_phase(expr* e) override { m_base->set_phase(e); }
phase* get_phase() override { return m_base->get_phase(); }
void set_phase(phase* p) override { m_base->set_phase(p); }
void move_to_front(expr* e) override { m_base->move_to_front(e); }
solver* translate(ast_manager& m, params_ref const& p) override { UNREACHABLE(); return nullptr; }
void updt_params(params_ref const& p) override {

View file

@ -80,6 +80,9 @@ public:
unsigned get_num_assertions() const override;
expr * get_assertion(unsigned idx) const override;
void set_phase(expr* e) override { }
phase* get_phase() override { return nullptr; }
void set_phase(phase* p) override { }
void move_to_front(expr* e) override { }
expr_ref_vector cube(expr_ref_vector& vars, unsigned ) override {