17 const bool equality_types_match = expr.
lhs().
type() == expr.
rhs().
type();
20 "types of expressions on each side of equality should match",
42 lhs_bv.size() == rhs_bv.size(),
43 "sizes of lhs and rhs bitvectors should match",
67 "lhs and rhs types should match in verilog_case_equality",
75 lhs_bv.size() == rhs_bv.size(),
76 "bitvector arguments to verilog_case_equality should have the same size",
82 if(expr.
id()==ID_verilog_case_inequality)
bool has_byte_operator(const exprt &src)
Return true iff src or one of its operands contain a byte extract or byte update expression.
Expression classes for byte-level operators.
exprt lower_byte_operators(const exprt &src, const namespacet &ns)
Rewrite an expression possibly containing byte-extract or -update expressions to more fundamental ope...
literalt record_array_equality(const equal_exprt &expr)
A base class for relations, i.e., binary predicates whose two operands have the same type.
virtual const bvt & convert_bv(const exprt &expr, const std::optional< std::size_t > expected_width={})
Convert expression to vector of literalts, using an internal cache to speed up conversion if availabl...
bool is_unbounded_array(const typet &type) const override
virtual literalt convert_verilog_case_equality(const binary_relation_exprt &expr)
virtual literalt convert_equality(const equal_exprt &expr)
literalt equal(const bvt &op0, const bvt &op1)
Bit-blasting ID_equal and use in other encodings.
typet & type()
Return the type of the expression.
const irep_idt & id() const
virtual literalt new_variable()=0
std::vector< literalt > bvt
#define DATA_INVARIANT_WITH_DIAGNOSTICS(CONDITION, REASON,...)
API to expression classes.
const equal_exprt & to_equal_expr(const exprt &expr)
Cast an exprt to an equal_exprt.
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.