|
cprover
|
#include <arrays.h>
Inheritance diagram for arrayst:
Collaboration diagram for arrayst:Classes | |
| struct | array_equalityt |
| struct | lazy_constraintt |
Public Types | |
| typedef equalityt | SUB |
Public Types inherited from prop_conv_solvert | |
| typedef std::map< irep_idt, literalt > | symbolst |
| typedef std::unordered_map< exprt, literalt, irep_hash > | cachet |
Public Types inherited from decision_proceduret | |
| enum | resultt { resultt::D_SATISFIABLE, resultt::D_UNSATISFIABLE, resultt::D_ERROR } |
Public Member Functions | |
| arrayst (const namespacet &_ns, propt &_prop) | |
| void | post_process () override |
| 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 |
| virtual void | clear_cache () |
| const cachet & | get_cache () const |
| const symbolst & | get_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() () |
Protected Types | |
| 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_equalityt > | array_equalitiest |
| typedef std::set< exprt > | index_sett |
| typedef std::map< std::size_t, index_sett > | index_mapt |
Protected Types inherited from equalityt | |
| typedef std::unordered_map< const exprt, unsigned, irep_hash > | elementst |
| typedef std::map< std::pair< unsigned, unsigned >, literalt > | equalitiest |
| typedef std::map< unsigned, exprt > | elements_revt |
| typedef std::unordered_map< const typet, typestructt, irep_hash > | typemapt |
Protected Member Functions | |
| 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) |
| virtual bool | is_unbounded_array (const typet &type) const =0 |
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_rest (const exprt &expr) |
| 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 | |
| array_equalitiest | array_equalities |
| union_find< exprt > | arrays |
| index_mapt | index_map |
| bool | lazy_arrays |
| bool | incremental_cache |
| std::list< lazy_constraintt > | lazy_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 |
| propt & | prop |
Protected Attributes inherited from decision_proceduret | |
| const namespacet & | ns |
Additional Inherited Members | |
Public Attributes inherited from prop_conv_solvert | |
| bool | use_cache = true |
| bool | equality_propagation = true |
| bool | freeze_all = false |
|
protected |
|
protected |
|
protected |
| typedef equalityt arrayst::SUB |
|
strongprotected |
| arrayst::arrayst | ( | const namespacet & | _ns, |
| propt & | _prop | ||
| ) |
Definition at line 24 of file arrays.cpp.
|
protected |
Definition at line 295 of file arrays.cpp.
|
protected |
adds array constraints (refine=true...lazily for the refinement loop)
Definition at line 235 of file arrays.cpp.
|
protected |
Definition at line 260 of file arrays.cpp.
|
protected |
Definition at line 441 of file arrays.cpp.
|
protected |
Definition at line 636 of file arrays.cpp.
|
protected |
Definition at line 410 of file arrays.cpp.
|
protected |
Definition at line 660 of file arrays.cpp.
|
protected |
Definition at line 575 of file arrays.cpp.
|
protected |
Definition at line 506 of file arrays.cpp.
|
protected |
Definition at line 108 of file arrays.cpp.
|
protected |
Definition at line 74 of file arrays.cpp.
|
protected |
Definition at line 82 of file arrays.cpp.
|
protectedpure virtual |
Implemented in boolbvt.
|
inlineoverridevirtual |
Reimplemented from prop_conv_solvert.
Reimplemented in boolbvt, and bv_pointerst.
|
inlineprotectedvirtual |
Reimplemented in bv_refinementt.
| literalt arrayst::record_array_equality | ( | const equal_exprt & | expr | ) |
Definition at line 42 of file arrays.cpp.
| void arrayst::record_array_index | ( | const index_exprt & | expr | ) |
Definition at line 32 of file arrays.cpp.
|
protected |
Definition at line 376 of file arrays.cpp.
|
protected |
merge the indices into the root
Definition at line 362 of file arrays.cpp.
|
protected |
|
protected |
|
protected |
|
protected |