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:
parent
16cfb3895d
commit
990b93c2fd
6 changed files with 64 additions and 50 deletions
|
|
@ -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: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue