3 #ifndef CPROVER_SOLVERS_SMT2_INCREMENTAL_STRUCT_ENCODING_H
4 #define CPROVER_SOLVERS_SMT2_INCREMENTAL_STRUCT_ENCODING_H
36 std::reference_wrapper<const namespacet>
ns;
Base class for all expressions.
Extract member of struct or union.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Encodes struct types/values into non-struct expressions/types.
std::unique_ptr< boolbv_widtht > boolbv_width
std::reference_wrapper< const namespacet > ns
typet encode(typet type) const
exprt decode(const exprt &encoded, const struct_tag_typet &original_type) const
Reconstructs a struct expression of the original_type using the data from the bit vector encoded expr...
exprt encode_member(const member_exprt &member_expr) const
The member expression selects the value of a field from a struct or union.
struct_encodingt(const namespacet &ns)
A struct tag type, i.e., struct_typet with an identifier.
The type of an expression, extends irept.
A union tag type, i.e., union_typet with an identifier.
Defines typet, type_with_subtypet and type_with_subtypest.