mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +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.
|
||||
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();
|
||||
return sat::check_result::CR_CONTINUE;
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ namespace polysat {
|
|||
for (auto v : sc.vars()) {
|
||||
if (!is_assigned(v))
|
||||
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)
|
||||
continue;
|
||||
if (new_level > lvl)
|
||||
|
@ -412,7 +412,7 @@ namespace polysat {
|
|||
dependency_vector deps;
|
||||
for (auto v : sc.vars())
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -443,7 +443,7 @@ namespace polysat {
|
|||
for (auto const& [sc, d, value] : m_constraint_index)
|
||||
out << sc << " " << d << " := " << value << "\n";
|
||||
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";
|
||||
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_diseq_lin; // entries that have distinct non-zero multipliers
|
||||
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(layers const& ls);
|
||||
|
@ -159,16 +157,6 @@ namespace polysat {
|
|||
*/
|
||||
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.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue