mirror of
https://github.com/Z3Prover/z3
synced 2025-06-21 05:13:39 +00:00
fix bugs in flatten_clauses simplifier, switch proof/fml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d4490738bc
commit
6f95c77023
4 changed files with 9 additions and 8 deletions
|
@ -32,6 +32,7 @@ public:
|
||||||
m_fml(fml),
|
m_fml(fml),
|
||||||
m_proof(p),
|
m_proof(p),
|
||||||
m_dep(d) {
|
m_dep(d) {
|
||||||
|
SASSERT(fml);
|
||||||
m.inc_ref(fml);
|
m.inc_ref(fml);
|
||||||
m.inc_ref(d);
|
m.inc_ref(d);
|
||||||
m.inc_ref(p);
|
m.inc_ref(p);
|
||||||
|
@ -122,4 +123,4 @@ public:
|
||||||
|
|
||||||
inline std::ostream& operator<<(std::ostream& out, dependent_expr const& d) {
|
inline std::ostream& operator<<(std::ostream& out, dependent_expr const& d) {
|
||||||
return d.display(out);
|
return d.display(out);
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,8 +67,8 @@ public:
|
||||||
decomposed = true;
|
decomposed = true;
|
||||||
if (decomposed) {
|
if (decomposed) {
|
||||||
for (expr* arg : *to_app(b))
|
for (expr* arg : *to_app(b))
|
||||||
m_fmls.add(dependent_expr(m, nullptr, m.mk_or(a, mk_not(m, arg)), de.dep()));
|
m_fmls.add(dependent_expr(m, m.mk_or(a, mk_not(m, arg)), nullptr, de.dep()));
|
||||||
m_fmls.update(idx, dependent_expr(m, nullptr, m.mk_true(), nullptr));
|
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr, nullptr));
|
||||||
++m_num_flat;
|
++m_num_flat;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -79,8 +79,8 @@ public:
|
||||||
decomposed = true;
|
decomposed = true;
|
||||||
if (decomposed) {
|
if (decomposed) {
|
||||||
for (expr * arg : *to_app(b))
|
for (expr * arg : *to_app(b))
|
||||||
m_fmls.add(dependent_expr(m, nullptr, m.mk_or(a, arg), de.dep()));
|
m_fmls.add(dependent_expr(m, m.mk_or(a, arg), nullptr, de.dep()));
|
||||||
m_fmls.update(idx, dependent_expr(m, nullptr, m.mk_true(), nullptr));
|
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr, nullptr));
|
||||||
++m_num_flat;
|
++m_num_flat;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ class sat_smt_solver : public solver {
|
||||||
~dep_expr_state() override {}
|
~dep_expr_state() override {}
|
||||||
virtual unsigned qtail() const override { return s.m_fmls.size(); }
|
virtual unsigned qtail() const override { return s.m_fmls.size(); }
|
||||||
dependent_expr const& operator[](unsigned i) override { return s.m_fmls[i]; }
|
dependent_expr const& operator[](unsigned i) override { return s.m_fmls[i]; }
|
||||||
void update(unsigned i, dependent_expr const& j) override { s.m_fmls[i] = j; }
|
void update(unsigned i, dependent_expr const& j) override { SASSERT(j.fml()); s.m_fmls[i] = j; }
|
||||||
void add(dependent_expr const& j) override { s.m_fmls.push_back(j); }
|
void add(dependent_expr const& j) override { s.m_fmls.push_back(j); }
|
||||||
bool inconsistent() override { return s.m_solver.inconsistent(); }
|
bool inconsistent() override { return s.m_solver.inconsistent(); }
|
||||||
model_reconstruction_trail& model_trail() override { return m_reconstruction_trail; }
|
model_reconstruction_trail& model_trail() override { return m_reconstruction_trail; }
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
dependent_expr_state(m),
|
dependent_expr_state(m),
|
||||||
m(m),
|
m(m),
|
||||||
m_params(p),
|
m_params(p),
|
||||||
m_dep(m, nullptr, nullptr, nullptr),
|
m_dep(m, m.mk_true(), nullptr, nullptr),
|
||||||
m_factory(f)
|
m_factory(f)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ public:
|
||||||
m_simp = nullptr;
|
m_simp = nullptr;
|
||||||
m_model_trail = nullptr;
|
m_model_trail = nullptr;
|
||||||
m_goal = nullptr;
|
m_goal = nullptr;
|
||||||
m_dep = dependent_expr(m, nullptr, nullptr, nullptr);
|
m_dep = dependent_expr(m, m.mk_true(), nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_statistics(statistics & st) const override {
|
void collect_statistics(statistics & st) const override {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue