From 61ed4e5741408fa2203d3fc2303750e172155191 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Fri, 12 Jun 2015 18:30:33 -0700 Subject: [PATCH 1/2] strengthen quantifier check for PDR (and other engines) that don't handle quantified predicates Signed-off-by: Nikolaj Bjorner --- src/muz/base/dl_context.cpp | 1 + src/muz/base/rule_properties.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/muz/base/dl_context.cpp b/src/muz/base/dl_context.cpp index 3555e5bdc..aeccd2633 100644 --- a/src/muz/base/dl_context.cpp +++ b/src/muz/base/dl_context.cpp @@ -567,6 +567,7 @@ namespace datalog { m_rule_properties.check_uninterpreted_free(); break; case QPDR_ENGINE: + std::cout << "QD\n"; m_rule_properties.collect(r); m_rule_properties.check_for_negated_predicates(); m_rule_properties.check_uninterpreted_free(); diff --git a/src/muz/base/rule_properties.cpp b/src/muz/base/rule_properties.cpp index 455e02e45..619f88e3b 100644 --- a/src/muz/base/rule_properties.cpp +++ b/src/muz/base/rule_properties.cpp @@ -142,7 +142,7 @@ void rule_properties::check_existential_tail() { todo.push_back(e2); } else if (is_quantifier(e)) { - todo.push_back(to_quantifier(e)->get_expr()); + tocheck.push_back(to_quantifier(e)->get_expr()); } else if ((m.is_eq(e, e1, e2) || m.is_iff(e, e1, e2)) && m.is_true(e1)) { From e463d5d899599fd3da87b765fd3e53261c8651d5 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Fri, 12 Jun 2015 18:31:28 -0700 Subject: [PATCH 2/2] remove spurious print statement Signed-off-by: Nikolaj Bjorner --- src/muz/base/dl_context.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/muz/base/dl_context.cpp b/src/muz/base/dl_context.cpp index aeccd2633..3555e5bdc 100644 --- a/src/muz/base/dl_context.cpp +++ b/src/muz/base/dl_context.cpp @@ -567,7 +567,6 @@ namespace datalog { m_rule_properties.check_uninterpreted_free(); break; case QPDR_ENGINE: - std::cout << "QD\n"; m_rule_properties.collect(r); m_rule_properties.check_for_negated_predicates(); m_rule_properties.check_uninterpreted_free();