mirror of
https://github.com/Z3Prover/z3
synced 2025-05-13 02:34:43 +00:00
merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
commit
c513f3ca09
883 changed files with 13979 additions and 16480 deletions
|
@ -208,7 +208,7 @@ namespace smt {
|
|||
void new_edge(dl_var src, dl_var dst, unsigned num_edges, edge_id const* edges);
|
||||
|
||||
// Create a new theory variable.
|
||||
virtual theory_var mk_var(enode* n);
|
||||
theory_var mk_var(enode* n) override;
|
||||
|
||||
virtual theory_var mk_var(app* n);
|
||||
|
||||
|
@ -234,85 +234,85 @@ namespace smt {
|
|||
m_agility(0.5),
|
||||
m_is_lia(true),
|
||||
m_non_diff_logic_exprs(false),
|
||||
m_factory(0),
|
||||
m_factory(nullptr),
|
||||
m_nc_functor(*this),
|
||||
m_S(m.limit()),
|
||||
m_num_simplex_edges(0) {
|
||||
}
|
||||
|
||||
virtual ~theory_diff_logic() {
|
||||
~theory_diff_logic() override {
|
||||
reset_eh();
|
||||
}
|
||||
|
||||
virtual theory * mk_fresh(context * new_ctx);
|
||||
theory * mk_fresh(context * new_ctx) override;
|
||||
|
||||
virtual char const * get_name() const { return "difference-logic"; }
|
||||
char const * get_name() const override { return "difference-logic"; }
|
||||
|
||||
/**
|
||||
\brief See comment in theory::mk_eq_atom
|
||||
*/
|
||||
virtual app * mk_eq_atom(expr * lhs, expr * rhs) { return m_util.mk_eq(lhs, rhs); }
|
||||
app * mk_eq_atom(expr * lhs, expr * rhs) override { return m_util.mk_eq(lhs, rhs); }
|
||||
|
||||
virtual void init(context * ctx);
|
||||
void init(context * ctx) override;
|
||||
|
||||
virtual bool internalize_atom(app * atom, bool gate_ctx);
|
||||
bool internalize_atom(app * atom, bool gate_ctx) override;
|
||||
|
||||
virtual bool internalize_term(app * term);
|
||||
bool internalize_term(app * term) override;
|
||||
|
||||
virtual void internalize_eq_eh(app * atom, bool_var v);
|
||||
void internalize_eq_eh(app * atom, bool_var v) override;
|
||||
|
||||
virtual void assign_eh(bool_var v, bool is_true);
|
||||
void assign_eh(bool_var v, bool is_true) override;
|
||||
|
||||
virtual void new_eq_eh(theory_var v1, theory_var v2);
|
||||
void new_eq_eh(theory_var v1, theory_var v2) override;
|
||||
|
||||
virtual bool use_diseqs() const { return true; }
|
||||
bool use_diseqs() const override { return true; }
|
||||
|
||||
virtual void new_diseq_eh(theory_var v1, theory_var v2);
|
||||
void new_diseq_eh(theory_var v1, theory_var v2) override;
|
||||
|
||||
virtual void push_scope_eh();
|
||||
void push_scope_eh() override;
|
||||
|
||||
virtual void pop_scope_eh(unsigned num_scopes);
|
||||
void pop_scope_eh(unsigned num_scopes) override;
|
||||
|
||||
virtual void restart_eh() {
|
||||
void restart_eh() override {
|
||||
m_arith_eq_adapter.restart_eh();
|
||||
}
|
||||
|
||||
virtual void relevant_eh(app* e) {}
|
||||
void relevant_eh(app* e) override {}
|
||||
|
||||
virtual void init_search_eh() {
|
||||
void init_search_eh() override {
|
||||
m_arith_eq_adapter.init_search_eh();
|
||||
}
|
||||
|
||||
virtual final_check_status final_check_eh();
|
||||
final_check_status final_check_eh() override;
|
||||
|
||||
virtual bool is_shared(theory_var v) const {
|
||||
bool is_shared(theory_var v) const override {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool can_propagate() {
|
||||
bool can_propagate() override {
|
||||
return m_asserted_qhead != m_asserted_atoms.size();
|
||||
}
|
||||
|
||||
virtual void propagate();
|
||||
void propagate() override;
|
||||
|
||||
virtual justification * why_is_diseq(theory_var v1, theory_var v2) {
|
||||
justification * why_is_diseq(theory_var v1, theory_var v2) override {
|
||||
NOT_IMPLEMENTED_YET();
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// virtual void flush_eh();
|
||||
|
||||
virtual void reset_eh();
|
||||
void reset_eh() override;
|
||||
|
||||
virtual void init_model(model_generator & m);
|
||||
void init_model(model_generator & m) override;
|
||||
|
||||
virtual model_value_proc * mk_value(enode * n, model_generator & mg);
|
||||
model_value_proc * mk_value(enode * n, model_generator & mg) override;
|
||||
|
||||
virtual bool validate_eq_in_model(theory_var v1, theory_var v2, bool is_true) const;
|
||||
bool validate_eq_in_model(theory_var v1, theory_var v2, bool is_true) const override;
|
||||
|
||||
virtual void display(std::ostream & out) const;
|
||||
void display(std::ostream & out) const override;
|
||||
|
||||
virtual void collect_statistics(::statistics & st) const;
|
||||
void collect_statistics(::statistics & st) const override;
|
||||
|
||||
|
||||
// -----------------------------------
|
||||
|
@ -321,10 +321,10 @@ namespace smt {
|
|||
//
|
||||
// -----------------------------------
|
||||
|
||||
virtual inf_eps maximize(theory_var v, expr_ref& blocker, bool& has_shared);
|
||||
virtual inf_eps value(theory_var v);
|
||||
virtual theory_var add_objective(app* term);
|
||||
expr_ref mk_ge(generic_model_converter& fm, theory_var v, inf_eps const& val);
|
||||
inf_eps maximize(theory_var v, expr_ref& blocker, bool& has_shared) override;
|
||||
inf_eps value(theory_var v) override;
|
||||
theory_var add_objective(app* term) override;
|
||||
|
||||
bool internalize_objective(expr * n, rational const& m, rational& r, objective_term & objective);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue