3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00

fix crashes in nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-12-14 17:22:49 -08:00
parent b28e788371
commit ab39f06df7
2 changed files with 8 additions and 5 deletions

View file

@ -734,8 +734,10 @@ namespace nlsat {
void undo_set_updt(interval_set * old_set) {
SASSERT(m_xk != null_var);
var x = m_xk;
m_ism.dec_ref(m_infeasible[x]);
m_infeasible[x] = old_set;
if (x < m_infeasible.size() && m_infeasible[x]) {
m_ism.dec_ref(m_infeasible[x]);
m_infeasible[x] = old_set;
}
}
void undo_new_stage() {
@ -757,7 +759,8 @@ namespace nlsat {
void undo_updt_eq(atom * a) {
SASSERT(m_xk != null_var);
m_var2eq[m_xk] = a;
if (m_var2eq.size() > m_xk)
m_var2eq[m_xk] = a;
}
template<typename Predicate>

View file

@ -107,8 +107,8 @@ tactic * mk_qfnia_tactic(ast_manager & m, params_ref const & p) {
simp_p.set_bool("som", true); // expand into sums of monomials
return and_then(mk_qfnia_premable(m, p),
or_else(mk_qfnia_sat_solver(m, p),
mk_qfnia_nlsat_solver(m, p),
or_else(mk_qfnia_nlsat_solver(m, p),
mk_qfnia_sat_solver(m, p),
and_then(using_params(mk_simplify_tactic(m), simp_p),
mk_smt_tactic())));
}