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:
parent
7595371721
commit
40aa2f7cb2
4 changed files with 31 additions and 19 deletions
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue