cprover
boolbvt Class Reference

#include <boolbv.h>

+ Inheritance diagram for boolbvt:
+ Collaboration diagram for boolbvt:

Classes

class  quantifiert
 

Public Types

enum  unbounded_arrayt { unbounded_arrayt::U_NONE, unbounded_arrayt::U_ALL, unbounded_arrayt::U_AUTO }
 
- Public Types inherited from arrayst
typedef equalityt SUB
 
- Public Types inherited from prop_conv_solvert
typedef std::map< irep_idt, literaltsymbolst
 
typedef std::unordered_map< exprt, literalt, irep_hashcachet
 
- Public Types inherited from decision_proceduret
enum  resultt { resultt::D_SATISFIABLE, resultt::D_UNSATISFIABLE, resultt::D_ERROR }
 
- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 

Public Member Functions

 boolbvt (const namespacet &_ns, propt &_prop)
 
virtual const bvtconvert_bv (const exprt &expr, const optionalt< std::size_t > expected_width=nullopt)
 
virtual bvt convert_bitvector (const exprt &expr)
 Converts an expression into its gate-level representation and returns a vector of literals corresponding to the outputs of the Boolean circuit. More...
 
exprt get (const exprt &expr) const override
 
void set_to (const exprt &expr, bool value) override
 
void print_assignment (std::ostream &out) const override
 
void clear_cache () override
 
void post_process () override
 
virtual bool literal (const exprt &expr, std::size_t bit, literalt &literal) const
 
mp_integer get_value (const bvt &bv)
 
mp_integer get_value (const bvt &bv, std::size_t offset, std::size_t width)
 
const boolbv_maptget_map () const
 
- Public Member Functions inherited from arrayst
 arrayst (const namespacet &_ns, propt &_prop)
 
literalt record_array_equality (const equal_exprt &expr)
 
void record_array_index (const index_exprt &expr)
 
- Public Member Functions inherited from equalityt
 equalityt (const namespacet &_ns, propt &_prop)
 
virtual literalt equality (const exprt &e1, const exprt &e2)
 
void post_process () override
 
- Public Member Functions inherited from prop_conv_solvert
 prop_conv_solvert (const namespacet &_ns, propt &_prop)
 
virtual ~prop_conv_solvert ()=default
 
void set_to (const exprt &expr, bool value) override
 
decision_proceduret::resultt dec_solve () override
 
void print_assignment (std::ostream &out) const override
 
std::string decision_procedure_text () const override
 
exprt get (const exprt &expr) const override
 
virtual tvt l_get (literalt a) const override
 
void set_frozen (literalt a) override
 
void set_assumptions (const bvt &_assumptions) override
 
bool has_set_assumptions () const override
 
void set_all_frozen () override
 
literalt convert (const exprt &expr) override
 
bool is_in_conflict (literalt l) const override
 determine whether a variable is in the final conflict More...
 
bool has_is_in_conflict () const override
 
bool literal (const symbol_exprt &expr, literalt &literal) const
 
const cachetget_cache () const
 
const symbolstget_symbols () const
 
void set_time_limit_seconds (uint32_t lim) override
 
virtual void set_frozen (literalt a)
 
virtual void set_frozen (const bvt &)
 
- Public Member Functions inherited from prop_convt
 prop_convt (const namespacet &_ns)
 
virtual ~prop_convt ()
 
literalt operator() (const exprt &expr)
 
virtual void set_frozen (const bvt &)
 
- Public Member Functions inherited from decision_proceduret
 decision_proceduret (const namespacet &_ns)
 
virtual ~decision_proceduret ()
 
void set_to_true (const exprt &expr)
 
void set_to_false (const exprt &expr)
 
resultt operator() ()
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
messagetoperator= (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level) const
 
mstreamterror () const
 
mstreamtwarning () const
 
mstreamtresult () const
 
mstreamtstatus () const
 
mstreamtstatistics () const
 
mstreamtprogress () const
 
mstreamtdebug () const
 
void conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const
 Generate output to message_stream using output_generator if the configured verbosity is at least as high as that of message_stream. More...
 

Public Attributes

unbounded_arrayt unbounded_array
 
boolbv_widtht boolbv_width
 
- Public Attributes inherited from prop_conv_solvert
bool use_cache = true
 
bool equality_propagation = true
 
bool freeze_all = false
 

Protected Types

typedef arrayst SUB
 
typedef std::unordered_map< const exprt, bvt, irep_hashbv_cachet
 
typedef std::list< quantifiertquantifier_listt
 
typedef std::vector< std::size_t > offset_mapt
 
- Protected Types inherited from arrayst
enum  lazy_typet {
  lazy_typet::ARRAY_ACKERMANN, lazy_typet::ARRAY_WITH, lazy_typet::ARRAY_IF, lazy_typet::ARRAY_OF,
  lazy_typet::ARRAY_TYPECAST
}
 
typedef std::list< array_equalitytarray_equalitiest
 
typedef std::set< exprtindex_sett
 
typedef std::map< std::size_t, index_settindex_mapt
 
- Protected Types inherited from equalityt
typedef std::unordered_map< const exprt, unsigned, irep_hashelementst
 
typedef std::map< std::pair< unsigned, unsigned >, literaltequalitiest
 
typedef std::map< unsigned, exprtelements_revt
 
typedef std::unordered_map< const typet, typestructt, irep_hashtypemapt
 

Protected Member Functions

literalt convert_rest (const exprt &expr) override
 
virtual bool boolbv_set_equality_to_true (const equal_exprt &expr)
 
void conversion_failed (const exprt &expr, bvt &bv)
 
bvt conversion_failed (const exprt &expr)
 
bool type_conversion (const typet &src_type, const bvt &src, const typet &dest_type, bvt &dest)
 
virtual literalt convert_bv_rel (const exprt &expr)
 
virtual literalt convert_typecast (const typecast_exprt &expr)
 conversion from bitvector types to boolean More...
 
virtual literalt convert_reduction (const unary_exprt &expr)
 
virtual literalt convert_onehot (const unary_exprt &expr)
 
virtual literalt convert_extractbit (const extractbit_exprt &expr)
 
virtual literalt convert_overflow (const exprt &expr)
 
virtual literalt convert_equality (const equal_exprt &expr)
 
virtual literalt convert_verilog_case_equality (const binary_relation_exprt &expr)
 
virtual literalt convert_ieee_float_rel (const exprt &expr)
 
virtual literalt convert_quantifier (const quantifier_exprt &expr)
 
virtual bvt convert_index (const exprt &array, const mp_integer &index)
 index operator with constant index More...
 
virtual bvt convert_index (const index_exprt &expr)
 
virtual bvt convert_bswap (const bswap_exprt &expr)
 
virtual bvt convert_byte_extract (const byte_extract_exprt &expr)
 
virtual bvt convert_byte_update (const byte_update_exprt &expr)
 
virtual bvt convert_constraint_select_one (const exprt &expr)
 
virtual bvt convert_if (const if_exprt &expr)
 
virtual bvt convert_struct (const struct_exprt &expr)
 
virtual bvt convert_array (const exprt &expr)
 
virtual bvt convert_vector (const vector_exprt &expr)
 
virtual bvt convert_complex (const complex_exprt &expr)
 
virtual bvt convert_complex_real (const complex_real_exprt &expr)
 
virtual bvt convert_complex_imag (const complex_imag_exprt &expr)
 
virtual bvt convert_lambda (const exprt &expr)
 
virtual bvt convert_let (const let_exprt &)
 
virtual bvt convert_array_of (const array_of_exprt &expr)
 
virtual bvt convert_union (const union_exprt &expr)
 
virtual bvt convert_bv_typecast (const typecast_exprt &expr)
 
virtual bvt convert_add_sub (const exprt &expr)
 
virtual bvt convert_mult (const mult_exprt &expr)
 
virtual bvt convert_div (const div_exprt &expr)
 
