mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
parent
e5aa02b8f5
commit
2a8d00d815
|
@ -282,12 +282,14 @@ namespace smt {
|
||||||
auto & vars = e.m_def->get_vars();
|
auto & vars = e.m_def->get_vars();
|
||||||
expr_ref lhs(e.m_lhs, m);
|
expr_ref lhs(e.m_lhs, m);
|
||||||
unsigned depth = get_depth(e.m_lhs);
|
unsigned depth = get_depth(e.m_lhs);
|
||||||
expr_ref rhs(apply_args(depth, vars, e.m_args, e.m_def->get_rhs()), m);
|
expr_ref rhs(apply_args(depth, vars, e.m_args, e.m_def->get_rhs()), m);
|
||||||
literal lit = mk_eq_lit(lhs, rhs);
|
literal lit = mk_eq_lit(lhs, rhs);
|
||||||
std::function<literal(void)> fn = [&]() { return lit; };
|
std::function<literal(void)> fn = [&]() { return lit; };
|
||||||
scoped_trace_stream _tr(*this, fn);
|
scoped_trace_stream _tr(*this, fn);
|
||||||
ctx.mk_th_axiom(get_id(), 1, &lit);
|
ctx.mk_th_axiom(get_id(), 1, &lit);
|
||||||
TRACEFN("macro expansion yields " << pp_lit(ctx, lit));
|
TRACEFN("macro expansion yields " << pp_lit(ctx, lit));
|
||||||
|
if (has_quantifiers(rhs))
|
||||||
|
throw default_exception("quantified formulas in recursive functions are not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -392,6 +394,8 @@ namespace smt {
|
||||||
std::function<literal_vector(void)> fn = [&]() { return clause; };
|
std::function<literal_vector(void)> fn = [&]() { return clause; };
|
||||||
scoped_trace_stream _tr(*this, fn);
|
scoped_trace_stream _tr(*this, fn);
|
||||||
ctx.mk_th_axiom(get_id(), clause);
|
ctx.mk_th_axiom(get_id(), clause);
|
||||||
|
if (has_quantifiers(rhs))
|
||||||
|
throw default_exception("quantified formulas in recursive functions are not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
final_check_status theory_recfun::final_check_eh() {
|
final_check_status theory_recfun::final_check_eh() {
|
||||||
|
|
Loading…
Reference in a new issue