11 template<
typename Pol>
66 std::cerr <<
"Unexpected relation symbol!" << std::endl;
73 if (resolve_varcomp) {
112 subFormulasA.push_back( subFormula );
124 subFormulas.push_back( *subFormula );
141 std::cerr <<
"Unexpected type of formula!" << std::endl;
carl is the main namespace for the library.
FormulaType
Represent the type of a formula to allow faster/specialized processing.
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.
Relation inverse(Relation r)
Inverts the given relation symbol.
Represent a polynomial (in)equality against zero.
Relation relation() const
const BVTerm & rhs() const
const BVTerm & lhs() const
BVCompareRelation relation() const
static BVConstraint create(bool _consistent=true)
Represent an SMT formula, which can be an atom for some background theory or a boolean combination of...
const Formula & subformula() const
const VariableComparison< Pol > & variable_comparison() const
const Formula & premise() const
const Formula & conclusion() const
const Constraint< Pol > & constraint() const
const Formulas< Pol > & subformulas() const
const Formula & first_case() const
const Formula & second_case() const
const BVConstraint & bv_constraint() const
const UEquality & u_equality() const
Implements an uninterpreted equality, that is an equality of either two uninterpreted function instan...
const UTerm & rhs() const
const UTerm & lhs() const