mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 02:15:19 +00:00
Fix bug reported at http://z3.codeplex.com/workitem/23
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
70192b66e9
commit
4922d62311
|
@ -61,6 +61,8 @@ Version 4.3.2
|
|||
|
||||
- Fixed bugs in the C++ API (Thanks to Andrey Kupriyanov).
|
||||
|
||||
- Fixed bug reported at http://z3.codeplex.com/workitem/23 (Thanks to Paul Jackson).
|
||||
|
||||
Version 4.3.1
|
||||
=============
|
||||
|
||||
|
|
|
@ -111,19 +111,29 @@ void goal::push_back(expr * f, proof * pr, expr_dependency * d) {
|
|||
if (m().is_true(f))
|
||||
return;
|
||||
if (m().is_false(f)) {
|
||||
// Make sure pr and d are not deleted by the m().del(...) statements.
|
||||
proof_ref saved_pr(m());
|
||||
expr_dependency_ref saved_d(m());
|
||||
saved_pr = pr;
|
||||
saved_d = d;
|
||||
m().del(m_forms);
|
||||
m().del(m_proofs);
|
||||
m().del(m_dependencies);
|
||||
m_inconsistent = true;
|
||||
m().push_back(m_forms, m().mk_false());
|
||||
if (proofs_enabled())
|
||||
m().push_back(m_proofs, saved_pr);
|
||||
if (unsat_core_enabled())
|
||||
m().push_back(m_dependencies, saved_d);
|
||||
}
|
||||
else {
|
||||
SASSERT(!m_inconsistent);
|
||||
m().push_back(m_forms, f);
|
||||
if (proofs_enabled())
|
||||
m().push_back(m_proofs, pr);
|
||||
if (unsat_core_enabled())
|
||||
m().push_back(m_dependencies, d);
|
||||
}
|
||||
m().push_back(m_forms, f);
|
||||
if (proofs_enabled())
|
||||
m().push_back(m_proofs, pr);
|
||||
if (unsat_core_enabled())
|
||||
m().push_back(m_dependencies, d);
|
||||
}
|
||||
|
||||
void goal::quick_process(bool save_first, expr * & f, expr_dependency * d) {
|
||||
|
|
Loading…
Reference in a new issue