mirror of
https://github.com/Z3Prover/z3
synced 2025-04-16 13:58:45 +00:00
parent
044d6316ca
commit
1380a98a17
|
@ -4456,10 +4456,7 @@ namespace smt {
|
|||
bool context::update_model(bool refinalize) {
|
||||
final_check_status fcs = FC_DONE;
|
||||
if (refinalize) {
|
||||
bool_var var;
|
||||
lbool phase = l_undef;
|
||||
m_case_split_queue->next_case_split(var, phase);
|
||||
if (var != null_bool_var)
|
||||
if (has_case_splits())
|
||||
return false;
|
||||
fcs = final_check();
|
||||
}
|
||||
|
@ -4472,7 +4469,7 @@ namespace smt {
|
|||
}
|
||||
|
||||
void context::mk_proto_model() {
|
||||
if (m_model || m_proto_model) return;
|
||||
if (m_model || m_proto_model || has_case_splits()) return;
|
||||
TRACE("get_model",
|
||||
display(tout);
|
||||
display_normalized_enodes(tout);
|
||||
|
@ -4505,9 +4502,16 @@ namespace smt {
|
|||
return m_unsat_proof;
|
||||
}
|
||||
|
||||
bool context::has_case_splits() {
|
||||
bool_var var;
|
||||
lbool phase = l_undef;
|
||||
m_case_split_queue->next_case_split(var, phase);
|
||||
return (var != null_bool_var);
|
||||
}
|
||||
|
||||
void context::get_model(model_ref & m) {
|
||||
if (inconsistent())
|
||||
m = nullptr;
|
||||
m = nullptr;
|
||||
else {
|
||||
mk_proto_model();
|
||||
if (!m_model && m_proto_model) {
|
||||
|
|
|
@ -1060,6 +1060,8 @@ namespace smt {
|
|||
m_asserted_formulas.inconsistent();
|
||||
}
|
||||
|
||||
bool has_case_splits();
|
||||
|
||||
unsigned get_num_conflicts() const {
|
||||
return m_num_conflicts;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue