mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 18:31:49 +00:00
This commit is contained in:
parent
f6595c161f
commit
2842c27e92
|
@ -152,7 +152,6 @@ namespace arith {
|
|||
solver& a = dynamic_cast<solver&>(*s.fid2solver(fid));
|
||||
char const* name;
|
||||
expr_ref_vector args(m);
|
||||
sort_ref_vector sorts(m);
|
||||
|
||||
switch (m_ty) {
|
||||
case hint_type::farkas_h:
|
||||
|
@ -182,11 +181,6 @@ namespace arith {
|
|||
args.push_back(arith.mk_int(1));
|
||||
args.push_back(eq);
|
||||
}
|
||||
for (expr* arg : args)
|
||||
sorts.push_back(arg->get_sort());
|
||||
sort* range = m.mk_proof_sort();
|
||||
func_decl* d = m.mk_func_decl(symbol(name), args.size(), sorts.data(), range);
|
||||
expr* r = m.mk_app(d, args);
|
||||
return r;
|
||||
return m.mk_app(symbol(name), args.size(), args.data(), m.mk_proof_sort());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -674,7 +674,7 @@ namespace euf {
|
|||
}
|
||||
|
||||
for (auto const& [e, v] : replay.m)
|
||||
if (si.is_bool_op(e))
|
||||
if (si.is_bool_op(e) && !si.is_cached(to_app(e), sat::literal(v, false)))
|
||||
si.cache(to_app(e), sat::literal(v, false));
|
||||
|
||||
if (relevancy_enabled())
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace sat {
|
|||
virtual literal internalize(expr* e, bool learned) = 0;
|
||||
virtual bool_var to_bool_var(expr* e) = 0;
|
||||
virtual bool_var add_bool_var(expr* e) = 0;
|
||||
virtual bool is_cached(app* t, literal l) const = 0;
|
||||
virtual void cache(app* t, literal l) = 0;
|
||||
virtual void uncache(literal l) = 0;
|
||||
virtual void push() = 0;
|
||||
|
|
|
@ -276,6 +276,13 @@ struct goal2sat::imp : public sat::sat_internalizer {
|
|||
m_lit2app.insert(l.index(), t);
|
||||
m_cache_trail.push_back(t);
|
||||
}
|
||||
|
||||
bool is_cached(app* t, sat::literal l) const override {
|
||||
if (!m_app2lit.contains(t))
|
||||
return false;
|
||||
SASSERT(m_app2lit[t] == l);
|
||||
return true;
|
||||
}
|
||||
|
||||
void convert_atom(expr * t, bool root, bool sign) {
|
||||
SASSERT(m.is_bool(t));
|
||||
|
|
Loading…
Reference in a new issue