3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

working on viable

This commit is contained in:
Nikolaj Bjorner 2023-12-09 13:10:47 -08:00
parent 30c874d301
commit 0dd4f0cf71
10 changed files with 479 additions and 1 deletions

View file

@ -296,4 +296,24 @@ namespace polysat {
n->get_root()->unmark1();
}
void solver::get_fixed_bits(pvar pv, svector<justified_fixed_bits>& fixed_bits) {
theory_var v = m_pddvar2var[pv];
auto n = var2enode(v);
auto r = n->get_root();
unsigned lo, hi;
expr* e = nullptr;
for (auto p : euf::enode_parents(r)) {
if (!p->interpreted())
continue;
for (auto sib : euf::enode_class(p)) {
if (bv.is_extract(sib->get_expr(), lo, hi, e) && r == expr2enode(e)->get_root()) {
throw default_exception("nyi");
// TODO
// dependency d = dependency(p->get_th_var(get_id()), n->get_th_var(get_id()), s().scope_lvl());
// fixed_bits.push_back({ hi, lo, rational::zero(), null_dependency()});
}
}
}
}
}