94 assert(
mType == Type::MINUS_INFINITY );
157 unsigned valuate(
bool _preferMinusInf =
true )
const;
180 void print(
bool _withOrigins =
false,
bool _withSideConditions =
false, std::ostream& _out = std::cout,
const std::string& _init =
"" )
const;
188 std::ostream&
operator<<(std::ostream& os,
const Substitution& s);
201 return ((hash<smtrat::SqrtEx>()(_substitution.
term()) << 7) ^ hash<carl::Variable>()( _substitution.
variable() ) << 2) ^ _substitution.
type();
213 return (*_substitutionA)==(*_substitutionB);
221 if( _substitution == NULL )
223 return std::hash<Substitution>()( *_substitution );
const carl::Variables & termVariables() const
smtrat::ConstraintsT mSideCondition
The side conditions, which have to hold to make this substitution valid. (e.g. [x -> 1/a] has the sid...
Type
The type of a substitution.
carl::PointerSet< Condition > & rOriginalConditions()
void print(bool _withOrigins=false, bool _withSideConditions=false, std::ostream &_out=std::cout, const std::string &_init="") const
Prints this substitution on the given stream, with some additional information.
~Substitution()
The destructor.
carl::Variable mVariable
The variable to substitute.
carl::Variables * mpTermVariables
The variables occurring in the term to substitute for.
bool operator==(const Substitution &) const
const smtrat::SqrtEx & term() const
const smtrat::ConstraintsT & sideCondition() const
const carl::Variable & variable() const
smtrat::SqrtEx * mpTerm
The pointer (if != NULL) to the square root term to substitute the variable for.
const carl::PointerSet< Condition > & originalConditions() const
void setTerm(const smtrat::Rational &_value)
Sets the substitution term to the given rational.
Substitution(const carl::Variable &_variable, const Type &_type, carl::PointerSet< Condition > &&_oConditions, smtrat::ConstraintsT &&_sideCondition=smtrat::ConstraintsT())
Constructs a substitution with no square root term to map to.
unsigned valuate(bool _preferMinusInf=true) const
carl::PointerSet< Condition > mOriginalConditions
The conditions from which this substitution has been originated. (e.g. [x -> 2] could have had the or...
const Type & type() const
static uint32_t hash(uint32_t x)
std::unordered_map< const smtrat::Poly *, T, substitutionPointerHash, substitutionPointerEqual > SubstitutionFastPointerMap
std::ostream & operator<<(std::ostream &_out, const Condition &_condition)
Class to create the formulas for axioms.
carl::Constraints< Poly > ConstraintsT
carl::SqrtEx< Poly > SqrtEx
carl::MultivariatePolynomial< Rational > Poly
bool operator()(const Substitution *_substitutionA, const Substitution *_substitutionB) const
size_t operator()(const Substitution *_substitution) const
size_t operator()(const smtrat::vs::Substitution &_substitution) const