3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-23 19:47:52 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-02-22 08:05:28 +09:00
parent d70ee71a43
commit a4c58ec4c2
6 changed files with 13 additions and 19 deletions

View file

@ -1736,6 +1736,7 @@ namespace pdr {
}
void context::validate_model() {
IF_VERBOSE(1, verbose_stream() << "(pdr.validate_model)\n";);
std::stringstream msg;
expr_ref_vector refs(m);
expr_ref tmp(m);
@ -1745,11 +1746,10 @@ namespace pdr {
get_level_property(m_inductive_lvl, refs, rs);
inductive_property ex(m, mc, rs);
ex.to_model(model);
decl2rel::iterator it = m_rels.begin(), end = m_rels.end();
var_subst vs(m, false);
expr_free_vars fv;
for (; it != end; ++it) {
ptr_vector<datalog::rule> const& rules = it->m_value->rules();
for (auto const& kv : m_rels) {
ptr_vector<datalog::rule> const& rules = kv.m_value->rules();
for (unsigned i = 0; i < rules.size(); ++i) {
datalog::rule& r = *rules[i];
model->eval(r.get_head(), tmp);
@ -1916,7 +1916,7 @@ namespace pdr {
verbose_stream() << ex.to_string();
});
// upgrade invariants that are known to be inductive.
// upgrade invariants that are known to be inductive.
decl2rel::iterator it = m_rels.begin (), end = m_rels.end ();
for (; m_inductive_lvl > 0 && it != end; ++it) {
if (it->m_value->head() != m_query_pred) {