|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
#include <smt_tuple_array_ast.h>
Public Member Functions | |
| array_sym_smt_ast (smt_solver_baset *ctx, smt_sortt s, const std::string &_name) | |
| virtual | ~array_sym_smt_ast ()=default |
| smt_astt | ite (smt_solver_baset *ctx, smt_astt cond, smt_astt falseop) const override |
| smt_astt | eq (smt_solver_baset *ctx, smt_astt other) const override |
| Abstractly produce an equality. | |
| smt_astt | update (smt_solver_baset *ctx, smt_astt value, unsigned int idx, const expr2tc &idx_expr=expr2tc()) const override |
| Abstractly produce an "update", i.e., an array 'with' or tuple 'with'. | |
| smt_astt | select (smt_solver_baset *ctx, const expr2tc &idx) const override |
| Select a value from an array, for both normal arrays and tuple arrays. | |
| smt_astt | project (smt_solver_baset *ctx, unsigned int elem) const override |
| Project a member from a structure, or an field-array from a struct array. | |
| void | assign (smt_solver_baset *ctx, smt_astt sym) const override |
| Abstractly produce an assign. | |
| Public Member Functions inherited from tuple_sym_smt_ast | |
| tuple_sym_smt_ast (smt_solver_baset *ctx, smt_sortt s, std::string _name) | |
| Primary constructor. | |
| ~tuple_sym_smt_ast () override=default | |
| smt_astt | ite (smt_solver_baset *ctx, smt_astt cond, smt_astt falseop) const override |
| smt_astt | eq (smt_solver_baset *ctx, smt_astt other) const override |
| Abstractly produce an equality. | |
| smt_astt | update (smt_solver_baset *ctx, smt_astt value, unsigned int idx, const expr2tc &idx_expr=expr2tc()) const override |
| Abstractly produce an "update", i.e., an array 'with' or tuple 'with'. | |
| smt_astt | select (smt_solver_baset *ctx, const expr2tc &idx) const override |
| Select a value from an array, for both normal arrays and tuple arrays. | |
| smt_astt | project (smt_solver_baset *ctx, unsigned int elem) const override |
| Project a member from a structure, or an field-array from a struct array. | |
| void | dump () const override |
| Public Member Functions inherited from smt_ast | |
| smt_ast (smt_solver_baset *ctx, smt_sortt s) | |
| virtual | ~smt_ast ()=default |
| virtual smt_astt | with_sort (smt_solver_baset *ctx, smt_sortt s) const |
| The same solver term under a different sort. | |
Additional Inherited Members | |
| Public Attributes inherited from tuple_sym_smt_ast | |
| const std::string | name |
| The symbol prefix of the variables representing this tuples value, as a string (i.e., no associated type). | |
| Public Attributes inherited from smt_ast | |
| smt_sortt | sort |
| The sort of this function application. | |
| const smt_solver_baset * | context |
| The solver context. | |
|
inline |
|
virtualdefault |
|
overridevirtual |
Abstractly produce an assign.
Defaults to being an equality, however for some special cases up to the backend, there may be optimizations made for array or tuple assigns, and so forth.
| ctx | SMT context to do the assignment in. |
| sym | Symbol to assign to |
Reimplemented from smt_ast.
|
overridevirtual |
Abstractly produce an equality.
Does the right thing (TM) whether it's a normal piece of AST or a tuple / array.
| ctx | SMT context to produce the equality in. |
| other | Piece of AST to compare 'this' with. |
Reimplemented from smt_ast.
|
overridevirtual |
Reimplemented from smt_ast.
|
overridevirtual |
Project a member from a structure, or an field-array from a struct array.
| ctx | SMT context to produce this in. |
| elem | Struct index to project. |
Reimplemented from smt_ast.
|
overridevirtual |
Select a value from an array, for both normal arrays and tuple arrays.
| ctx | SMT context to produce this in. |
| idx | Index to select the value from. |
Reimplemented from smt_ast.
|
overridevirtual |
Abstractly produce an "update", i.e., an array 'with' or tuple 'with'.
| ctx | SMT context to make this update in. |
| value | Value to insert into the updated field |
| idx | Array index or tuple field |
| idx_expr | If an array, expression representing the index |
Reimplemented from smt_ast.