mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
fix #6340 - again
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c30b884247
commit
fd5448d26b
|
@ -3198,14 +3198,15 @@ namespace smt {
|
|||
|
||||
void context::internalize_assertions() {
|
||||
if (get_cancel_flag()) return;
|
||||
if (m_internalizing_assertions) return;
|
||||
flet<bool> _internalizing(m_internalizing_assertions, true);
|
||||
TRACE("internalize_assertions", tout << "internalize_assertions()...\n";);
|
||||
timeit tt(get_verbosity_level() >= 100, "smt.preprocessing");
|
||||
reduce_assertions();
|
||||
if (get_cancel_flag()) return;
|
||||
if (!m_asserted_formulas.inconsistent()) {
|
||||
unsigned sz = m_asserted_formulas.get_num_formulas();
|
||||
unsigned qhead = m_asserted_formulas.get_qhead();
|
||||
while (qhead < sz) {
|
||||
while (qhead < m_asserted_formulas.get_num_formulas()) {
|
||||
if (get_cancel_flag()) {
|
||||
m_asserted_formulas.commit(qhead);
|
||||
return;
|
||||
|
|
|
@ -107,11 +107,12 @@ namespace smt {
|
|||
|
||||
ptr_vector<justification> m_justifications;
|
||||
|
||||
unsigned m_final_check_idx; // circular counter used for implementing fairness
|
||||
unsigned m_final_check_idx = 0; // circular counter used for implementing fairness
|
||||
|
||||
bool m_is_auxiliary { false }; // used to prevent unwanted information from being logged.
|
||||
class parallel* m_par { nullptr };
|
||||
unsigned m_par_index { 0 };
|
||||
bool m_is_auxiliary = false; // used to prevent unwanted information from being logged.
|
||||
class parallel* m_par = nullptr;
|
||||
unsigned m_par_index = 0;
|
||||
bool m_internalizing_assertions = false;
|
||||
|
||||
// -----------------------------------
|
||||
//
|
||||
|
|
|
@ -615,11 +615,15 @@ namespace smt {
|
|||
|
||||
bool context::has_lambda() {
|
||||
for (auto const & [n, q] : m_lambdas) {
|
||||
if (n->get_class_size() != 1)
|
||||
if (n->get_class_size() != 1) {
|
||||
TRACE("context", tout << "class size " << n->get_class_size() << " " << enode_pp(n, *this) << "\n");
|
||||
return true;
|
||||
}
|
||||
for (enode* p : enode::parents(n))
|
||||
if (!is_beta_redex(p, n))
|
||||
if (!is_beta_redex(p, n)) {
|
||||
TRACE("context", tout << "not a beta redex " << enode_pp(p, *this) << "\n");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -498,6 +498,8 @@ namespace smt {
|
|||
return p->get_arg(0)->get_root() == n->get_root();
|
||||
if (is_map(p))
|
||||
return true;
|
||||
if (is_store(p))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue