mirror of
https://github.com/Z3Prover/z3
synced 2025-07-03 11:25:40 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
f51e200dd8
commit
b82d4c352b
2 changed files with 4 additions and 16 deletions
|
@ -218,7 +218,7 @@ namespace polysat {
|
||||||
|
|
||||||
// If no saturation propagation was possible, explain the conflict using the variable assignment.
|
// If no saturation propagation was possible, explain the conflict using the variable assignment.
|
||||||
m_unsat_core = explain_eval(get_constraint(conflict_idx));
|
m_unsat_core = explain_eval(get_constraint(conflict_idx));
|
||||||
m_unsat_core.push_back(m_constraint_index[conflict_idx.id].d);
|
m_unsat_core.push_back(get_dependency(conflict_idx));
|
||||||
propagate_unsat_core();
|
propagate_unsat_core();
|
||||||
return sat::check_result::CR_CONTINUE;
|
return sat::check_result::CR_CONTINUE;
|
||||||
}
|
}
|
||||||
|
@ -233,7 +233,7 @@ namespace polysat {
|
||||||
for (auto v : sc.vars()) {
|
for (auto v : sc.vars()) {
|
||||||
if (!is_assigned(v))
|
if (!is_assigned(v))
|
||||||
continue;
|
continue;
|
||||||
auto new_level = s.level(m_constraint_index[m_justification[v].id].d);
|
auto new_level = s.level(get_dependency(m_justification[v]));
|
||||||
if (new_level < lvl)
|
if (new_level < lvl)
|
||||||
continue;
|
continue;
|
||||||
if (new_level > lvl)
|
if (new_level > lvl)
|
||||||
|
@ -412,7 +412,7 @@ namespace polysat {
|
||||||
dependency_vector deps;
|
dependency_vector deps;
|
||||||
for (auto v : sc.vars())
|
for (auto v : sc.vars())
|
||||||
if (is_assigned(v))
|
if (is_assigned(v))
|
||||||
deps.push_back(m_constraint_index[m_justification[v].id].d);
|
deps.push_back(get_dependency(m_justification[v]));
|
||||||
return deps;
|
return deps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ namespace polysat {
|
||||||
for (auto const& [sc, d, value] : m_constraint_index)
|
for (auto const& [sc, d, value] : m_constraint_index)
|
||||||
out << sc << " " << d << " := " << value << "\n";
|
out << sc << " " << d << " := " << value << "\n";
|
||||||
for (unsigned i = 0; i < m_vars.size(); ++i)
|
for (unsigned i = 0; i < m_vars.size(); ++i)
|
||||||
out << m_vars[i] << " := " << m_values[i] << " " << m_constraint_index[m_justification[i].id].d << "\n";
|
out << m_vars[i] << " := " << m_values[i] << " " << get_dependency(m_justification[i]) << "\n";
|
||||||
m_var_queue.display(out << "vars ") << "\n";
|
m_var_queue.display(out << "vars ") << "\n";
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,8 +111,6 @@ namespace polysat {
|
||||||
ptr_vector<entry> m_equal_lin; // entries that have non-unit multipliers, but are equal
|
ptr_vector<entry> m_equal_lin; // entries that have non-unit multipliers, but are equal
|
||||||
ptr_vector<entry> m_diseq_lin; // entries that have distinct non-zero multipliers
|
ptr_vector<entry> m_diseq_lin; // entries that have distinct non-zero multipliers
|
||||||
ptr_vector<entry> m_explain; // entries that explain the current propagation or conflict
|
ptr_vector<entry> m_explain; // entries that explain the current propagation or conflict
|
||||||
constraint_or_dependency_list m_core; // forbidden interval core
|
|
||||||
bool m_has_core = false;
|
|
||||||
|
|
||||||
bool well_formed(entry* e);
|
bool well_formed(entry* e);
|
||||||
bool well_formed(layers const& ls);
|
bool well_formed(layers const& ls);
|
||||||
|
@ -159,16 +157,6 @@ namespace polysat {
|
||||||
*/
|
*/
|
||||||
dependency_vector explain();
|
dependency_vector explain();
|
||||||
|
|
||||||
/*
|
|
||||||
* flag whether there is a forbidden interval core
|
|
||||||
*/
|
|
||||||
bool has_core() const { return m_has_core; }
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Retrieve lemma corresponding to forbidden interval constraints
|
|
||||||
*/
|
|
||||||
constraint_or_dependency_list const& get_core() { SASSERT(m_has_core); return m_core; }
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Register constraint at index 'idx' as unitary in v.
|
* Register constraint at index 'idx' as unitary in v.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue