mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2e5eb2dde2
commit
c3c7aad1a8
|
@ -10656,7 +10656,7 @@ class UserPropagateBase:
|
|||
return Z3_solver_propagate_register(self.ctx_ref(), self.solver.solver, e.ast)
|
||||
|
||||
#
|
||||
# Propagation can only be invoked as during a fixed-callback.
|
||||
# Propagation can only be invoked as during a fixed or final callback.
|
||||
#
|
||||
def propagate(self, e, ids, eqs = []):
|
||||
num_fixed = len(ids)
|
||||
|
|
|
@ -1823,8 +1823,9 @@ namespace lp {
|
|||
}
|
||||
}
|
||||
|
||||
SASSERT(column_is_fixed(k));
|
||||
if (j != k) {
|
||||
CTRACE("arith", !column_is_fixed(k), print_terms(tout););
|
||||
// SASSERT(column_is_fixed(k));
|
||||
if (j != k && column_is_fixed(k)) {
|
||||
SASSERT(column_is_int(j) == column_is_int(k));
|
||||
equal_to_j = column_to_reported_index(k);
|
||||
TRACE("lar_solver", tout << "found equal column k = " << k <<
|
||||
|
|
|
@ -69,9 +69,12 @@ theory * user_propagator::mk_fresh(context * new_ctx) {
|
|||
final_check_status user_propagator::final_check_eh() {
|
||||
if (!(bool)m_final_eh)
|
||||
return FC_DONE;
|
||||
force_push();
|
||||
unsigned sz = m_prop.size();
|
||||
m_final_eh(m_user_context, this);
|
||||
return sz == m_prop.size() ? FC_DONE : FC_CONTINUE;
|
||||
propagate();
|
||||
bool done = (sz == m_prop.size()) && !ctx.inconsistent();
|
||||
return done ? FC_DONE : FC_CONTINUE;
|
||||
}
|
||||
|
||||
void user_propagator::new_fixed_eh(theory_var v, expr* value, unsigned num_lits, literal const* jlits) {
|
||||
|
@ -122,11 +125,7 @@ void user_propagator::propagate() {
|
|||
for (auto const& p : prop.m_eqs)
|
||||
m_eqs.push_back(enode_pair(get_enode(p.first), get_enode(p.second)));
|
||||
DEBUG_CODE(for (auto const& p : m_eqs) VERIFY(p.first->get_root() == p.second->get_root()););
|
||||
IF_VERBOSE(5,
|
||||
for (auto lit : m_lits)
|
||||
verbose_stream() << lit << ":" << ctx.get_assignment(lit) << " ";
|
||||
verbose_stream() << "\n";);
|
||||
|
||||
|
||||
if (m.is_false(prop.m_conseq)) {
|
||||
js = ctx.mk_justification(
|
||||
ext_theory_conflict_justification(
|
||||
|
|
Loading…
Reference in a new issue