mirror of
https://github.com/Z3Prover/z3
synced 2025-08-26 21:16:02 +00:00
fixes to #7250
This commit is contained in:
parent
49610f5159
commit
b831a589e5
8 changed files with 47 additions and 9 deletions
|
@ -43,6 +43,13 @@ namespace euf {
|
|||
m_proof_initialized = true;
|
||||
}
|
||||
|
||||
enode_pair solver::get_justification_eq(size_t j) {
|
||||
auto* ext = sat::constraint_base::to_extension(j);
|
||||
SASSERT(ext != this);
|
||||
auto s = fid2solver(ext->get_id());
|
||||
return s->get_justification_eq(j);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log justifications.
|
||||
* is_euf - true if l is justified by congruence closure. In this case create a congruence closure proof.
|
||||
|
@ -63,7 +70,8 @@ namespace euf {
|
|||
if (is_literal(e))
|
||||
m_hint_lits.push_back(get_literal(e));
|
||||
else {
|
||||
auto [x, y] = th_explain::from_index(get_justification(e)).eq_consequent();
|
||||
SASSERT(is_justification(e));
|
||||
auto [x, y] = get_justification_eq(get_justification(e));
|
||||
eqs.push_back(m.mk_eq(x->get_expr(), y->get_expr()));
|
||||
set_tmp_bool_var(nv, eqs.back());
|
||||
m_hint_lits.push_back(literal(nv, false));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue