Go to the documentation of this file.
51 else if(this->expr.
id() != ID_and)
92 for(exprt::operandst::iterator it = op1.begin(); it != op1.end(); ++it)
109 exprt::operandst::iterator it1 = op1.begin();
110 for(exprt::operandst::const_iterator it2 = op2.begin(); it2 != op2.end();
113 if(it1 != op1.end() && *it1 == *it2)
114 it1 = op1.erase(it1);
128 if(
expr.
id() == ID_and && other_guard.
expr.
id() == ID_and)
166 n_op1.reserve(op1.size());
167 n_op2.reserve(op2.size());
169 exprt::operandst::iterator it1 = op1.begin();
170 for(exprt::operandst::const_iterator it2 = op2.begin(); it2 != op2.end();
173 while(it1 != op1.end() && *it1 < *it2)
175 n_op1.push_back(*it1);
176 it1 = op1.erase(it1);
178 if(it1 != op1.end() && *it1 == *it2)
181 n_op2.push_back(*it2);
183 while(it1 != op1.end())
185 n_op1.push_back(*it1);
186 it1 = op1.erase(it1);
guard_exprt & operator|=(guard_exprt &g1, const guard_exprt &g2)
exprt conjunction(const exprt::operandst &op)
1) generates a conjunction for two or more operands 2) for one operand, returns the operand 3) return...
exprt guard_expr(exprt expr) const
Return guard => dest or a simplified variant thereof if either guard or dest are trivial.
Base class for all expressions.
bool is_true() const
Return whether the expression is a constant representing true.
bool is_false() const
Return whether the expression is a constant representing false.
typet & type()
Return the type of the expression.
void add(const exprt &expr)
#define PRECONDITION(CONDITION)
exprt boolean_negate(const exprt &src)
negate a Boolean expression, possibly removing a not_exprt, and swapping false and true
guard_exprt & operator-=(guard_exprt &g1, const guard_exprt &g2)
bool disjunction_may_simplify(const guard_exprt &other_guard)
Returns true if operator|= with other_guard may result in a simpler expression.
const irep_idt & id() const
std::vector< exprt > operandst
Deprecated expression utility functions.
The Boolean constant true.