virtual bvt convert_mod (const mod_exprt &expr)
 
virtual bvt convert_floatbv_op (const exprt &expr)
 
virtual bvt convert_floatbv_typecast (const floatbv_typecast_exprt &expr)
 
virtual bvt convert_member (const member_exprt &expr)
 
virtual bvt convert_with (const exprt &expr)
 
virtual bvt convert_update (const exprt &expr)
 
virtual bvt convert_case (const exprt &expr)
 
virtual bvt convert_cond (const cond_exprt &)
 
virtual bvt convert_shift (const binary_exprt &expr)
 
virtual bvt convert_bitwise (const exprt &expr)
 
virtual bvt convert_unary_minus (const unary_minus_exprt &expr)
 
virtual bvt convert_abs (const abs_exprt &expr)
 
virtual bvt convert_concatenation (const concatenation_exprt &expr)
 
virtual bvt convert_replication (const replication_exprt &expr)
 
virtual bvt convert_bv_literals (const exprt &expr)
 
virtual bvt convert_constant (const constant_exprt &expr)
 
virtual bvt convert_extractbits (const extractbits_exprt &expr)
 
virtual bvt convert_symbol (const exprt &expr)
 
virtual bvt convert_bv_reduction (const unary_exprt &expr)
 
virtual bvt convert_not (const not_exprt &expr)
 
virtual bvt convert_power (const binary_exprt &expr)
 
virtual bvt convert_function_application (const function_application_exprt &expr)
 
virtual exprt make_bv_expr (const typet &type, const bvt &bv)
 
virtual exprt make_free_bv_expr (const typet &type)
 
void convert_with (const typet &type, const exprt &op1, const exprt &op2, const bvt &prev_bv, bvt &next_bv)
 
void convert_with_bv (const exprt &op1, const exprt &op2, const bvt &prev_bv, bvt &next_bv)
 
void convert_with_array (const array_typet &type, const exprt &op1, const exprt &op2, const bvt &prev_bv, bvt &next_bv)
 
void convert_with_union (const union_typet &type, const exprt &op2, const bvt &prev_bv, bvt &next_bv)
 
void convert_with_struct (const struct_typet &type, const exprt &op1, const exprt &op2, const bvt &prev_bv, bvt &next_bv)
 
void convert_update_rec (const exprt::operandst &designator, std::size_t d, const typet &type, std::size_t offset, const exprt &new_value, bvt &bv)
 
virtual exprt bv_get_unbounded_array (const exprt &) const
 
virtual exprt bv_get_rec (const bvt &bv, const std::vector< bool > &unknown, std::size_t offset, const typet &type) const
 
exprt bv_get (const bvt &bv, const typet &type) const
 
exprt bv_get_cache (const exprt &expr) const
 
bool is_unbounded_array (const typet &type) const override
 
void post_process_quantifiers ()
 
offset_mapt build_offset_map (const struct_typet &src)
 
- Protected Member Functions inherited from arrayst
virtual void post_process_arrays ()
 
void add_array_constraint (const lazy_constraintt &lazy, bool refine=true)
 adds array constraints (refine=true...lazily for the refinement loop) More...
 
void add_array_constraints ()
 
void add_array_Ackermann_constraints ()
 
void add_array_constraints_equality (const index_sett &index_set, const array_equalityt &array_equality)
 
void add_array_constraints (const index_sett &index_set, const exprt &expr)
 
void add_array_constraints_if (const index_sett &index_set, const if_exprt &exprt)
 
void add_array_constraints_with (const index_sett &index_set, const with_exprt &expr)
 
void add_array_constraints_update (const index_sett &index_set, const update_exprt &expr)
 
void add_array_constraints_array_of (const index_sett &index_set, const array_of_exprt &exprt)
 
void update_index_map (bool update_all)
 
void update_index_map (std::size_t i)
 merge the indices into the root More...
 
void collect_arrays (const exprt &a)
 
void collect_indices ()
 
void collect_indices (const exprt &a)
 
- Protected Member Functions inherited from equalityt
virtual literalt equality2 (const exprt &e1, const exprt &e2)
 
virtual void add_equality_constraints ()
 
virtual void add_equality_constraints (const typestructt &typestruct)
 
- Protected Member Functions inherited from prop_conv_solvert
virtual bool get_bool (const exprt &expr, tvt &value) const
 get a boolean value from counter example if not valid More...
 
virtual literalt convert_bool (const exprt &expr)
 
virtual bool set_equality_to_true (const equal_exprt &expr)
 
virtual literalt get_literal (const irep_idt &symbol)
 
virtual void ignoring (const exprt &expr)
 

Protected Attributes

bv_utilst bv_utils
 
functionst functions
 
boolbv_mapt map
 
bv_cachet bv_cache
 
quantifier_listt quantifier_list
 
numbering< irep_idtstring_numbering
 
- Protected Attributes inherited from arrayst
array_equalitiest array_equalities
 
union_find< exprtarrays
 
index_mapt index_map
 
bool lazy_arrays
 
bool incremental_cache
 
std::list< lazy_constrainttlazy_array_constraints
 
std::map< exprt, bool > expr_map
 
std::set< std::size_t > update_indices
 
- Protected Attributes inherited from equalityt
typemapt typemap
 
- Protected Attributes inherited from prop_conv_solvert
bool post_processing_done = false
 
symbolst symbols
 
cachet cache
 
proptprop
 
- Protected Attributes inherited from decision_proceduret
const namespacetns
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Additional Inherited Members

- Static Public Member Functions inherited from messaget
static unsigned eval_verbosity (const std::string &user_input, const message_levelt default_verbosity, message_handlert &dest)
 Parse a (user-)provided string as a verbosity level and set it as the verbosity of dest. More...
 
static commandt command (unsigned c)
 Create an ECMA-48 SGR (Select Graphic Rendition) command. More...
 
- Static Public Attributes inherited from messaget
static eomt eom
 
static const commandt reset
 return to default formatting, as defined by the terminal More...
 
static const commandt red
 render text with red foreground color More...
 
static const commandt green
 render text with green foreground color More...
 
static const commandt yellow
 render text with yellow foreground color More...
 
static const commandt blue
 render text with blue foreground color More...
 
static const commandt magenta
 render text with magenta foreground color More...
 
static const commandt cyan
 render text with cyan foreground color More...
 
static const commandt bright_red
 render text with bright red foreground color More...
 
static const commandt bright_green
 render text with bright green foreground color More...
 
static const commandt bright_yellow
 render text with bright yellow foreground color More...
 
static const commandt bright_blue
 render text with bright blue foreground color More...
 
static const commandt bright_magenta
 render text with bright magenta foreground color More...
 
static const commandt bright_cyan
 render text with bright cyan foreground color More...
 
static const commandt bold
 render text with bold font More...
 
static const commandt faint
 render text with faint font More...
 
static const commandt italic
 render italic text More...
 
static const commandt underline
 render underlined text More...
 

Detailed Description

Definition at line 32 of file boolbv.h.

Member Typedef Documentation

◆ bv_cachet

typedef std::unordered_map<const exprt, bvt, irep_hash> boolbvt::bv_cachet
protected

Definition at line 117 of file boolbv.h.

◆ offset_mapt

typedef std::vector<std::size_t> boolbvt::offset_mapt
protected

Definition at line 252 of file boolbv.h.

◆ quantifier_listt

typedef std::list<quantifiert> boolbvt::quantifier_listt
protected

Definition at line 247 of file boolbv.h.

◆ SUB

typedef arrayst boolbvt::SUB
protected

Definition at line 108 of file boolbv.h.

Member Enumeration Documentation

◆ unbounded_arrayt

Enumerator
U_NONE 
U_ALL 
U_AUTO 

Definition at line 77 of file boolbv.h.

Constructor & Destructor Documentation

◆ boolbvt()

boolbvt::boolbvt ( const namespacet _ns,
propt _prop 
)
inline

Definition at line 35 of file boolbv.h.

Member Function Documentation

◆ boolbv_set_equality_to_true()

bool boolbvt::boolbv_set_equality_to_true ( const equal_exprt expr)
protectedvirtual

Definition at line 562 of file boolbv.cpp.

◆ build_offset_map()

boolbvt::offset_mapt boolbvt::build_offset_map ( const struct_typet src)
protected

Definition at line 655 of file boolbv.cpp.

◆ bv_get()

exprt boolbvt::bv_get ( const bvt bv,
const typet type 
) const
protected

Definition at line 275 of file boolbv_get.cpp.

◆ bv_get_cache()

exprt boolbvt::bv_get_cache ( const exprt expr) const
protected

Definition at line 282 of file boolbv_get.cpp.

◆ bv_get_rec()

exprt boolbvt::bv_get_rec ( const bvt bv,
const std::vector< bool > &  unknown,
std::size_t  offset,
const typet type 
) const
protectedvirtual

Reimplemented in bv_pointerst.

Definition at line 68 of file boolbv_get.cpp.

◆ bv_get_unbounded_array()

exprt boolbvt::bv_get_unbounded_array ( const exprt expr) const
protectedvirtual

Definition at line 295 of file boolbv_get.cpp.

◆ clear_cache()

void boolbvt::clear_cache ( )
inlineoverridevirtual

Reimplemented from prop_conv_solvert.

Definition at line 58 of file boolbv.h.

◆ conversion_failed() [1/2]

void boolbvt::conversion_failed ( const exprt expr,
bvt bv 
)
inlineprotected

Definition at line 110 of file boolbv.h.

◆ conversion_failed() [2/2]

bvt boolbvt::conversion_failed ( const exprt expr)
protected

Definition at line 151 of file boolbv.cpp.

◆ convert_abs()

bvt boolbvt::convert_abs ( const abs_exprt expr)
protectedvirtual

Definition at line 17 of file boolbv_abs.cpp.

◆ convert_add_sub()

bvt boolbvt::convert_add_sub ( const exprt expr)
protectedvirtual

Definition at line 16 of file boolbv_add_sub.cpp.

◆ convert_array()

