1#ifndef SOLVERS_SMT_TUPLE_SMT_TUPLE_NODE_AST_H_
2#define SOLVERS_SMT_TUPLE_SMT_TUPLE_NODE_AST_H_
82 assert(ta !=
nullptr &&
"Tuple AST mismatch");
smt_ast(smt_solver_baset *ctx, smt_sortt s)
Definition smt_solver.h:1270
The base SMT-conversion class/interface.
Definition smt_solver.h:170
Definition smt_tuple_node.h:12
Function app representing a tuple sorted value.
Definition smt_tuple_node_ast.h:24
void make_free(smt_solver_baset *ctx)
Definition smt_tuple_node_ast.cpp:16
std::vector< smt_astt > elements
Definition smt_tuple_node_ast.h:48
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.
Definition smt_tuple_node_ast.cpp:196
void assign(smt_solver_baset *ctx, smt_astt sym) const override
Abstractly produce an assign.
Definition smt_tuple_node_ast.cpp:101
smt_tuple_node_flattener & flat
Definition smt_tuple_node_ast.h:47
smt_astt ite(smt_solver_baset *ctx, smt_astt cond, smt_astt falseop) const override
Definition smt_tuple_node_ast.cpp:63
const std::string name
The symbol prefix of the variables representing this tuples value, as a string (i....
Definition smt_tuple_node_ast.h:45
~tuple_node_smt_ast() override=default
void pre_ite(smt_solver_baset *ctx, smt_astt cond, smt_astt falseop)
const unsigned int creation_ctx_level
Context level this AST was created at.
Definition smt_tuple_node_ast.h:54
smt_astt eq(smt_solver_baset *ctx, smt_astt other) const override
Abstractly produce an equality.
Definition smt_tuple_node_ast.cpp:126
tuple_node_smt_ast(smt_tuple_node_flattener &f, smt_solver_baset *ctx, smt_sortt s, std::string _name)
Primary constructor.
Definition smt_tuple_node_ast.h:30
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.
Definition smt_tuple_node_ast.cpp:187
void dump() const override
Definition smt_tuple_node_ast.h:68
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'.
Definition smt_tuple_node_ast.cpp:156
@ other
Definition converter_compare.cpp:887
pthread_cond_t cond
Definition cuda.h:50
irep_container< expr2t > expr2tc
Definition irep2.h:431
#define log_debug(mod, fmt,...)
Definition message.h:104
Definition exception.cpp:51
const smt_ast * smt_astt
Definition smt_ast.h:30
const smt_sort * smt_sortt
Definition smt_sort.h:37
const tuple_node_smt_ast * tuple_node_smt_astt
Definition smt_tuple_node.h:9
tuple_node_smt_astt to_tuple_node_ast(smt_astt a)
Definition smt_tuple_node_ast.h:79