cprover
bitvector_expr.h File Reference

API to expression classes for bitvectors. More...

#include "std_expr.h"
+ Include dependency graph for bitvector_expr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  bswap_exprt
 The byte swap expression. More...
 
class  bitnot_exprt
 Bit-wise negation of bit-vectors. More...
 
class  bitor_exprt
 Bit-wise OR. More...
 
class  bitxor_exprt
 Bit-wise XOR. More...
 
class  bitand_exprt
 Bit-wise AND. More...
 
class  shift_exprt
 A base class for shift and rotate operators. More...
 
class  shl_exprt
 Left shift. More...
 
class  ashr_exprt
 Arithmetic right shift. More...
 
class  lshr_exprt
 Logical right shift. More...
 
class  extractbit_exprt
 Extracts a single bit of a bit-vector operand. More...
 
class  extractbits_exprt
 Extracts a sub-range of a bit-vector operand. More...
 
class  replication_exprt
 Bit-vector replication. More...
 
class  concatenation_exprt
 Concatenation of bit-vector operands. More...
 
class  popcount_exprt
 The popcount (counting the number of bits set to 1) expression. More...
 

Functions

template<>
bool can_cast_expr< bswap_exprt > (const exprt &base)
 
void validate_expr (const bswap_exprt &value)
 
const bswap_exprtto_bswap_expr (const exprt &expr)
 Cast an exprt to a bswap_exprt. More...
 
bswap_exprtto_bswap_expr (exprt &expr)
 Cast an exprt to a bswap_exprt. More...
 
template<>
bool can_cast_expr< bitnot_exprt > (const exprt &base)
 
void validate_expr (const bitnot_exprt &value)
 
const bitnot_exprtto_bitnot_expr (const exprt &expr)
 Cast an exprt to a bitnot_exprt. More...
 
bitnot_exprtto_bitnot_expr (exprt &expr)
 Cast an exprt to a bitnot_exprt. More...
 
template<>
bool can_cast_expr< bitor_exprt > (const exprt &base)
 
const bitor_exprtto_bitor_expr (const exprt &expr)
 Cast an exprt to a bitor_exprt. More...
 
bitor_exprtto_bitor_expr (exprt &expr)
 Cast an exprt to a bitor_exprt. More...
 
template<>
bool can_cast_expr< bitxor_exprt > (const exprt &base)
 
const bitxor_exprtto_bitxor_expr (const exprt &expr)
 Cast an exprt to a bitxor_exprt. More...
 
bitxor_exprtto_bitxor_expr (exprt &expr)
 Cast an exprt to a bitxor_exprt. More...
 
template<>
bool can_cast_expr< bitand_exprt > (const exprt &base)
 
const bitand_exprtto_bitand_expr (const exprt &expr)
 Cast an exprt to a bitand_exprt. More...
 
bitand_exprtto_bitand_expr (exprt &expr)
 Cast an exprt to a bitand_exprt. More...
 
template<>
bool can_cast_expr< shift_exprt > (const exprt &base)
 
void validate_expr (const shift_exprt &value)
 
const shift_exprtto_shift_expr (const exprt &expr)
 Cast an exprt to a shift_exprt. More...
 
shift_exprtto_shift_expr (exprt &expr)
 Cast an exprt to a shift_exprt. More...
 
const shl_exprtto_shl_expr (const exprt &expr)
 Cast an exprt to a shl_exprt. More...
 
shl_exprtto_shl_expr (exprt &expr)
 Cast an exprt to a shl_exprt. More...
 
template<>
bool can_cast_expr< extractbit_exprt > (const exprt &base)
 
void validate_expr (const extractbit_exprt &value)
 
const extractbit_exprtto_extractbit_expr (const exprt &expr)
 Cast an exprt to an extractbit_exprt. More...
 
extractbit_exprtto_extractbit_expr (exprt &expr)
 Cast an exprt to an extractbit_exprt. More...
 
template<>
bool can_cast_expr< extractbits_exprt > (const exprt &base)
 
void validate_expr (const extractbits_exprt &value)
 
const extractbits_exprtto_extractbits_expr (const exprt &expr)
 Cast an exprt to an extractbits_exprt. More...
 
extractbits_exprtto_extractbits_expr (exprt &expr)
 Cast an exprt to an extractbits_exprt. More...
 
template<>
bool can_cast_expr< replication_exprt > (const exprt &base)
 
void validate_expr (const replication_exprt &value)
 
const replication_exprtto_replication_expr (const exprt &expr)
 Cast an exprt to a replication_exprt. More...
 
replication_exprtto_replication_expr (exprt &expr)
 Cast an exprt to a replication_exprt. More...
 
template<>
bool can_cast_expr< concatenation_exprt > (const exprt &base)
 
const concatenation_exprtto_concatenation_expr (const exprt &expr)
 Cast an exprt to a concatenation_exprt. More...
 
concatenation_exprtto_concatenation_expr (exprt &expr)
 Cast an exprt to a concatenation_exprt. More...
 
template<>
bool can_cast_expr< popcount_exprt > (const exprt &base)
 
void validate_expr (const popcount_exprt &value)
 
const popcount_exprtto_popcount_expr (const exprt &expr)
 Cast an exprt to a popcount_exprt. More...
 
popcount_exprtto_popcount_expr (exprt &expr)
 Cast an exprt to a popcount_exprt. More...
 

Detailed Description

API to expression classes for bitvectors.

Definition in file bitvector_expr.h.

Function Documentation

◆ can_cast_expr< bitand_exprt >()

template<>
bool can_cast_expr< bitand_exprt > ( const exprt base)
inline

Definition at line 204 of file bitvector_expr.h.

◆ can_cast_expr< bitnot_exprt >()

template<>
bool can_cast_expr< bitnot_exprt > ( const exprt base)
inline

Definition at line 90 of file bitvector_expr.h.

◆ can_cast_expr< bitor_exprt >()

template<>
bool can_cast_expr< bitor_exprt > ( const exprt base)
inline

Definition at line 134 of file bitvector_expr.h.

◆ can_cast_expr< bitxor_exprt >()

template<>
bool can_cast_expr< bitxor_exprt > ( const exprt base)
inline

Definition at line 169 of file bitvector_expr.h.

◆ can_cast_expr< bswap_exprt >()

template<>
bool can_cast_expr< bswap_exprt > ( const exprt base)
inline

Definition at line 45 of file bitvector_expr.h.

◆ can_cast_expr< concatenation_exprt >()

template<>
bool can_cast_expr< concatenation_exprt > ( const exprt base)
inline

Definition at line 607 of file bitvector_expr.h.

◆ can_cast_expr< extractbit_exprt >()

template<>
bool can_cast_expr< extractbit_exprt > ( const exprt base)
inline

Definition at line 395 of file bitvector_expr.h.

◆ can_cast_expr< extractbits_exprt >()

template<>
bool can_cast_expr< extractbits_exprt > ( const exprt base)
inline

Definition at line 483 of file bitvector_expr.h.

◆ can_cast_expr< popcount_exprt >()

template<>
bool can_cast_expr< popcount_exprt > ( const exprt base)
inline

Definition at line 647 of file bitvector_expr.h.

◆ can_cast_expr< replication_exprt >()

template<>
bool can_cast_expr< replication_exprt > ( const exprt base)
inline

Definition at line 551 of file bitvector_expr.h.

◆ can_cast_expr< shift_exprt >()

template<>
bool can_cast_expr< shift_exprt > ( const exprt base)
inline

Definition at line 261 of file bitvector_expr.h.

◆ to_bitand_expr() [1/2]

const bitand_exprt& to_bitand_expr ( const exprt expr)
inline

Cast an exprt to a bitand_exprt.

expr must be known to be bitand_exprt.

Parameters
exprSource expression
Returns
Object of type bitand_exprt

Definition at line 215 of file bitvector_expr.h.

◆ to_bitand_expr() [2/2]

bitand_exprt& to_bitand_expr ( exprt expr)
inline

Cast an exprt to a bitand_exprt.

expr must be known to be bitand_exprt.

Parameters
exprSource expression
Returns
Object of type bitand_exprt

Definition at line 222 of file bitvector_expr.h.

