40 const auto id = expr.
id();
141 "Boolean constant must be either true or false: " + expr.
pretty());
145 "Found a unsupported boolean operator during quick filtering: " +
154 const auto id = expr.
id();
176 result =
cex.havoced_values.at(expr);
178 else if(
cex.loop_entry_values.find(expr) !=
cex.loop_entry_values.end())
180 result =
cex.loop_entry_values.at(expr);
185 "Variable not found in the havoced set or the un-havoced set: " +
200 cex.loop_entry_values.end())
202 result =
cex.loop_entry_values.at(expr.
operands()[0]);
207 "Variable not found in the havoced set or the un-havoced set: " +
231 if(
cex.object_sizes.find(expr.
operands()[0]) !=
cex.object_sizes.end())
238 "Variable not found in the object size set: " + expr.
pretty());
265 cex.havoced_pointer_offsets.find(expr.
operands()[0]) !=
266 cex.havoced_pointer_offsets.end() &&
271 result =
cex.havoced_pointer_offsets.at(expr.
operands()[0]);
275 cex.loop_entry_offsets.end())
279 result =
cex.loop_entry_offsets.at(expr.
operands()[0]);
284 "Variable not found in the offset set: " + expr.
pretty());
292 cex.loop_entry_offsets.find(expr.
operands()[0].operands()[0]) !=
293 cex.loop_entry_offsets.end())
295 result =
cex.loop_entry_offsets.at(expr.
operands()[0].operands()[0]);
300 "Variable not found in the offset set: " + expr.
pretty());
342 "Found a unsupported operator during quick filtering: " + expr.
id_string());
Evaluate if an expression is consistent with examples.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
const std::vector< cext > & cexs
The set of examples evaluated against.
const exprt & checked_expr
The expression being evaluated.
bool evaluate_rec_bool(const exprt &expr, const cext &cex, const bool is_positive)
mp_integer evaluate_rec_int(const exprt &expr, const cext &cex, const bool is_positive)
Formatted counterexample.
Base class for all expressions.
typet & type()
Return the type of the expression.
The Boolean constant false.
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
const std::string & id_string() const
const irep_idt & id() const
The Boolean constant true.
#define UNREACHABLE_BECAUSE(REASON)
const constant_exprt & to_constant_expr(const exprt &expr)
Cast an exprt to a constant_exprt.
exprt is_positive(const exprt &x)