3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-27 02:25:38 +00:00

working on pdr

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-14 00:24:17 -07:00
parent 16cfb3895d
commit 990b93c2fd
6 changed files with 64 additions and 50 deletions

View file

@ -914,7 +914,7 @@ namespace pdr {
}
obj_map<expr, unsigned>& model_search::cache(model_node const& n) {
unsigned l = n.level();
unsigned l = n.orig_level();
if (l >= m_cache.size()) {
m_cache.resize(l + 1);
}
@ -1108,6 +1108,21 @@ namespace pdr {
}
}
void model_search::backtrack_level(bool uses_level, model_node& n) {
SASSERT(m_root);
if (uses_level && m_root->level() > n.level()) {
IF_VERBOSE(2, verbose_stream() << "Increase level " << n.level() << "\n";);
n.increase_level();
m_leaves.push_back(&n);
}
else {
model_node* p = n.parent();
if (p) {
set_leaf(*p);
}
}
}
// ----------------
// context
@ -1604,10 +1619,7 @@ namespace pdr {
TRACE("pdr", tout << "invariant state: " << (uses_level?"":"(inductive) ") << mk_pp(ncube, m) << "\n";);
n.pt().add_property(ncube, uses_level?n.level():infty_level);
CASSERT("pdr",n.level() == 0 || check_invariant(n.level()-1));
model_node* p = n.parent();
if (p) {
m_search.set_leaf(*p);
}
m_search.backtrack_level(uses_level && m_params.get_bool(":flexible-trace",true), n);
break;
}
case l_undef: {