'=>', '=', 'true', 'false', 'not', 'and', 'or', 'xor', 'distinct',
'ite',
# datatypes
- 'mkTuple', 'tupSel',
+ 'tuple', 'tuple_select',
# fp
'RNE', 'RNA', 'RTP', 'RTN', 'RTZ', 'fp', 'NaN', 'fp\.abs', 'fp\.neg',
'fp\.add', 'fp\.sub', 'fp\.mul', 'fp\.div', 'fp\.fma', 'fp\.sqrt',
.. code:: smtlib
(declare-const t (Tuple Int Int))
- (assert (= ((_ tupSel 0) t) 3))
- (assert (not (= t (mkTuple 3 4))))
+ (assert (= ((_ tuple_select 0) t) 3))
+ (assert (not (= t (tuple 3 4))))
Codatatypes
+--------------------+----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
| | ``(declare-const t (Tuple Int Int))`` | ``Sort s_int = solver.getIntegerSort();`` |
| | | |
-| | | ``Sort s = solver.mkTypleSort({s_int, s_int});`` |
+| | | ``Sort s = solver.mkTupleSort({s_int, s_int});`` |
| | | |
| | | ``Term t = solver.mkConst(s, "t");`` |
+--------------------+----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
-| Tuple Constructor | ``(mkTuple <Term_1>, ..., <Term_n>)`` | ``Sort s = solver.mkTypleSort(sorts);`` |
+| Tuple Constructor | ``(mkTuple <Term_1>, ..., <Term_n>)`` | ``Sort s = solver.mkTupleSort(sorts);`` |
| | | |
| | | ``Datatype dt = s.getDatatype();`` |
| | | |
| | | |
| | | ``Term t = solver.mkTerm(Kind::APPLY_CONSTRUCTOR, {c, <Term_1>, ..., <Term_n>});`` |
+--------------------+----------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
-| Tuple Selector | ``((_ tupSel i) t)`` | ``Sort s = solver.mkTypleSort(sorts);`` |
+| Tuple Selector | ``((_ tuple_select i) t)`` | ``Sort s = solver.mkTupleSort(sorts);`` |
| | | |
| | | ``Datatype dt = s.getDatatype();`` |
| | | |
* - For declared functions f that we have not yet looked up in a symbol table,
* we store (2). We may store a name in a state if f is overloaded and we have
* not yet parsed its arguments to know how to disambiguate f.
- * - For tuple selectors (_ tupSel n), we store (1) and (3). Kind is set to
+ * - For tuple selectors (_ tuple_select n), we store (1) and (3). Kind is set to
* APPLY_SELECTOR, and expr is set to n, which is to be interpreted by the
* caller as the n^th generic tuple selector. We do this since there is no
* AST expression representing generic tuple select, and we do not have enough
api::Op op;
if (p.d_kind != api::NULL_EXPR)
{
- // It is a special case, e.g. tupSel or array constant specification.
+ // It is a special case, e.g. tuple_select or array constant specification.
// We have to wait until the arguments are parsed to resolve it.
}
else if (!p.d_expr.isNull())
else if (kind == TUPLE_PROJECT)
{
// returns a tuple that represents
- // (mkTuple ((_ tupSel i_1) t) ... ((_ tupSel i_n) t))
+ // (tuple ((_ tuple_select i_1) t) ... ((_ tuple_select i_n) t))
// where each i_j is less than the length of t
Trace("dt-rewrite-project") << "Rewrite project: " << in << std::endl;