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 ExpressionContentgetContent () const
 
const ExpressionContentgetContentPtr () const
 
const ExpressionContentgetNegationPtr () const
 
bool isITE () const
 
const ITEExpressiongetITE () const
 
bool isQuantifier () const
 
const QuantifierExpressiongetQuantifier () const
 
bool isUnary () const
 
const UnaryExpressiongetUnary () const
 
bool isBinary () const
 
const BinaryExpressiongetBinary () const
 
bool is_nary () const
 
const NaryExpressiongetNary () 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 ExpressionContentmContent
 

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: