CBMC
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
boolbvt Class Reference

#include <boolbv.h>

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

Classes

class   quantifiert
 

Public Types

enum class   unbounded_arrayt { U_NONE , U_ALL , U_AUTO }
 
- Public Types inherited from arrayst
 
- Public Types inherited from equalityt
 
- Public Types inherited from prop_conv_solvert
 
typedef std::unordered_map< exprt, literalt, irep_hashcachet
 
- Public Types inherited from decision_proceduret
  Result of running the decision procedure. More...
 

Public Member Functions

 
virtual const bvtconvert_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 available.
 
  Converts an expression into its gate-level representation and returns a vector of literals corresponding to the outputs of the Boolean circuit.
 
  Return expr with variables replaced by values from satisfying assignment if available.
 
void  set_to (const exprt &expr, bool value) override
  For a Boolean expression expr, add the constraint 'expr' if value is true, otherwise add 'not expr'.
 
void  print_assignment (std::ostream &out) const override
  Print satisfying assignment to out.
 
  Generate a handle, which is an expression that has the same value as the argument in any model that is generated; this offers an efficient way to refer to the expression in subsequent calls to get or set_to.
 
 
 
 
mp_integer  get_value (const bvt &bv, std::size_t offset, std::size_t width)
 
 
virtual std::size_t  boolbv_width (const typet &type) const
 
 
 
- Public Member Functions inherited from arrayst
 
 
 
  Record that symbol is equal to value for the purposes of the array theory.
 
- Public Member Functions inherited from equalityt
  equalityt (propt &_prop, message_handlert &message_handler)
 
 
 
- Public Member Functions inherited from prop_conv_solvert
 
 
  Implementation of the decision procedure.
 
void  print_assignment (std::ostream &out) const override
  Print satisfying assignment to out.
 
  Return a textual description of the decision procedure.
 
  Return expr with variables replaced by values from satisfying assignment if available.
 
  Return value of literal l from satisfying assignment.
 
  Generate a handle, which is an expression that has the same value as the argument in any model that is generated; this offers an efficient way to refer to the expression in subsequent calls to get or set_to.
 
 
 
 
  Convert a Boolean expression and return the corresponding literal.
 
  Returns true if an expression is in the final conflict leading to UNSAT.
 
void  set_to (const exprt &expr, bool value) override
  For a Boolean expression expr, add the constraint 'current_context => expr' if value is true, otherwise add 'current_context => not expr'.
 
  Push a new context on the stack This context becomes a child context nested in the current context.
 
void  push (const std::vector< exprt > &assumptions) override
  Push assumptions in form of literal_exprt
 
  Pop whatever is on top of the stack.
 
 
 
  Set the limit for the solver to time out in seconds.
 
  Return the number of incremental solver calls.
 
 
- Public Member Functions inherited from conflict_providert
 
- Public Member Functions inherited from prop_convt
 
- Public Member Functions inherited from stack_decision_proceduret
 
- Public Member Functions inherited from decision_proceduret
  For a Boolean expression expr, add the constraint 'expr'.
 
  For a Boolean expression expr, add the constraint 'not expr'.
 
  Run the decision procedure to solve the problem This corresponds to SMT-LIB's check-sat.
 
resultt  operator() (const exprt &assumption)
  Run the decision procedure to solve the problem under the given assumption.
 
 
- Public Member Functions inherited from solver_resource_limitst
 

Public Attributes

 
- Public Attributes inherited from prop_conv_solvert
 
 
 

Protected Types

 
typedef std::unordered_map< const exprt, bvt, irep_hashbv_cachet
 
 
typedef std::vector< std::size_t >  offset_mapt
 
- Protected Types inherited from arrayst
 
 
 
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::unordered_map< const typet, typestructt, irep_hashtypemapt
 

Protected Member Functions

 
 
  Print that the expression of x has failed conversion, then return a vector of x's width.
 
 
  Flatten <, >, <= and >= expressions.
 
  conversion from bitvector types to boolean
 
 
 
 
 
 
 
 
 
 
  index operator with constant index
 
 
 
 
 
 
 
 
  Flatten array.
 
 
 
 
 
 
  Flatten arrays constructed from a single element.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bvt  convert_update_bits (bvt src, const exprt &index, const bvt &new_value)
 
 
 
 
 
 
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_rec (const exprt &expr, const bvt &bv, std::size_t offset) const
 
exprt  bv_get (const bvt &bv, const typet &type) const
 
 
  Return the model value for expr.
 
 
 
 
  create new, unique variables for the given binding
 
- Protected Member Functions inherited from arrayst
 
  adds array constraints (refine=true...lazily for the refinement loop)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
void  update_index_map (std::size_t i)
  merge the indices into the root
 
 
 
 
- Protected Member Functions inherited from equalityt
 
 
 
- Protected Member Functions inherited from prop_conv_solvert
virtual std::optional< boolget_bool (const exprt &expr) const
  Get a boolean value from the model if the formula is satisfiable.
 
 
 
 
 

Protected Attributes

 
 
 
 
 
 
 
std::size_t  scope_counter = 0
 
- Protected Attributes inherited from arrayst
 
 
 
 
 
 
 
 
 
 
std::map< exprt, boolexpr_map
 
 
std::set< std::size_t >  update_indices
 
std::unordered_set< irep_idtarray_comprehension_args
 
- Protected Attributes inherited from equalityt
 
- Protected Attributes inherited from prop_conv_solvert
 
 
 
proptprop
 
 
  Assumptions on the stack.
 
std::size_t  context_literal_counter = 0
  To generate unique literal names for contexts.
 
std::vector< size_tcontext_size_stack
  assumption_stack is segmented in contexts; Number of assumptions in each context on the stack
 

Additional Inherited Members

- Static Protected Attributes inherited from prop_conv_solvert
static const charcontext_prefix = "prop_conv::context$"
 

Detailed Description

Definition at line 49 of file boolbv.h.

Member Typedef Documentation

◆  bv_cachet

protected

Definition at line 138 of file boolbv.h.

◆  offset_mapt

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

Definition at line 289 of file boolbv.h.

◆  quantifier_listt

Definition at line 284 of file boolbv.h.

◆  SUB

Definition at line 134 of file boolbv.h.

Member Enumeration Documentation

◆  unbounded_arrayt

Enumerator
U_NONE 
U_ALL 
U_AUTO 

Definition at line 91 of file boolbv.h.

Constructor & Destructor Documentation

◆  boolbvt()

boolbvt::boolbvt ( const namespacet_ns,
propt_prop,
message_handlertmessage_handler,
bool  get_array_constraints = false  
)
inline

Definition at line 52 of file boolbv.h.

Member Function Documentation

◆  boolbv_set_equality_to_true()

bool boolbvt::boolbv_set_equality_to_true ( const equal_exprtexpr )
protectedvirtual

Definition at line 494 of file boolbv.cpp.

◆  boolbv_width()

virtual std::size_t boolbvt::boolbv_width ( const typettype ) const
inlinevirtual

Reimplemented in bv_pointers_widet.

Definition at line 106 of file boolbv.h.

◆  build_offset_map()

boolbvt::offset_mapt boolbvt::build_offset_map ( const struct_typetsrc )
protected

Definition at line 582 of file boolbv.cpp.

◆  bv_get()

exprt boolbvt::bv_get ( const bvtbv,
const typettype 
) const
protected

Definition at line 294 of file boolbv_get.cpp.

◆  bv_get_cache()

exprt boolbvt::bv_get_cache ( const exprtexpr ) const
protected

Definition at line 301 of file boolbv_get.cpp.

◆  bv_get_rec()

exprt boolbvt::bv_get_rec ( const exprtexpr,
const bvtbv,
std::size_t  offset 
) const
protectedvirtual

Reimplemented in bv_pointers_widet, and bv_pointerst.

Definition at line 85 of file boolbv_get.cpp.

◆  bv_get_unbounded_array()

exprt boolbvt::bv_get_unbounded_array ( const exprtexpr ) const
protectedvirtual

Definition at line 313 of file boolbv_get.cpp.

◆  clear_cache()

void boolbvt::clear_cache ( )
inlineoverridevirtual

Reimplemented from prop_conv_solvert.

Definition at line 78 of file boolbv.h.

◆  conversion_failed()

bvt boolbvt::conversion_failed ( const exprtexpr )
protected

Print that the expression of x has failed conversion, then return a vector of x's width.

Definition at line 95 of file boolbv.cpp.

◆  convert_abs()

bvt boolbvt::convert_abs ( const abs_exprtexpr )
protectedvirtual

