3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 13:40:52 +00:00

significant update to Horn routines: add module hnf to extract Horn normal form (removed from rule_manager). Associate proof objects with rules to track (all) rewrites, so that proof traces can be tracked back to original rules after transformations

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2013-03-23 14:11:54 -07:00
parent e73c06a8b0
commit 26f4d3be20
60 changed files with 591 additions and 428 deletions

View file

@ -310,7 +310,7 @@ namespace datalog {
m_hb.reset();
for (unsigned i = 0; i < src.size(); ++i) {
vector<rational> v(src.A[i]);
v.append(src.b[i]);
v.push_back(src.b[i]);
if (src.eq[i]) {
m_hb.add_eq(v, rational(0));
}
@ -420,6 +420,7 @@ namespace datalog {
new_rule = rm.mk(r.get_head(), tail.size(), tail.c_ptr(), 0, r.name());
}
rules.add_rule(new_rule);
rm.mk_rule_rewrite_proof(r, *new_rule); // should be weakening rule.
}
class mk_karr_invariants::add_invariant_model_converter : public model_converter {
@ -519,7 +520,7 @@ namespace datalog {
m_hb.set_cancel(true);
}
rule_set * mk_karr_invariants::operator()(rule_set const & source, model_converter_ref& mc, proof_converter_ref& pc) {
rule_set * mk_karr_invariants::operator()(rule_set const & source, model_converter_ref& mc) {
if (!m_ctx.get_params().karr()) {
return 0;
}