bvt boolbvt::convert_array ( const exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_array.cpp.

◆ convert_array_of()

bvt boolbvt::convert_array_of ( const array_of_exprt expr)
protectedvirtual

Definition at line 15 of file boolbv_array_of.cpp.

◆ convert_bitvector()

bvt boolbvt::convert_bitvector ( const exprt expr)
virtual

Converts an expression into its gate-level representation and returns a vector of literals corresponding to the outputs of the Boolean circuit.

Parameters
exprExpression to convert
Returns
A vector of literals corresponding to the outputs of the Boolean circuit
Exceptions
bitvector_conversion_exceptiontraised if converting byte_extraction goes wrong. TODO: extend for other types of conversion exception (diffblue/cbmc#2103).

Reimplemented in bv_pointerst.

Definition at line 168 of file boolbv.cpp.

◆ convert_bitwise()

bvt boolbvt::convert_bitwise ( const exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_bitwise.cpp.

◆ convert_bswap()

bvt boolbvt::convert_bswap ( const bswap_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_bswap.cpp.

◆ convert_bv()

const bvt & boolbvt::convert_bv ( const exprt expr,
const optionalt< std::size_t >  expected_width = nullopt 
)
virtual

Definition at line 112 of file boolbv.cpp.

◆ convert_bv_literals()

bvt boolbvt::convert_bv_literals ( const exprt expr)
protectedvirtual

Definition at line 359 of file boolbv.cpp.

◆ convert_bv_reduction()

bvt boolbvt::convert_bv_reduction ( const unary_exprt expr)
protectedvirtual

Definition at line 53 of file boolbv_reduction.cpp.

◆ convert_bv_rel()

literalt boolbvt::convert_bv_rel ( const exprt expr)
protectedvirtual

Definition at line 17 of file boolbv_bv_rel.cpp.

◆ convert_bv_typecast()

bvt boolbvt::convert_bv_typecast ( const typecast_exprt expr)
protectedvirtual

Definition at line 20 of file boolbv_typecast.cpp.

◆ convert_byte_extract()

bvt boolbvt::convert_byte_extract ( const byte_extract_exprt expr)
protectedvirtual

Definition at line 41 of file boolbv_byte_extract.cpp.

◆ convert_byte_update()

bvt boolbvt::convert_byte_update ( const byte_update_exprt expr)
protectedvirtual

Definition at line 19 of file boolbv_byte_update.cpp.

◆ convert_case()

bvt boolbvt::convert_case ( const exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_case.cpp.

◆ convert_complex()

bvt boolbvt::convert_complex ( const complex_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_complex.cpp.

◆ convert_complex_imag()

bvt boolbvt::convert_complex_imag ( const complex_imag_exprt expr)
protectedvirtual

Definition at line 55 of file boolbv_complex.cpp.

◆ convert_complex_real()

bvt boolbvt::convert_complex_real ( const complex_real_exprt expr)
protectedvirtual

Definition at line 41 of file boolbv_complex.cpp.

◆ convert_concatenation()

bvt boolbvt::convert_concatenation ( const concatenation_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_concatenation.cpp.

◆ convert_cond()

bvt boolbvt::convert_cond ( const cond_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_cond.cpp.

◆ convert_constant()

bvt boolbvt::convert_constant ( const constant_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_constant.cpp.

◆ convert_constraint_select_one()

bvt boolbvt::convert_constraint_select_one ( const exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_constraint_select_one.cpp.

◆ convert_div()

bvt boolbvt::convert_div ( const div_exprt expr)
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 13 of file boolbv_div.cpp.

◆ convert_equality()

literalt boolbvt::convert_equality ( const equal_exprt expr)
protectedvirtual

Definition at line 19 of file boolbv_equality.cpp.

◆ convert_extractbit()

literalt boolbvt::convert_extractbit ( const extractbit_exprt expr)
protectedvirtual

Definition at line 19 of file boolbv_extractbit.cpp.

◆ convert_extractbits()

bvt boolbvt::convert_extractbits ( const extractbits_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_extractbits.cpp.

◆ convert_floatbv_op()

bvt boolbvt::convert_floatbv_op ( const exprt expr)
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 75 of file boolbv_floatbv_op.cpp.

◆ convert_floatbv_typecast()

bvt boolbvt::convert_floatbv_typecast ( const floatbv_typecast_exprt expr)
protectedvirtual

Definition at line 18 of file boolbv_floatbv_op.cpp.

◆ convert_function_application()

bvt boolbvt::convert_function_application ( const function_application_exprt expr)
protectedvirtual

Definition at line 415 of file boolbv.cpp.

◆ convert_ieee_float_rel()

literalt boolbvt::convert_ieee_float_rel ( const exprt expr)
protectedvirtual

Definition at line 17 of file boolbv_ieee_float_rel.cpp.

◆ convert_if()

bvt boolbvt::convert_if ( const if_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_if.cpp.

◆ convert_index() [1/2]

bvt boolbvt::convert_index ( const exprt array,
const mp_integer index 
)
protectedvirtual

index operator with constant index

Definition at line 275 of file boolbv_index.cpp.

◆ convert_index() [2/2]

bvt boolbvt::convert_index ( const index_exprt expr)
protectedvirtual

Definition at line 19 of file boolbv_index.cpp.

◆ convert_lambda()

bvt boolbvt::convert_lambda ( const exprt expr)
protectedvirtual

Definition at line 310 of file boolbv.cpp.

◆ convert_let()

bvt boolbvt::convert_let ( const let_exprt expr)
protectedvirtual

Definition at line 14 of file boolbv_let.cpp.

◆ convert_member()

bvt boolbvt::convert_member ( const member_exprt expr)
protectedvirtual

Definition at line 16 of file boolbv_member.cpp.

◆ convert_mod()

bvt boolbvt::convert_mod ( const mod_exprt expr)
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 12 of file boolbv_mod.cpp.

◆ convert_mult()

bvt boolbvt::convert_mult ( const mult_exprt expr)
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 13 of file boolbv_mult.cpp.

◆ convert_not()

bvt boolbvt::convert_not ( const not_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_not.cpp.

◆ convert_onehot()

literalt boolbvt::convert_onehot ( const unary_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_onehot.cpp.

◆ convert_overflow()

literalt boolbvt::convert_overflow ( const exprt expr)
protectedvirtual

Definition at line 15 of file boolbv_overflow.cpp.

◆ convert_power()

bvt boolbvt::convert_power ( const binary_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_power.cpp.

◆ convert_quantifier()

literalt boolbvt::convert_quantifier ( const quantifier_exprt expr)
protectedvirtual

Definition at line 191 of file boolbv_quantifier.cpp.

◆ convert_reduction()

literalt boolbvt::convert_reduction ( const unary_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_reduction.cpp.

◆ convert_replication()

bvt boolbvt::convert_replication ( const replication_exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_replication.cpp.

◆ convert_rest()

literalt boolbvt::convert_rest ( const exprt expr)
overrideprotectedvirtual

Reimplemented from prop_conv_solvert.

Reimplemented in bv_pointerst.

Definition at line 426 of file boolbv.cpp.

◆ convert_shift()

bvt boolbvt::convert_shift ( const binary_exprt expr)
protectedvirtual

Definition at line 15 of file boolbv_shift.cpp.

◆ convert_struct()

bvt boolbvt::convert_struct ( const struct_exprt expr)
protectedvirtual

Definition at line 14 of file boolbv_struct.cpp.

◆ convert_symbol()

bvt boolbvt::convert_symbol ( const exprt expr)
protectedvirtual

Definition at line 380 of file boolbv.cpp.

◆ convert_typecast()

literalt boolbvt::convert_typecast ( const typecast_exprt expr)
protectedvirtual

conversion from bitvector types to boolean

Definition at line 606 of file boolbv_typecast.cpp.

◆ convert_unary_minus()

bvt boolbvt::convert_unary_minus ( const unary_minus_exprt expr)
protectedvirtual

Definition at line 20 of file boolbv_unary_minus.cpp.

◆ convert_union()

bvt boolbvt::convert_union ( const union_exprt expr)
protectedvirtual

Definition at line 16 of file boolbv_union.cpp.

◆ convert_update()

bvt boolbvt::convert_update ( const exprt expr)
protectedvirtual

Definition at line 13 of file boolbv_update.cpp.

◆ convert_update_rec()

void boolbvt::convert_update_rec ( const exprt::operandst designator,
std::size_t  d,
const typet type,
std::size_t  offset,
const exprt new_value,
bvt bv 
)
protected

Definition at line 37 of file boolbv_update.cpp.

◆ convert_vector()

bvt boolbvt::convert_vector ( const vector_exprt expr)
protectedvirtual

Definition at line 12 of file boolbv_vector.cpp.

◆ convert_verilog_case_equality()

literalt boolbvt::convert_verilog_case_equality ( const binary_relation_exprt expr)
protectedvirtual

Definition at line 64 of file boolbv_equality.cpp.

◆ convert_with() [1/2]

bvt boolbvt::convert_with ( const exprt expr)
protectedvirtual

Definition at line 19 of file boolbv_with.cpp.

◆ convert_with() [2/2]

void boolbvt::convert_with ( const typet type,
const exprt op1,
const exprt op2,
const bvt prev_bv,
bvt next_bv 
)
protected

Definition at line 75 of file boolbv_with.cpp.

◆ convert_with_array()

void boolbvt::convert_with_array ( const array_typet type,
const exprt op1,
const exprt op2,
const bvt prev_bv,
bvt next_bv 
)
protected

Definition at line 111 of file boolbv_with.cpp.

◆ convert_with_bv()

void boolbvt::convert_with_bv ( const exprt op1,
const exprt op2,
const bvt prev_bv,
bvt next_bv 
)
protected

Definition at line 181 of file boolbv_with.cpp.

◆ convert_with_struct()

void boolbvt::convert_with_struct ( const struct_typet type,
const exprt op1,
const exprt op2,
const bvt prev_bv,
bvt next_bv 
)
protected

Definition at line 212 of file boolbv_with.cpp.

◆ convert_with_union()

void boolbvt::convert_with_union ( const union_typet type,
const exprt op2,
const bvt prev_bv,
bvt next_bv 
)
protected

Definition at line 265 of file boolbv_with.cpp.

◆ get()

exprt boolbvt::get ( const exprt expr) const
overridevirtual

Implements decision_proceduret.

Reimplemented in string_refinementt.

Definition at line 21 of file boolbv_get.cpp.

◆ get_map()

const boolbv_mapt& boolbvt::get_map ( ) const
inline

Definition at line 87 of file boolbv.h.

◆ get_value() [1/2]

mp_integer boolbvt::get_value ( const bvt bv)
inline

Definition at line 80 of file boolbv.h.

◆ get_value() [2/2]

mp_integer boolbvt::get_value ( const bvt bv,
std::size_t  offset,
std::size_t  width 
)

Definition at line 414 of file boolbv_get.cpp.

◆ is_unbounded_array()

bool boolbvt::is_unbounded_array ( const typet type) const
overrideprotectedvirtual

Implements arrayst.

Definition at line 624 of file boolbv.cpp.

◆ literal()

bool boolbvt::literal ( const exprt expr,
std::size_t  bit,
literalt literal 
) const
virtual

Definition at line 32 of file boolbv.cpp.

◆ make_bv_expr()

exprt boolbvt::make_bv_expr ( const typet type,
const bvt bv 
)
protectedvirtual

Definition at line 603 of file boolbv.cpp.

◆ make_free_bv_expr()

exprt boolbvt::make_free_bv_expr ( const typet type)
protectedvirtual

Definition at line 614 of file boolbv.cpp.

◆ post_process()

void boolbvt::post_process ( )
inlineoverridevirtual

Reimplemented from arrayst.

Reimplemented in bv_pointerst.

Definition at line 64 of file boolbv.h.

◆ post_process_quantifiers()

void boolbvt::post_process_quantifiers ( )
protected

Definition at line 213 of file boolbv_quantifier.cpp.

◆ print_assignment()

void boolbvt::print_assignment ( std::ostream &  out) const
overridevirtual

Implements decision_proceduret.

Definition at line 648 of file boolbv.cpp.

◆ set_to()

void boolbvt::set_to ( const exprt expr,
bool  value 
)
overridevirtual

Implements decision_proceduret.

Reimplemented in string_refinementt.

Definition at line 593 of file boolbv.cpp.

◆ type_conversion()

bool boolbvt::type_conversion ( const typet src_type,
const bvt src,
const typet dest_type,
bvt dest 
)
protected

Definition at line 35 of file boolbv_typecast.cpp.

Member Data Documentation

◆ boolbv_width

boolbv_widtht boolbvt::boolbv_width

Definition at line 92 of file boolbv.h.

◆ bv_cache

bv_cachet boolbvt::bv_cache
protected

Definition at line 118 of file boolbv.h.

◆ bv_utils

bv_utilst boolbvt::bv_utils
protected

Definition at line 95 of file boolbv.h.

◆ functions

functionst boolbvt::functions
protected

Definition at line 98 of file boolbv.h.

◆ map

boolbv_mapt boolbvt::map
protected

Definition at line 101 of file boolbv.h.

◆ quantifier_list

quantifier_listt boolbvt::quantifier_list
protected

Definition at line 248 of file boolbv.h.

◆ string_numbering

numbering<irep_idt> boolbvt::string_numbering
protected

Definition at line 256 of file boolbv.h.

◆ unbounded_array

unbounded_arrayt boolbvt::unbounded_array

Definition at line 78 of file boolbv.h.


The documentation for this class was generated from the following files: