mirror of
https://github.com/Z3Prover/z3
synced 2025-08-08 20:21:23 +00:00
sign of life for CSQ using pogo
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
72f60f5bfc
commit
246df792df
5 changed files with 92 additions and 40 deletions
|
@ -453,31 +453,13 @@ namespace qe {
|
|||
else if (!d.m_div.is_one() && !is_int) {
|
||||
t = a.mk_div(t, a.mk_numeral(d.m_div, is_int));
|
||||
}
|
||||
update_model(model, to_app(x), eval(t));
|
||||
|
||||
SASSERT(eval(t) == eval(x));
|
||||
result.push_back(def(expr_ref(x, m), t));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void update_model(model& mdl, app* x, expr_ref const& val) {
|
||||
if (is_uninterp_const(x)) {
|
||||
mdl.register_decl(x->get_decl(), val);
|
||||
}
|
||||
else {
|
||||
func_interp* fi = mdl.get_func_interp(x->get_decl());
|
||||
if (!fi) return;
|
||||
model_evaluator eval(mdl);
|
||||
expr_ref_vector args(m);
|
||||
for (expr* arg : *x) {
|
||||
args.push_back(eval(arg));
|
||||
}
|
||||
fi->insert_entry(args.c_ptr(), val);
|
||||
}
|
||||
}
|
||||
|
||||
expr_ref mk_add(expr_ref_vector const& ts) {
|
||||
switch (ts.size()) {
|
||||
case 0:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue