SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::expression::Expression Class Reference

#include <Expression.h>

Collaboration diagram for smtrat::expression::Expression:

Public Member Functions

 Expression (carl::Variable::Arg var)
 
 Expression (ITEType _type, Expression &&_if, Expression &&_then, Expression &&_else)
 
 Expression (QuantifierType _type, std::vector< carl::Variable > &&_variables, Expression &&_expression)
 
 Expression (UnaryType _type, Expression &&_expression)
 
 Expression (UnaryType _type, const Expression &_expression)
 
 Expression (BinaryType _type, Expression &&_lhs, Expression &&_rhs)
 
 Expression (NaryType _type, Expressions &&_expressions)
 
 Expression (NaryType _type, const std::initializer_list< Expression > &_expressions)
 
const ExpressionContent & getContent () const
 
const ExpressionContent * getContentPtr () const
 
const ExpressionContent * getNegationPtr () const
 
bool isITE () const
 
const ITEExpression & getITE () const
 
bool isQuantifier () const
 
const QuantifierExpression & getQuantifier () const
 
bool isUnary () const
 
const UnaryExpression & getUnary () const
 
bool isBinary () const
 
const BinaryExpression & getBinary () const
 
bool is_nary () const
 
const NaryExpression & getNary () const
 
bool operator== (const Expression &expr) const
 
bool operator< (const Expression &expr) const
 
bool operator!= (const Expression &expr) const
 

Private Member Functions

template<typename T >
bool isType () const
 
template<typename T >
const T & type () const
 
 Expression (const ExpressionContent *_content)
 

Private Attributes

const ExpressionContent * mContent
 

Friends

struct std::hash< smtrat::expression::Expression >
 
class ExpressionPool
 
class ExpressionModifier
 

Detailed Description

Definition at line 12 of file Expression.h.

Constructor & Destructor Documentation

◆ Expression() [1/9]

smtrat::expression::Expression::Expression ( const ExpressionContent *  _content)
inlineexplicitprivate

Definition at line 24 of file Expression.h.

◆ Expression() [2/9]

smtrat::expression::Expression::Expression ( carl::Variable::Arg  var)
explicit

◆ Expression() [3/9]

smtrat::expression::Expression::Expression ( ITEType  _type,
Expression &&  _if,
Expression &&  _then,
Expression &&  _else 
)
explicit

◆ Expression() [4/9]

smtrat::expression::Expression::Expression ( QuantifierType  _type,
std::vector< carl::Variable > &&  _variables,
Expression &&  _expression 
)
explicit

◆ Expression() [5/9]

smtrat::expression::Expression::Expression ( UnaryType  _type,
Expression &&  _expression 
)
explicit

◆ Expression() [6/9]

smtrat::expression::Expression::Expression ( UnaryType  _type,
const Expression &  _expression 
)
inlineexplicit

Definition at line 32 of file Expression.h.

◆ Expression() [7/9]

smtrat::expression::Expression::Expression ( BinaryType  _type,
Expression &&  _lhs,
Expression &&  _rhs 
)
explicit

◆ Expression() [8/9]

smtrat::expression::Expression::Expression ( NaryType  _type,
Expressions &&  _expressions 
)
explicit

◆ Expression() [9/9]

smtrat::expression::Expression::Expression ( NaryType  _type,
const std::initializer_list< Expression > &  _expressions 
)
explicit

Member Function Documentation

◆ getBinary()

const BinaryExpression& smtrat::expression::Expression::getBinary ( ) const

◆ getContent()

const ExpressionContent& smtrat::expression::Expression::getContent ( ) const
inline

Definition at line 37 of file Expression.h.

Here is the caller graph for this function:

◆ getContentPtr()

const ExpressionContent* smtrat::expression::Expression::getContentPtr ( ) const
inline

Definition at line 40 of file Expression.h.

◆ getITE()

const ITEExpression& smtrat::expression::Expression::getITE ( ) const

◆ getNary()

const NaryExpression& smtrat::expression::Expression::getNary ( ) const

◆ getNegationPtr()

const ExpressionContent* smtrat::expression::Expression::getNegationPtr ( ) const

◆ getQuantifier()

const QuantifierExpression& smtrat::expression::Expression::getQuantifier ( ) const

◆ getUnary()

const UnaryExpression& smtrat::expression::Expression::getUnary ( ) const

◆ is_nary()

bool smtrat::expression::Expression::is_nary ( ) const

◆ isBinary()

bool smtrat::expression::Expression::isBinary ( ) const

◆ isITE()

bool smtrat::expression::Expression::isITE ( ) const

◆ isQuantifier()

bool smtrat::expression::Expression::isQuantifier ( ) const

◆ isType()

template<typename T >
bool smtrat::expression::Expression::isType ( ) const
private

◆ isUnary()

bool smtrat::expression::Expression::isUnary ( ) const

◆ operator!=()

bool smtrat::expression::Expression::operator!= ( const Expression &  expr) const

◆ operator<()

bool smtrat::expression::Expression::operator< ( const Expression &  expr) const

◆ operator==()

bool smtrat::expression::Expression::operator== ( const Expression &  expr) const

◆ type()

template<typename T >
const T& smtrat::expression::Expression::type ( ) const
private

Friends And Related Function Documentation

◆ ExpressionModifier

friend class ExpressionModifier
friend

Definition at line 15 of file Expression.h.

◆ ExpressionPool

friend class ExpressionPool
friend

Definition at line 14 of file Expression.h.

◆ std::hash< smtrat::expression::Expression >

friend struct std::hash< smtrat::expression::Expression >
friend

Definition at line 66 of file Expression.h.

Field Documentation

◆ mContent

const ExpressionContent* smtrat::expression::Expression::mContent
private

Definition at line 17 of file Expression.h.


The documentation for this class was generated from the following file: