3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 08:58:44 +00:00

Add initial value setting for variables in Z3 API, solver, and optimize modules

This commit is contained in:
Nikolaj Bjorner 2024-09-18 16:13:15 +03:00
parent 0ba306e7b3
commit 48712b4f60
31 changed files with 297 additions and 9 deletions

View file

@ -123,6 +123,7 @@ namespace smt {
unsigned m_par_index = 0;
bool m_internalizing_assertions = false;
// -----------------------------------
//
// Equality & Uninterpreted functions
@ -246,6 +247,16 @@ namespace smt {
vector<literal_vector> m_th_case_split_sets;
u_map< vector<literal_vector> > m_literal2casesplitsets; // returns the case split literal sets that a literal participates in
// ----------------------------------
//
// Value initialization
//
// ----------------------------------
vector<std::pair<expr_ref, expr_ref>> m_values;
void initialize_value(expr* var, expr* value);
// -----------------------------------
//
// Accessors
@ -1777,6 +1788,8 @@ namespace smt {
m_user_propagator->register_decide(r);
}
void user_propagate_initialize_value(expr* var, expr* value);
bool watches_fixed(enode* n) const;
bool has_split_candidate(bool_var& var, bool& is_pos);