mirror of
https://github.com/Z3Prover/z3
synced 2025-07-18 02:16:40 +00:00
experiments wtih QHC
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
63b7f7ecd6
commit
d318aab7d1
9 changed files with 379 additions and 291 deletions
|
@ -25,7 +25,7 @@ Revision History:
|
|||
#include "dl_mk_rule_inliner.h"
|
||||
#include "dl_rule.h"
|
||||
#include "dl_rule_transformer.h"
|
||||
#include "dl_mk_extract_quantifiers2.h"
|
||||
#include "dl_mk_extract_quantifiers.h"
|
||||
#include "smt2parser.h"
|
||||
#include "pdr_context.h"
|
||||
#include "pdr_dl_interface.h"
|
||||
|
@ -146,7 +146,7 @@ lbool dl_interface::query(expr * query) {
|
|||
}
|
||||
}
|
||||
// remove universal quantifiers from body.
|
||||
datalog::mk_extract_quantifiers2* extract_quantifiers = alloc(datalog::mk_extract_quantifiers2, m_ctx);
|
||||
datalog::mk_extract_quantifiers* extract_quantifiers = alloc(datalog::mk_extract_quantifiers, m_ctx);
|
||||
datalog::rule_transformer extract_q_tr(m_ctx);
|
||||
extract_q_tr.register_plugin(extract_quantifiers);
|
||||
m_ctx.transform_rules(extract_q_tr, mc, pc);
|
||||
|
@ -177,8 +177,9 @@ lbool dl_interface::query(expr * query) {
|
|||
while (true) {
|
||||
result = m_context->solve();
|
||||
if (result == l_true && extract_quantifiers->has_quantifiers()) {
|
||||
if (quantifier_mc.check()) {
|
||||
return l_true;
|
||||
result = quantifier_mc.check();
|
||||
if (result != l_false) {
|
||||
return result;
|
||||
}
|
||||
// else continue
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue