37std::pair<exprt, string_constraintst>
87 return {
isprefix, std::move(constraints)};
105std::pair<exprt, string_constraintst>
128DEPRECATED(
SINCE(2017, 10, 5,
"should use `string_length s == 0` instead"))
191 array_pool.get_or_create_length(
s1),
192 array_pool.get_or_create_length(s0)));
199 array_pool.get_or_create_length(
s1),
200 array_pool.get_or_create_length(s0)));
212 array_pool.get_or_create_length(
s1),
213 array_pool.get_or_create_length(s0)));
217 array_pool.get_or_create_length(s0),
218 array_pool.get_or_create_length(
s1)),
249std::pair<exprt, string_constraintst>
array_string_exprt get_string_expr(array_poolt &array_pool, const exprt &expr)
Fetch the string_exprt corresponding to the given refined_string_exprt.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
exprt get_or_create_length(const array_string_exprt &s)
Get the length of an array_string_exprt from the array_pool.
const typet & length_type() const
A base class for relations, i.e., binary predicates whose two operands have the same type.
Base class for all expressions.
typet & type()
Return the type of the expression.
Application of (mathematical) function.
exprt::operandst argumentst
const irep_idt & id() const
The plus expression Associativity is not specified.
message_handlert & message_handler
std::pair< exprt, string_constraintst > add_axioms_for_is_prefix(const array_string_exprt &prefix, const array_string_exprt &str, const exprt &offset)
Add axioms stating that the returned expression is true exactly when the offset is greater or equal t...
std::pair< exprt, string_constraintst > add_axioms_for_contains(const function_application_exprt &f)
Test whether a string contains another.
symbol_generatort fresh_symbol
Expression to hold a symbol (variable)
Semantic type conversion.
The type of an expression, extends irept.
#define SINCE(year, month, day, msg)
static bool is_empty(const goto_programt &goto_program)
API to expression classes for 'mathematical' expressions.
#define PRECONDITION(CONDITION)
Generates string constraints to link results from string functions with their arguments.
exprt is_positive(const exprt &x)
exprt maximum(const exprt &a, const exprt &b)
exprt zero_if_negative(const exprt &expr)
Returns a non-negative version of the argument.
static bool contains(const exprt &index, const symbol_exprt &qvar)
Look for symbol qvar in the expression index and return true if found.
binary_relation_exprt greater_or_equal_to(exprt lhs, exprt rhs)
binary_relation_exprt greater_than(exprt lhs, exprt rhs)
equal_exprt equal_to(exprt lhs, exprt rhs)
Collection of constraints of different types: existential formulas, universal formulas,...
std::vector< string_not_contains_constraintt > not_contains
std::vector< exprt > existential
std::vector< string_constraintt > universal
Constraints to encode non containement of strings.