Definition at line 17 of file boolbv_abs.cpp.

◆  convert_add_sub()

bvt boolbvt::convert_add_sub ( const exprtexpr )
protectedvirtual

Definition at line 16 of file boolbv_add_sub.cpp.

◆  convert_array()

bvt boolbvt::convert_array ( const exprtexpr )
protectedvirtual

Flatten array.

Loop over each element and convert them in turn, limiting each result's width to initial array bit size divided by number of elements. Return an empty vector if the width is zero or the array has no elements.

Definition at line 16 of file boolbv_array.cpp.

◆  convert_array_comprehension()

bvt boolbvt::convert_array_comprehension ( const array_comprehension_exprtexpr )
protectedvirtual

Definition at line 270 of file boolbv.cpp.

◆  convert_array_of()

bvt boolbvt::convert_array_of ( const array_of_exprtexpr )
protectedvirtual

Flatten arrays constructed from a single element.

Definition at line 16 of file boolbv_array_of.cpp.

◆  convert_binary_overflow()

literalt boolbvt::convert_binary_overflow ( const binary_overflow_exprtexpr )
protectedvirtual

Definition at line 114 of file boolbv_overflow.cpp.

◆  convert_bitreverse()

bvt boolbvt::convert_bitreverse ( const bitreverse_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_bitreverse.cpp.

◆  convert_bitvector()

bvt boolbvt::convert_bitvector ( const exprtexpr )
virtual

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

Parameters
expr Expression to convert
Returns
A vector of literals corresponding to the outputs of the Boolean circuit

Reimplemented in bv_pointers_widet, and bv_pointerst.

Definition at line 109 of file boolbv.cpp.

◆  convert_bitwise()

bvt boolbvt::convert_bitwise ( const exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_bitwise.cpp.

◆  convert_bswap()

bvt boolbvt::convert_bswap ( const bswap_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_bswap.cpp.

◆  convert_bv()

const bvt & boolbvt::convert_bv ( const exprtexpr,
const std::optional< std::size_t >  expected_width = {} 
)
virtual

Convert expression to vector of literalts, using an internal cache to speed up conversion if available.

Also assert the resultant vector is of a specific size, and freeze any elements if appropriate.

Definition at line 40 of file boolbv.cpp.

◆  convert_bv_reduction()

bvt boolbvt::convert_bv_reduction ( const unary_exprtexpr )
protectedvirtual

Definition at line 54 of file boolbv_reduction.cpp.

◆  convert_bv_rel()

literalt boolbvt::convert_bv_rel ( const binary_relation_exprtexpr )
protectedvirtual

Flatten <, >, <= and >= expressions.

Definition at line 18 of file boolbv_bv_rel.cpp.

◆  convert_bv_typecast()

bvt boolbvt::convert_bv_typecast ( const typecast_exprtexpr )
protectedvirtual

Definition at line 19 of file boolbv_typecast.cpp.

◆  convert_byte_extract()

bvt boolbvt::convert_byte_extract ( const byte_extract_exprtexpr )
protectedvirtual

Definition at line 33 of file boolbv_byte_extract.cpp.

◆  convert_byte_update()

bvt boolbvt::convert_byte_update ( const byte_update_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_byte_update.cpp.

◆  convert_complex()

bvt boolbvt::convert_complex ( const complex_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_complex.cpp.

◆  convert_complex_imag()

bvt boolbvt::convert_complex_imag ( const complex_imag_exprtexpr )
protectedvirtual

Definition at line 48 of file boolbv_complex.cpp.

◆  convert_complex_real()

bvt boolbvt::convert_complex_real ( const complex_real_exprtexpr )
protectedvirtual

Definition at line 37 of file boolbv_complex.cpp.

◆  convert_concatenation()

bvt boolbvt::convert_concatenation ( const concatenation_exprtexpr )
protectedvirtual

Definition at line 14 of file boolbv_concatenation.cpp.

◆  convert_cond()

bvt boolbvt::convert_cond ( const cond_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_cond.cpp.

◆  convert_constant()

bvt boolbvt::convert_constant ( const constant_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_constant.cpp.

◆  convert_constraint_select_one()

bvt boolbvt::convert_constraint_select_one ( const exprtexpr )
protectedvirtual

Definition at line 12 of file boolbv_constraint_select_one.cpp.

◆  convert_div()

bvt boolbvt::convert_div ( const div_exprtexpr )
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 13 of file boolbv_div.cpp.

◆  convert_empty_union()

bvt boolbvt::convert_empty_union ( const empty_union_exprtexpr )
protectedvirtual

Definition at line 38 of file boolbv_union.cpp.

◆  convert_equality()

literalt boolbvt::convert_equality ( const equal_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_equality.cpp.

◆  convert_extractbit()

literalt boolbvt::convert_extractbit ( const extractbit_exprtexpr )
protectedvirtual

Definition at line 19 of file boolbv_extractbit.cpp.

◆  convert_extractbits()

bvt boolbvt::convert_extractbits ( const extractbits_exprtexpr )
protectedvirtual

Definition at line 14 of file boolbv_extractbits.cpp.

◆  convert_floatbv_fma()

bvt boolbvt::convert_floatbv_fma ( const floatbv_fma_exprtexpr )
protectedvirtual

Definition at line 16 of file boolbv_floatbv_fma.cpp.

◆  convert_floatbv_mod_rem()

bvt boolbvt::convert_floatbv_mod_rem ( const binary_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_floatbv_mod_rem.cpp.

◆  convert_floatbv_op()

bvt boolbvt::convert_floatbv_op ( const ieee_float_op_exprtexpr )
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 101 of file boolbv_floatbv_op.cpp.

◆  convert_floatbv_round_to_integral()

bvt boolbvt::convert_floatbv_round_to_integral ( const floatbv_round_to_integral_exprtexpr )
protectedvirtual

Definition at line 83 of file boolbv_floatbv_op.cpp.

◆  convert_floatbv_typecast()

bvt boolbvt::convert_floatbv_typecast ( const floatbv_typecast_exprtexpr )
protectedvirtual

Definition at line 17 of file boolbv_floatbv_op.cpp.

◆  convert_function_application()

bvt boolbvt::convert_function_application ( const function_application_exprtexpr )
protectedvirtual

Definition at line 329 of file boolbv.cpp.

◆  convert_ieee_float_rel()

literalt boolbvt::convert_ieee_float_rel ( const binary_relation_exprtexpr )
protectedvirtual

Definition at line 17 of file boolbv_ieee_float_rel.cpp.

◆  convert_if()

bvt boolbvt::convert_if ( const if_exprtexpr )
protectedvirtual

Definition at line 12 of file boolbv_if.cpp.

◆  convert_index() [1/2]

bvt boolbvt::convert_index ( const exprtarray,
const mp_integerindex 
)
protectedvirtual

index operator with constant index

Definition at line 281 of file boolbv_index.cpp.

◆  convert_index() [2/2]

bvt boolbvt::convert_index ( const index_exprtexpr )
protectedvirtual

Definition at line 21 of file boolbv_index.cpp.

◆  convert_let()

bvt boolbvt::convert_let ( const let_exprtexpr )
protectedvirtual

Definition at line 16 of file boolbv_let.cpp.

◆  convert_member()

bvt boolbvt::convert_member ( const member_exprtexpr )
protectedvirtual

Definition at line 49 of file boolbv_member.cpp.

◆  convert_mod()

bvt boolbvt::convert_mod ( const mod_exprtexpr )
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 12 of file boolbv_mod.cpp.

◆  convert_mult()

bvt boolbvt::convert_mult ( const mult_exprtexpr )
protectedvirtual

Reimplemented in bv_refinementt.

Definition at line 13 of file boolbv_mult.cpp.

◆  convert_not()

bvt boolbvt::convert_not ( const not_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_not.cpp.

◆  convert_onehot()

literalt boolbvt::convert_onehot ( const unary_exprtexpr )
protectedvirtual

Definition at line 12 of file boolbv_onehot.cpp.

◆  convert_overflow_result()

bvt boolbvt::convert_overflow_result ( const overflow_result_exprtexpr )
protectedvirtual

Definition at line 192 of file boolbv_overflow.cpp.

◆  convert_popcount()

bvt boolbvt::convert_popcount ( const popcount_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_popcount.cpp.

◆  convert_power()

bvt boolbvt::convert_power ( const power_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_power.cpp.

◆  convert_quantifier()

literalt boolbvt::convert_quantifier ( const quantifier_exprtexpr )
protectedvirtual

Definition at line 268 of file boolbv_quantifier.cpp.

◆  convert_reduction()

literalt boolbvt::convert_reduction ( const unary_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_reduction.cpp.

◆  convert_replication()

bvt boolbvt::convert_replication ( const replication_exprtexpr )
protectedvirtual

Definition at line 14 of file boolbv_replication.cpp.

◆  convert_rest()

literalt boolbvt::convert_rest ( const exprtexpr )
overrideprotectedvirtual

Reimplemented from prop_conv_solvert.

Reimplemented in bv_pointers_widet, and bv_pointerst.

Definition at line 340 of file boolbv.cpp.

◆  convert_saturating_add_sub()

bvt boolbvt::convert_saturating_add_sub ( const binary_exprtexpr )
protectedvirtual

Definition at line 151 of file boolbv_add_sub.cpp.

◆  convert_shift()

bvt boolbvt::convert_shift ( const binary_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_shift.cpp.

◆  convert_struct()

bvt boolbvt::convert_struct ( const struct_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_struct.cpp.

◆  convert_symbol()

bvt boolbvt::convert_symbol ( const exprtexpr )
protectedvirtual

Definition at line 305 of file boolbv.cpp.

◆  convert_typecast()

literalt boolbvt::convert_typecast ( const typecast_exprtexpr )
protectedvirtual

conversion from bitvector types to boolean

Definition at line 624 of file boolbv_typecast.cpp.

◆  convert_unary_minus()

bvt boolbvt::convert_unary_minus ( const unary_minus_exprtexpr )
protectedvirtual

Definition at line 20 of file boolbv_unary_minus.cpp.

◆  convert_unary_overflow()

literalt boolbvt::convert_unary_overflow ( const unary_overflow_exprtexpr )
protectedvirtual

Definition at line 178 of file boolbv_overflow.cpp.

◆  convert_union()

bvt boolbvt::convert_union ( const union_exprtexpr )
protectedvirtual

Definition at line 11 of file boolbv_union.cpp.

◆  convert_update()

bvt boolbvt::convert_update ( const update_exprtexpr )
protectedvirtual

Definition at line 15 of file boolbv_update.cpp.

◆  convert_update_bit()

bvt boolbvt::convert_update_bit ( const update_bit_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_update_bit.cpp.

◆  convert_update_bits() [1/2]

bvt boolbvt::convert_update_bits ( bvt  src,
const exprtindex,
const bvtnew_value 
)
protected

◆  convert_update_bits() [2/2]

bvt boolbvt::convert_update_bits ( const update_bits_exprtexpr )
protectedvirtual

Definition at line 13 of file boolbv_update_bits.cpp.

◆  convert_update_rec()

void boolbvt::convert_update_rec ( const exprt::operandstdesignator,
std::size_t  d,
const typettype,
std::size_t  offset,
const exprtnew_value,
bvtbv 
)
protected

Definition at line 33 of file boolbv_update.cpp.

◆  convert_verilog_case_equality()

literalt boolbvt::convert_verilog_case_equality ( const binary_relation_exprtexpr )
protectedvirtual

Definition at line 59 of file boolbv_equality.cpp.

◆  convert_with() [1/2]

void boolbvt::convert_with ( const typettype,
const exprtwhere,
const exprtnew_value,
const bvtprev_bv,
bvtnext_bv 
)
protected

Definition at line 64 of file boolbv_with.cpp.

◆  convert_with() [2/2]

bvt boolbvt::convert_with ( const with_exprtexpr )
protectedvirtual

Definition at line 17 of file boolbv_with.cpp.

◆  convert_with_array()

void boolbvt::convert_with_array ( const array_typettype,
const exprtindex,
const exprtnew_value,
const bvtprev_bv,
bvtnext_bv 
)
protected

Definition at line 109 of file boolbv_with.cpp.

◆  convert_with_bv()

void boolbvt::convert_with_bv ( const exprtindex,
const exprtnew_value,
const bvtprev_bv,
bvtnext_bv 
)
protected

◆  convert_with_struct()

void boolbvt::convert_with_struct ( const struct_typettype,
const exprtwhere,
const exprtnew_value,
const bvtprev_bv,
bvtnext_bv 
)
protected

Definition at line 173 of file boolbv_with.cpp.

◆  convert_with_union()

void boolbvt::convert_with_union ( const union_typettype,
const exprtnew_value,
const bvtprev_bv,
bvtnext_bv 
)
protected

Definition at line 220 of file boolbv_with.cpp.

◆  endianness_map() [1/2]

endianness_mapt boolbvt::endianness_map ( const typettype ) const
virtual

Definition at line 30 of file boolbv.cpp.

◆  endianness_map() [2/2]

virtual endianness_mapt boolbvt::endianness_map ( const typettype,
bool  little_endian 
) const
inlinevirtual

Reimplemented in bv_pointerst, and bv_pointers_widet.

Definition at line 112 of file boolbv.h.

◆  finish_eager_conversion()

void boolbvt::finish_eager_conversion ( )
inlineoverridevirtual

Reimplemented from arrayst.

Reimplemented in bv_pointers_widet, and bv_pointerst.

Definition at line 84 of file boolbv.h.

◆  finish_eager_conversion_quantifiers()

void boolbvt::finish_eager_conversion_quantifiers ( )
protected

Definition at line 293 of file boolbv_quantifier.cpp.

◆  fresh_binding()

binding_exprt::variablest boolbvt::fresh_binding ( const binding_exprtbinding )
protected

create new, unique variables for the given binding

Definition at line 553 of file boolbv.cpp.

◆  get()

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

Return expr with variables replaced by values from satisfying assignment if available.

Return nil if not available

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 101 of file boolbv.h.

◆  get_value() [1/3]

mp_integer boolbvt::get_value ( const bvtbv )
inline

Definition at line 94 of file boolbv.h.

◆  get_value() [2/3]

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

Definition at line 409 of file boolbv_get.cpp.

◆  get_value() [3/3]

exprt boolbvt::get_value ( const exprtexpr ) const
protected

Return the model value for expr.

Unlike get(), this checks the bitvector cache first so that expressions that were converted to SAT variables are read from the SAT model rather than symbolically evaluated. Intended for use by the refinement loop.

Definition at line 52 of file boolbv_get.cpp.

◆  handle()

exprt boolbvt::handle ( const exprt &  )
overridevirtual

Generate a handle, which is an expression that has the same value as the argument in any model that is generated; this offers an efficient way to refer to the expression in subsequent calls to get or set_to.

The returned expression may be the expression itself or a more compact but solver-specific representation.

Implements decision_proceduret.

Definition at line 84 of file boolbv.cpp.

◆  is_unbounded_array()

bool boolbvt::is_unbounded_array ( const typettype ) const
overrideprotectedvirtual

Implements arrayst.

Definition at line 534 of file boolbv.cpp.

◆  print_assignment()

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

Print satisfying assignment to out.

Implements decision_proceduret.

Definition at line 576 of file boolbv.cpp.

◆  set_to()

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

For a Boolean expression expr, add the constraint 'expr' if value is true, otherwise add 'not expr'.

Implements decision_proceduret.

Reimplemented in string_refinementt.

Definition at line 524 of file boolbv.cpp.

◆  type_conversion()

bool boolbvt::type_conversion ( const typetsrc_type,
const bvtsrc,
const typetdest_type,
bvtdest 
)
protected

Definition at line 32 of file boolbv_typecast.cpp.

Member Data Documentation

◆  bv_cache

bv_cachet boolbvt::bv_cache
protected

Definition at line 139 of file boolbv.h.

◆  bv_utils

bv_utilst boolbvt::bv_utils
protected

Definition at line 121 of file boolbv.h.

◆  bv_width

boolbv_widtht boolbvt::bv_width
protected

Definition at line 120 of file boolbv.h.

◆  functions

functionst boolbvt::functions
protected

Definition at line 124 of file boolbv.h.

◆  map

boolbv_mapt boolbvt::map
protected

Definition at line 127 of file boolbv.h.

◆  quantifier_list

quantifier_listt boolbvt::quantifier_list
protected

Definition at line 285 of file boolbv.h.

◆  scope_counter

std::size_t boolbvt::scope_counter = 0
protected

Definition at line 296 of file boolbv.h.

◆  string_numbering

numberingt<irep_idt> boolbvt::string_numbering
protected

Definition at line 293 of file boolbv.h.

◆  unbounded_array

unbounded_arrayt boolbvt::unbounded_array

Definition at line 92 of file boolbv.h.


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

AltStyle によって変換されたページ (->オリジナル) /