9 #ifndef CPROVER_JAVA_BYTECODE_JAVA_TRACE_VALIDATION_H
10 #define CPROVER_JAVA_BYTECODE_JAVA_TRACE_VALIDATION_H
27 #define OPT_JAVA_TRACE_VALIDATION \
30 #define HELP_JAVA_TRACE_VALIDATION \
31 " {y--validate-trace} \t throw an error if the structure of the" \
32 " counterexample trace does not match certain assumptions (experimental," \
33 " currently java only)\n"
44 const bool run_check =
false,
Operator to return the address of an object.
A constant literal expression.
Base class for all expressions.
Extract member of struct or union.
Class that provides messages with a built-in verbosity 'level'.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Struct constructor from list of elements.
Expression to hold a symbol (variable)
bool valid_lhs_expr_high_level(const exprt &lhs)
bool check_address_structure(const address_of_exprt &address)
bool valid_rhs_expr_high_level(const exprt &rhs)
bool check_member_structure(const member_exprt &expr)
bool check_index_structure(const exprt &index_expr)
void check_trace_assumptions(const goto_tracet &trace, const namespacet &ns, const messaget &log, const bool run_check=false, const validation_modet vm=validation_modet::INVARIANT)
Checks that the structure of each step of the trace matches certain criteria.
bool check_symbol_structure(const exprt &expr)
bool check_constant_structure(const constant_exprt &constant_expr)
std::optional< symbol_exprt > get_inner_symbol_expr(exprt expr)
Recursively extracts the first operand of an expression until it reaches a symbol and returns it,...
bool can_evaluate_to_constant(const exprt &expression)
bool check_struct_structure(const struct_exprt &expr)