25 if(index.
id()==ID_div &&
28 if(index.
op0().
id()==ID_mult &&
36 else if(index.
op0().
id()==ID_mult &&
46 if(array.
id()==ID_lambda)
50 const exprt &lambda_expr=array;
63 else if(array.
id()==ID_with)
67 const exprt &with_expr=array;
72 if(with_expr.
op1()==expr.
op1())
85 if(equality_expr.lhs().type()!=equality_expr.rhs().type())
92 new_index_expr.
array()=with_expr.
op0();
97 if(equality_expr.is_true())
102 else if(equality_expr.is_false())
104 expr.
swap(new_index_expr);
108 if_exprt if_expr(equality_expr, with_expr.
op2(), new_index_expr);
116 else if(array.
id()==ID_constant ||
117 array.
id()==ID_array)
124 else if(i<0 || i>=array.
operands().size())
136 else if(array.
id()==ID_string_constant)
145 else if(i<0 || i>value.
size())
158 else if(array.
id()==ID_array_of)
167 else if(array.
id() == ID_array_list)
170 for(
size_t i=0; i<array.
operands().size()/2; i++)
183 else if(array.
id()==ID_byte_extract_little_endian ||
184 array.
id()==ID_byte_extract_big_endian)
188 if(array_type.
id()==ID_array)
211 else if(array.
id()==ID_if)
const if_exprt & to_if_expr(const exprt &expr)
Cast a generic exprt to an if_exprt.
The type of an expression.
bool simplify_node(exprt &expr)
bool simplify_index(exprt &expr)
void copy_to_operands(const exprt &expr)
The trinary if-then-else operator.
mp_integer pointer_offset_size(const typet &type, const namespacet &ns)
Compute the size of a type in bytes, rounding up to full bytes.
bool simplify_if(if_exprt &expr)
const irep_idt & id() const
bool replace_expr(const exprt &what, const exprt &by, exprt &dest)
API to expression classes.
const irep_idt & get(const irep_namet &name) const
const typet & follow(const typet &) const
bool simplify_rec(exprt &expr)
Base class for all expressions.
virtual bool simplify(exprt &expr)
std::size_t integer2size_t(const mp_integer &n)
const typet & subtype() const
void make_typecast(const typet &_type)
const index_exprt & to_index_expr(const exprt &expr)
Cast a generic exprt to an index_exprt.
bool simplify_inequality(exprt &expr)
simplifies inequalities !=, <=, <, >=, >, and also ==