32 bv_lhs.size() == bv_rhs.size() && !bv_lhs.empty() &&
33 bvtype_lhs == bvtype_rhs)
92 bvt extract0, extract1;
94 extract0.resize(bv_lhs.size() / 2);
95 extract1.resize(bv_rhs.size() / 2);
97 for(std::size_t i = 0; i < extract0.size(); i++)
98 extract0[i] = bv_lhs[i * 2];
100 for(std::size_t i = 0; i < extract1.size(); i++)
101 extract1[i] = bv_rhs[i * 2];
Pre-defined bitvector types.
const floatbv_typet & to_floatbv_type(const typet &type)
Cast a typet to a floatbv_typet.
bvtypet get_bvtype(const typet &type)
A base class for relations, i.e., binary predicates whose two operands have the same type.
virtual literalt convert_bv_rel(const binary_relation_exprt &)
Flatten <, >, <= and >= expressions.
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...
literalt rel(const bvt &bv0, irep_idt id, const bvt &bv1, representationt rep)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
virtual literalt equality(const exprt &e1, const exprt &e2)
Base class for all expressions.
typet & type()
Return the type of the expression.
literalt relation(const bvt &src1, relt rel, const bvt &src2)
const irep_idt & id() const
virtual literalt convert_rest(const exprt &expr)
void l_set_to_true(literalt a)
virtual literalt limplies(literalt a, literalt b)=0
virtual bool has_set_to() const
std::vector< literalt > bvt