#include <bv_pointers.h>
+ Inheritance diagram for bv_pointerst:
+ Collaboration diagram for bv_pointerst:
- Public Member Functions inherited from
boolbvt
Convert expression to vector of literalts, using an internal cache to speed up conversion if available.
Return expr with variables replaced by values from satisfying assignment if available.
For a Boolean expression expr, add the constraint 'expr' if value is true, otherwise add 'not expr'.
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.
- 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
Implementation of the decision procedure.
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.
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.
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
prop_convt
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.
Run the decision procedure to solve the problem under the given assumption.
- Protected Types inherited from
boolbvt
- Protected Types inherited from
arrayst
Protected Member Functions
Converts an expression into its gate-level representation and returns a vector of literals corresponding to the outputs of the Boolean circuit.
Create Boolean functions describing all dynamic and all not-dynamic object encodings over placeholders as input Boolean variables representing object bits.
Create Boolean functions describing all objects of each known object size over placeholders as input Boolean variables representing object bits.
Given a pointer encoded in bv, extract the literals identifying the object that the pointer points to.
Given a pointer encoded in bv, extract the literals representing the offset into an object that the pointer points to.
- Protected Member Functions inherited from
boolbvt
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.
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)
merge the indices into the root
- Protected Member Functions inherited from
equalityt
Get a boolean value from the model if the formula is satisfiable.
Static Protected Member Functions
Construct a pointer encoding from given encodings of object and offset.
- Protected Attributes inherited from
boolbvt
- Protected Attributes inherited from
arrayst
- Protected Attributes inherited from
equalityt
Assumptions on the stack.
To generate unique literal names for contexts.
assumption_stack is segmented in contexts; Number of assumptions in each context on the stack
Additional Inherited Members
- Public Types inherited from
boolbvt
- Public Types inherited from
arrayst
Result of running the decision procedure.
More...
- Public Attributes inherited from
boolbvt
Detailed Description
Member Typedef Documentation
◆ postponed_listt
◆ SUB
Constructor & Destructor Documentation
◆ bv_pointerst()
Member Function Documentation
◆ add_addr()
◆ bv_get_rec()
std::size_t
offset
)
const
overrideprotectedvirtual
◆ convert_address_of_rec()
std::optional<
bvt > bv_pointerst::convert_address_of_rec
(
const exprt &
expr )
protected
◆ convert_bitvector()
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 from boolbvt.
Definition at line 621 of file bv_pointers.cpp.
◆ convert_pointer_type()
◆ convert_rest()
◆ encode()
◆ endianness_map()
◆ finish_eager_conversion()
void bv_pointerst::finish_eager_conversion
(
)
overridevirtual
◆ get_address_width()
◆ get_object_width()
◆ get_offset_width()
◆ object_literals()
Given a pointer encoded in bv, extract the literals identifying the object that the pointer points to.
- Parameters
-
bv Encoded pointer
type Type of the encoded pointer
- Returns
- Vector of literals identifying the object part of
bv
Definition at line 96 of file bv_pointers.cpp.
◆ object_offset_encoding()
bvt bv_pointerst::object_offset_encoding
(
const bvt &
object,
)
staticprotected
Construct a pointer encoding from given encodings of object and offset.
- Parameters
-
object Encoded object
offset Encoded offset
- Returns
- Pointer encoding
Definition at line 116 of file bv_pointers.cpp.
◆ offset_arithmetic() [1/4]
◆ offset_arithmetic() [2/4]
◆ offset_arithmetic() [3/4]
◆ offset_arithmetic() [4/4]
◆ offset_literals()
Given a pointer encoded in bv, extract the literals representing the offset into an object that the pointer points to.
- Parameters
-
bv Encoded pointer
type Type of the encoded pointer
- Returns
- Vector of literals identifying the offset part of
bv
Definition at line 107 of file bv_pointers.cpp.
◆ prepare_postponed_is_dynamic_object()
std::pair<
exprt,
exprt > bv_pointerst::prepare_postponed_is_dynamic_object
(
std::vector<
symbol_exprt > &
placeholders )
const
protected
Create Boolean functions describing all dynamic and all not-dynamic object encodings over placeholders as input Boolean variables representing object bits.
Definition at line 897 of file bv_pointers.cpp.
◆ prepare_postponed_object_size()
Create Boolean functions describing all objects of each known object size over placeholders as input Boolean variables representing object bits.
Definition at line 949 of file bv_pointers.cpp.
Member Data Documentation
◆ pointer_logic
◆ postponed_list
The documentation for this class was generated from the following files: