3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-21 21:33:39 +00:00
This commit is contained in:
Nikolaj Bjorner 2021-02-12 19:46:47 -08:00
parent 612cc5cfba
commit 83f4a006c6
11 changed files with 402 additions and 219 deletions

View file

@ -513,4 +513,39 @@ namespace recfun {
}
}
case_expansion::case_expansion(recfun::util& u, app * n) :
m_lhs(n, u.m()), m_def(nullptr), m_args(u.m()) {
SASSERT(u.is_defined(n));
func_decl * d = n->get_decl();
m_def = &u.get_def(d);
m_args.append(n->get_num_args(), n->get_args());
}
case_expansion::case_expansion(case_expansion const & from)
: m_lhs(from.m_lhs),
m_def(from.m_def),
m_args(from.m_args) {}
case_expansion::case_expansion(case_expansion && from)
: m_lhs(from.m_lhs),
m_def(from.m_def),
m_args(std::move(from.m_args)) {}
std::ostream& case_expansion::display(std::ostream & out) const {
return out << "case_exp(" << m_lhs << ")";
}
std::ostream& body_expansion::display(std::ostream & out) const {
ast_manager& m = m_pred.m();
out << "body_exp(" << m_cdef->get_decl()->get_name();
for (auto* t : m_args)
out << " " << mk_pp(t, m);
return out << ")";
}
}