Go to the documentation of this file.
18 const bool equality_types_match = expr.
lhs().
type() == expr.
rhs().
type();
21 "types of expressions on each side of equality should match",
43 lhs_bv.size() == rhs_bv.size(),
44 "sizes of lhs and rhs bitvectors should match",
68 "lhs and rhs types should match in verilog_case_equality",
76 lhs_bv.size() == rhs_bv.size(),
77 "bitvector arguments to verilog_case_equality should have the same size",
83 if(expr.
id()==ID_verilog_case_inequality)
literalt record_array_equality(const equal_exprt &expr)
bool is_unbounded_array(const typet &type) const override
std::vector< literalt > bvt
bool has_byte_operator(const exprt &src)
virtual literalt new_variable()=0
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
typet & type()
Return the type of the expression.
#define DATA_INVARIANT_WITH_DIAGNOSTICS(CONDITION, REASON,...)
virtual const bvt & convert_bv(const exprt &expr, const optionalt< std::size_t > expected_width={})
Convert expression to vector of literalts, using an internal cache to speed up conversion if availabl...
virtual literalt convert_verilog_case_equality(const binary_relation_exprt &expr)
exprt lower_byte_operators(const exprt &src, const namespacet &ns)
Rewrite an expression possibly containing byte-extract or -update expressions to more fundamental ope...
const irep_idt & id() const
A base class for relations, i.e., binary predicates whose two operands have the same type.
const equal_exprt & to_equal_expr(const exprt &expr)
Cast an exprt to an equal_exprt.
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.