#include <arrays.h>
+ Inheritance diagram for arrayst:
+ Collaboration diagram for arrayst:
Result of running the decision procedure.
More...
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 Member Functions
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.
- 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
Detailed Description
Member Typedef Documentation
◆ array_constraint_countt
◆ array_equalitiest
◆ index_mapt
◆ index_sett
◆ SUB
Member Enumeration Documentation
◆ constraint_typet
| Enumerator |
|---|
| ARRAY_ACKERMANN |
| ARRAY_WITH |
| ARRAY_IF |
| ARRAY_OF |
| ARRAY_TYPECAST |
| ARRAY_CONSTANT |
| ARRAY_COMPREHENSION |
| ARRAY_EQUALITY |
| ARRAY_LET |
Definition at line 128 of file arrays.h.
◆ lazy_typet
| Enumerator |
|---|
| ARRAY_ACKERMANN |
| ARRAY_WITH |
| ARRAY_IF |
| ARRAY_OF |
| ARRAY_TYPECAST |
| ARRAY_CONSTANT |
| ARRAY_COMPREHENSION |
| ARRAY_LET |
Definition at line 97 of file arrays.h.
Constructor & Destructor Documentation
◆ arrayst()
Member Function Documentation
◆ add_array_Ackermann_constraints()
void arrayst::add_array_Ackermann_constraints
(
)
protected |
◆ add_array_constraint()
adds array constraints (refine=true...lazily for the refinement loop)
Definition at line 265 of file arrays.cpp.
◆ add_array_constraints() [1/2]
void arrayst::add_array_constraints
(
)
protected |
◆ add_array_constraints() [2/2]
◆ add_array_constraints_array_constant()
◆ add_array_constraints_array_of()
◆ add_array_constraints_comprehension()
◆ add_array_constraints_equality()
◆ add_array_constraints_if()
◆ add_array_constraints_update()
◆ add_array_constraints_with()
◆ collect_arrays()
◆ collect_indices() [1/2]
void arrayst::collect_indices
(
)
protected |
◆ collect_indices() [2/2]
◆ display_array_constraint_count()
void arrayst::display_array_constraint_count
(
)
protected |
◆ enum_to_string()
◆ finish_eager_conversion()
void arrayst::finish_eager_conversion
(
)
inlineoverridevirtual |
◆ finish_eager_conversion_arrays()
virtual void arrayst::finish_eager_conversion_arrays
(
)
inlineprotectedvirtual |
◆ is_unbounded_array()
◆ record_array_equality()
◆ record_array_index()
◆ record_array_let_binding()
Record that symbol is equal to value for the purposes of the array theory.
For unbounded-array-typed bindings this connects the two expressions in the union-find so that element-wise constraints propagate correctly.
- Precondition
value must be free of byte_update operators; lower them at the call site (collect_arrays otherwise fails a DATA_INVARIANT).
Definition at line 83 of file arrays.cpp.
◆ update_index_map() [1/2]
void arrayst::update_index_map
(
bool
update_all )
protected |
◆ update_index_map() [2/2]
void arrayst::update_index_map
(
std::size_t
i )
protected |
merge the indices into the root
Definition at line 403 of file arrays.cpp.
Member Data Documentation
◆ array_comprehension_args
std::unordered_set<
irep_idt> arrayst::array_comprehension_args
protected |
◆ array_constraint_count
◆ array_equalities
◆ arrays
◆ expr_map
◆ get_array_constraints
bool arrayst::get_array_constraints
protected |
◆ incremental_cache
bool arrayst::incremental_cache
protected |
◆ index_map
◆ lazy_array_constraints
◆ lazy_arrays
bool arrayst::lazy_arrays
protected |
◆ log
◆ message_handler
◆ ns
◆ update_indices
std::set<std::size_t> arrayst::update_indices
protected |
The documentation for this class was generated from the following files:
- /home/runner/work/cbmc/cbmc/src/solvers/flattening/arrays.h
- /home/runner/work/cbmc/cbmc/src/solvers/flattening/arrays.cpp