mirror of
https://github.com/Z3Prover/z3
synced 2026-07-25 08:22:35 +00:00
change relevancy marking to top-level on inconsistent states
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
ad063580dc
commit
661bb13039
1 changed files with 5 additions and 4 deletions
|
|
@ -1779,15 +1779,16 @@ namespace smt {
|
||||||
void internalize_proxies(expr_ref_vector const& asms, vector<std::pair<expr*,expr_ref>>& asm2proxy);
|
void internalize_proxies(expr_ref_vector const& asms, vector<std::pair<expr*,expr_ref>>& asm2proxy);
|
||||||
|
|
||||||
void internalize_instance(expr * body, proof * pr, unsigned generation) {
|
void internalize_instance(expr * body, proof * pr, unsigned generation) {
|
||||||
|
if (inconsistent())
|
||||||
|
return;
|
||||||
internalize_assertion(body, pr, generation);
|
internalize_assertion(body, pr, generation);
|
||||||
if (relevancy()) {
|
if (relevancy()) {
|
||||||
// if the instantiation creates a conflict, we backtrack immediately.
|
// if the instantiation creates a conflict, we backtrack immediately.
|
||||||
// to retain the conflict clause being relevant we mark it here.
|
// to retain the conflict clause being relevant we mark it here.
|
||||||
// if the instantiation does not create a conflict, default relevancy propagation applies.
|
// if the instantiation does not create a conflict, default relevancy propagation applies.
|
||||||
if (inconsistent() && is_app(body)) {
|
if (inconsistent())
|
||||||
for (auto arg : *to_app(body))
|
mark_as_relevant(body);
|
||||||
mark_as_relevant(arg);
|
|
||||||
}
|
|
||||||
m_case_split_queue->internalize_instance_eh(body, generation);
|
m_case_split_queue->internalize_instance_eh(body, generation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue