#include <smt_ast.h>
|
| | 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.
|
| virtual smt_astt | ite (smt_solver_baset *ctx, smt_astt cond, smt_astt falseop) const |
| virtual smt_astt | eq (smt_solver_baset *ctx, smt_astt other) const |
| | Abstractly produce an equality.
|
| virtual void | assign (smt_solver_baset *ctx, smt_astt sym) const |
| | Abstractly produce an assign.
|
| virtual smt_astt | update (smt_solver_baset *ctx, smt_astt value, unsigned int idx, const expr2tc &idx_expr=expr2tc()) const |
| | Abstractly produce an "update", i.e., an array 'with' or tuple 'with'.
|
| virtual smt_astt | select (smt_solver_baset *ctx, const expr2tc &idx) const |
| | Select a value from an array, for both normal arrays and tuple arrays.
|
| virtual smt_astt | project (smt_solver_baset *ctx, unsigned int elem) const |
| | Project a member from a structure, or an field-array from a struct array.
|
| virtual void | dump () const |
◆ smt_ast()
◆ ~smt_ast()
| virtual smt_ast::~smt_ast |
( |
| ) |
|
|
virtualdefault |
◆ assign()
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.
- Parameters
-
| ctx | SMT context to do the assignment in. |
| sym | Symbol to assign to |
Reimplemented in array_ast, array_sym_smt_ast, tuple_node_smt_ast, and yices_smt_ast.
◆ dump()
| virtual void smt_ast::dump |
( |
| ) |
const |
|
inlinevirtual |
Reimplemented in array_ast, bitw_smt_ast, btor_smt_ast, cvc5_smt_ast, cvc_smt_ast, mathsat_smt_ast, smtlib_smt_ast, tuple_node_smt_ast, tuple_sym_smt_ast, yices_smt_ast, and z3_smt_ast.
◆ eq()
Abstractly produce an equality.
Does the right thing (TM) whether it's a normal piece of AST or a tuple / array.
- Parameters
-
| ctx | SMT context to produce the equality in. |
| other | Piece of AST to compare 'this' with. |
- Returns
- Boolean typed AST representing an equality
Reimplemented in array_ast, array_sym_smt_ast, tuple_node_smt_ast, and tuple_sym_smt_ast.
◆ ite()
◆ project()
◆ select()
Select a value from an array, for both normal arrays and tuple arrays.
- Parameters
-
| ctx | SMT context to produce this in. |
| idx | Index to select the value from. |
- Returns
- AST of the array's range sort representing the selected item
Reimplemented in array_ast, array_sym_smt_ast, tuple_node_smt_ast, and tuple_sym_smt_ast.
◆ update()
◆ with_sort()
The same solver term under a different sort.
The default rewrites this node's sort in place, which is what the bit-vector-only backends have always relied on – there both sorts are the same solver sort. A backend where they are genuinely different solver sorts must return a fresh node, or the rewrite corrupts every other holder of this shared ast.
Reimplemented in bitw_smt_ast.
◆ context
◆ sort
The sort of this function application.
The documentation for this class was generated from the following files: