3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-29 20:08:52 +00:00

improve non-zero witness substitution logic

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2026-02-24 09:19:13 -10:00
parent cf3552c029
commit 0074de0fce
4 changed files with 31 additions and 29 deletions

View file

@ -250,9 +250,9 @@ namespace nlsat {
std::string m_debug_known_solution_file_name;
bool m_apply_lws;
bool m_last_conflict_used_lws = false; // Track if last conflict explanation used levelwise
unsigned m_lws_spt_threshold = 3;
bool m_lws_no_sign_lc = false;
bool m_lws_no_sign_disc = false;
unsigned m_lws_spt_threshold = 3;
bool m_lws_witness_subs_lc = true;
bool m_lws_witness_subs_disc = false;
imp(solver& s, ctx& c):
m_ctx(c),
m_solver(s),
@ -314,8 +314,8 @@ namespace nlsat {
m_debug_known_solution_file_name = p.known_sat_assignment_file_name();
m_apply_lws = p.lws();
m_lws_spt_threshold = p.lws_spt_threshold(); // 0 disables spanning tree
m_lws_no_sign_lc = p.lws_no_sign_lc();
m_lws_no_sign_disc = p.lws_no_sign_disc();
m_lws_witness_subs_lc = p. lws_witness_subs_lc();
m_lws_witness_subs_disc = p.lws_witness_subs_disc();
m_check_lemmas |= !(m_debug_known_solution_file_name.empty());
m_ism.set_seed(m_random_seed);
@ -4722,6 +4722,6 @@ namespace nlsat {
}
bool solver::apply_levelwise() const { return m_imp->m_apply_lws; }
unsigned solver::lws_spt_threshold() const { return m_imp->m_lws_spt_threshold; }
bool solver::lws_no_sign_lc() const { return m_imp->m_lws_no_sign_lc; }
bool solver::lws_no_sign_disc() const { return m_imp->m_lws_no_sign_disc; }
bool solver::lws_witness_subs_lc() const { return m_imp->m_lws_witness_subs_lc; }
bool solver::lws_witness_subs_disc() const { return m_imp->m_lws_witness_subs_disc; }
};