◆ to_bitnot_expr() [1/2]

const bitnot_exprt& to_bitnot_expr ( const exprt expr)
inline

Cast an exprt to a bitnot_exprt.

expr must be known to be bitnot_exprt.

Parameters
exprSource expression
Returns
Object of type bitnot_exprt

Definition at line 106 of file bitvector_expr.h.

◆ to_bitnot_expr() [2/2]

bitnot_exprt& to_bitnot_expr ( exprt expr)
inline

Cast an exprt to a bitnot_exprt.

expr must be known to be bitnot_exprt.

Parameters
exprSource expression
Returns
Object of type bitnot_exprt

Definition at line 115 of file bitvector_expr.h.

◆ to_bitor_expr() [1/2]

const bitor_exprt& to_bitor_expr ( const exprt expr)
inline

Cast an exprt to a bitor_exprt.

expr must be known to be bitor_exprt.

Parameters
exprSource expression
Returns
Object of type bitor_exprt

Definition at line 145 of file bitvector_expr.h.

◆ to_bitor_expr() [2/2]

bitor_exprt& to_bitor_expr ( exprt expr)
inline

Cast an exprt to a bitor_exprt.

expr must be known to be bitor_exprt.

Parameters
exprSource expression
Returns
Object of type bitor_exprt

Definition at line 152 of file bitvector_expr.h.

◆ to_bitxor_expr() [1/2]

const bitxor_exprt& to_bitxor_expr ( const exprt expr)
inline

Cast an exprt to a bitxor_exprt.

expr must be known to be bitxor_exprt.

Parameters
exprSource expression
Returns
Object of type bitxor_exprt

Definition at line 180 of file bitvector_expr.h.

◆ to_bitxor_expr() [2/2]

bitxor_exprt& to_bitxor_expr ( exprt expr)
inline

Cast an exprt to a bitxor_exprt.

expr must be known to be bitxor_exprt.

Parameters
exprSource expression
Returns
Object of type bitxor_exprt

Definition at line 187 of file bitvector_expr.h.

◆ to_bswap_expr() [1/2]

const bswap_exprt& to_bswap_expr ( const exprt expr)
inline

Cast an exprt to a bswap_exprt.

expr must be known to be bswap_exprt.

Parameters
exprSource expression
Returns
Object of type bswap_exprt

Definition at line 63 of file bitvector_expr.h.

◆ to_bswap_expr() [2/2]

bswap_exprt& to_bswap_expr ( exprt expr)
inline

Cast an exprt to a bswap_exprt.

expr must be known to be bswap_exprt.

Parameters
exprSource expression
Returns
Object of type bswap_exprt

Definition at line 72 of file bitvector_expr.h.

◆ to_concatenation_expr() [1/2]

const concatenation_exprt& to_concatenation_expr ( const exprt expr)
inline

Cast an exprt to a concatenation_exprt.

expr must be known to be concatenation_exprt.

Parameters
exprSource expression
Returns
Object of type concatenation_exprt

Definition at line 618 of file bitvector_expr.h.

◆ to_concatenation_expr() [2/2]

concatenation_exprt& to_concatenation_expr ( exprt expr)
inline

Cast an exprt to a concatenation_exprt.

expr must be known to be concatenation_exprt.

Parameters
exprSource expression
Returns
Object of type concatenation_exprt

Definition at line 625 of file bitvector_expr.h.

◆ to_extractbit_expr() [1/2]

const extractbit_exprt& to_extractbit_expr ( const exprt expr)
inline

Cast an exprt to an extractbit_exprt.

expr must be known to be extractbit_exprt.

Parameters
exprSource expression
Returns
Object of type extractbit_exprt

Definition at line 411 of file bitvector_expr.h.

◆ to_extractbit_expr() [2/2]

extractbit_exprt& to_extractbit_expr ( exprt expr)
inline

Cast an exprt to an extractbit_exprt.

expr must be known to be extractbit_exprt.

Parameters
exprSource expression
Returns
Object of type extractbit_exprt

Definition at line 420 of file bitvector_expr.h.

◆ to_extractbits_expr() [1/2]

const extractbits_exprt& to_extractbits_expr ( const exprt expr)
inline

