3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00

fix 3838 fix #3837

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-08 05:49:24 -07:00
parent 7595371721
commit 40aa2f7cb2
4 changed files with 31 additions and 19 deletions

View file

@ -165,10 +165,7 @@ public:
}
}
TRACE("hnf",
tout << mk_pp(n, m) << "\n==>\n";
for (unsigned i = 0; i < result.size(); ++i) {
tout << mk_pp(result[i].get(), m) << "\n";
});
tout << mk_pp(n, m) << "\n==>\n" << result << "\n";);
}
bool checkpoint() {
@ -458,13 +455,13 @@ private:
}
proof_ref mk_congruence(proof* p1, expr_ref_vector const& body, expr* head, proof_ref_vector& defs) {
proof_ref mk_congruence(proof* p, expr_ref_vector const& body, expr* head, proof_ref_vector& defs) {
if (defs.empty()) {
return proof_ref(p1, m);
return proof_ref(p, m);
}
else {
SASSERT(p1);
proof_ref p2(m), p3(m);
SASSERT(p);
proof_ref p1(p, m), p2(m), p3(m);
app_ref fml = mk_implies(body, head);
expr* fact = m.get_fact(p1);
if (m.is_iff(fact)) {

View file

@ -349,15 +349,19 @@ class horn_tactic : public tactic {
void check_parameters() {
fp_params const& p = m_ctx.get_params();
if (p.engine() == symbol("datalog"))
not_supported();
not_supported("engine=datalog");
if (p.datalog_generate_explanations())
not_supported();
not_supported("datalog.generate_explanations");
if (p.datalog_magic_sets_for_queries())
not_supported();
not_supported("datalog.magic_sets_for_queries");
if (p.xform_instantiate_arrays())
not_supported("xform.instantiate_arrays");
if (p.xform_magic())
not_supported("xform.magic");
}
void not_supported() {
throw default_exception("unsupported parameter combination passed to HORN tactic");
void not_supported(char const* s) {
throw default_exception(std::string("unsupported parameter ") + s);
}
};