11 template<
typename Pol,
typename Visitor>
13 switch (formula.
type()) {
48 template<
typename Pol,
typename Visitor>
51 switch (formula.
type()) {
60 if (newCur != cur) changed =
true;
61 newSubformulas.push_back(newCur);
64 newFormula =
Formula(formula.
type(), std::move(newSubformulas));
88 newFormula =
Formula(
ITE, {cond, fCase, sCase});
110 return func(newFormula);
carl is the main namespace for the library.
std::vector< Formula< Poly > > Formulas
void visit(const Formula< Pol > &formula, Visitor func)
Recursively calls func on every subformula.
Formula< Pol > visit_result(const Formula< Pol > &formula, Visitor func)
Recursively calls func on every subformula and return a new formula.
Represent an SMT formula, which can be an atom for some background theory or a boolean combination of...
const Formula & subformula() const
const Formula & premise() const
const Formula & conclusion() const
const Formula & quantified_formula() const
const std::vector< carl::Variable > & quantified_variables() const
const Formulas< Pol > & subformulas() const
const Formula & first_case() const
const Formula & second_case() const
const Formula & condition() const