Cast an exprt to an extractbits_exprt.

expr must be known to be extractbits_exprt.

Parameters
exprSource expression
Returns
Object of type extractbits_exprt

Definition at line 499 of file bitvector_expr.h.

◆ to_extractbits_expr() [2/2]

extractbits_exprt& to_extractbits_expr ( exprt expr)
inline

Cast an exprt to an extractbits_exprt.

expr must be known to be extractbits_exprt.

Parameters
exprSource expression
Returns
Object of type extractbits_exprt

Definition at line 508 of file bitvector_expr.h.

◆ to_popcount_expr() [1/2]

const popcount_exprt& to_popcount_expr ( const exprt expr)
inline

Cast an exprt to a popcount_exprt.

expr must be known to be popcount_exprt.

Parameters
exprSource expression
Returns
Object of type popcount_exprt

Definition at line 663 of file bitvector_expr.h.

◆ to_popcount_expr() [2/2]

popcount_exprt& to_popcount_expr ( exprt expr)
inline

Cast an exprt to a popcount_exprt.

expr must be known to be popcount_exprt.

Parameters
exprSource expression
Returns
Object of type popcount_exprt

Definition at line 672 of file bitvector_expr.h.

◆ to_replication_expr() [1/2]

const replication_exprt& to_replication_expr ( const exprt expr)
inline

Cast an exprt to a replication_exprt.

expr must be known to be replication_exprt.

Parameters
exprSource expression
Returns
Object of type replication_exprt

Definition at line 567 of file bitvector_expr.h.

◆ to_replication_expr() [2/2]

replication_exprt& to_replication_expr ( exprt expr)
inline

Cast an exprt to a replication_exprt.

expr must be known to be replication_exprt.

Parameters
exprSource expression
Returns
Object of type replication_exprt

Definition at line 576 of file bitvector_expr.h.

◆ to_shift_expr() [1/2]

const shift_exprt& to_shift_expr ( const exprt expr)
inline

Cast an exprt to a shift_exprt.

expr must be known to be shift_exprt.

Parameters
exprSource expression
Returns
Object of type shift_exprt

Definition at line 278 of file bitvector_expr.h.

◆ to_shift_expr() [2/2]

shift_exprt& to_shift_expr ( exprt expr)
inline

Cast an exprt to a shift_exprt.

expr must be known to be shift_exprt.

Parameters
exprSource expression
Returns
Object of type shift_exprt

Definition at line 286 of file bitvector_expr.h.

◆ to_shl_expr() [1/2]

const shl_exprt& to_shl_expr ( const exprt expr)
inline

Cast an exprt to a shl_exprt.

expr must be known to be shl_exprt.

Parameters
exprSource expression
Returns
Object of type shl_exprt

Definition at line 314 of file bitvector_expr.h.

◆ to_shl_expr() [2/2]

shl_exprt& to_shl_expr ( exprt expr)
inline

Cast an exprt to a shl_exprt.

expr must be known to be shl_exprt.

Parameters
exprSource expression
Returns
Object of type shl_exprt

Definition at line 323 of file bitvector_expr.h.

◆ validate_expr() [1/7]

void validate_expr ( const bitnot_exprt value)
inline

Definition at line 95 of file bitvector_expr.h.

◆ validate_expr() [2/7]

void validate_expr ( const bswap_exprt value)
inline

Definition at line 50 of file bitvector_expr.h.

◆ validate_expr() [3/7]

void validate_expr ( const extractbit_exprt value)
inline

Definition at line 400 of file bitvector_expr.h.

◆ validate_expr() [4/7]

void validate_expr ( const extractbits_exprt value)
inline

Definition at line 488 of file bitvector_expr.h.

◆ validate_expr() [5/7]

void validate_expr ( const popcount_exprt value)
inline

Definition at line 652 of file bitvector_expr.h.

◆ validate_expr() [6/7]

void validate_expr ( const replication_exprt value)
inline

Definition at line 556 of file bitvector_expr.h.

◆ validate_expr() [7/7]

void validate_expr ( const shift_exprt value)
inline

Definition at line 267 of file bitvector_expr.h.