8 template<
typename Poly>
20 switch(formula.
type()){
32 poss.emplace_back(
to_nnf(f));
33 negs.emplace_back(
to_nnf(f.negated()));
53 for(
const auto& subformula : formula.
subformulas()){
54 disjunctions.push_back(
to_nnf(subformula));
60 for(
const auto& subformula : formula.
subformulas()){
61 conjunctions.push_back(
to_nnf(subformula));
carl is the main namespace for the library.
Formula< Poly > to_nnf(const Formula< Poly > &formula)
std::vector< Formula< Poly > > Formulas
Formula< Pol > resolve_negation(const Formula< Pol > &f, bool _keepConstraint=true, bool resolve_varcomp=false)
Resolves the outermost negation of this formula.
Formula< Pol > connectPrecedingSubformulas(const Formula< Pol > &f)
[Auxiliary method]
const Formula & premise() const
const Formula & conclusion() const
const Formulas< Pol > & subformulas() const
const Formula & first_case() const
const Formula & second_case() const
const Formula & condition() const