1 |
|
/****************************************************************************** |
2 |
|
* This file is part of the cvc5 project. |
3 |
|
* |
4 |
|
* Copyright (c) 2010-2021 by the authors listed in the file AUTHORS |
5 |
|
* in the top-level source directory and their institutional affiliations. |
6 |
|
* All rights reserved. See the file COPYING in the top-level source |
7 |
|
* directory for licensing information. |
8 |
|
* **************************************************************************** |
9 |
|
* |
10 |
|
* This header file was automatically generated by: |
11 |
|
* |
12 |
|
* ../../../src/expr/mkkind /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/expr/kind_template.cpp /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/builtin/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/booleans/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/uf/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/arith/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/bv/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/fp/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/arrays/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/datatypes/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/sep/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/sets/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/bags/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/strings/kinds /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/theory/quantifiers/kinds |
13 |
|
* |
14 |
|
* for the cvc5 project. |
15 |
|
*/ |
16 |
|
|
17 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
18 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
19 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
20 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
21 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
22 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
23 |
|
|
24 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
25 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
26 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
27 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
28 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
29 |
|
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */ |
30 |
|
|
31 |
|
/* Edit the template file instead: */ |
32 |
|
/* /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-12/src/expr/kind_template.cpp */ |
33 |
|
|
34 |
|
/****************************************************************************** |
35 |
|
* Top contributors (to current version): |
36 |
|
* Andres Noetzli, Aina Niemetz, Christopher L. Conway |
37 |
|
* |
38 |
|
* This file is part of the cvc5 project. |
39 |
|
* |
40 |
|
* Copyright (c) 2009-2021 by the authors listed in the file AUTHORS |
41 |
|
* in the top-level source directory and their institutional affiliations. |
42 |
|
* All rights reserved. See the file COPYING in the top-level source |
43 |
|
* directory for licensing information. |
44 |
|
* **************************************************************************** |
45 |
|
* |
46 |
|
* [[ Add one-line brief description here ]] |
47 |
|
* |
48 |
|
* [[ Add lengthier description here ]] |
49 |
|
* \todo document this file |
50 |
|
*/ |
51 |
|
|
52 |
|
#include <sstream> |
53 |
|
|
54 |
|
#include "expr/kind.h" |
55 |
|
|
56 |
|
namespace cvc5 { |
57 |
|
namespace kind { |
58 |
|
|
59 |
10810 |
const char* toString(cvc5::Kind k) |
60 |
|
{ |
61 |
|
using namespace cvc5::kind; |
62 |
|
|
63 |
10810 |
switch (k) |
64 |
|
{ |
65 |
|
/* special cases */ |
66 |
4 |
case UNDEFINED_KIND: return "UNDEFINED_KIND"; |
67 |
4 |
case NULL_EXPR: return "NULL"; |
68 |
|
// clang-format off |
69 |
|
|
70 |
|
/* from builtin */ |
71 |
|
case SORT_TAG: return "SORT_TAG"; |
72 |
|
case SORT_TYPE: return "SORT_TYPE"; |
73 |
|
case UNINTERPRETED_CONSTANT: return "UNINTERPRETED_CONSTANT"; |
74 |
|
case ABSTRACT_VALUE: return "ABSTRACT_VALUE"; |
75 |
|
case BUILTIN: return "BUILTIN"; |
76 |
520 |
case EQUAL: return "EQUAL"; |
77 |
4 |
case DISTINCT: return "DISTINCT"; |
78 |
22 |
case VARIABLE: return "VARIABLE"; |
79 |
679 |
case BOUND_VARIABLE: return "BOUND_VARIABLE"; |
80 |
|
case SKOLEM: return "SKOLEM"; |
81 |
4 |
case SEXPR: return "SEXPR"; |
82 |
12 |
case LAMBDA: return "LAMBDA"; |
83 |
|
case WITNESS: return "WITNESS"; |
84 |
|
case TYPE_CONSTANT: return "TYPE_CONSTANT"; |
85 |
|
case FUNCTION_TYPE: return "FUNCTION_TYPE"; |
86 |
|
|
87 |
|
/* from booleans */ |
88 |
51 |
case CONST_BOOLEAN: return "CONST_BOOLEAN"; |
89 |
421 |
case NOT: return "NOT"; |
90 |
459 |
case AND: return "AND"; |
91 |
3 |
case IMPLIES: return "IMPLIES"; |
92 |
452 |
case OR: return "OR"; |
93 |
20 |
case XOR: return "XOR"; |
94 |
546 |
case ITE: return "ITE"; |
95 |
|
|
96 |
|
/* from uf */ |
97 |
73 |
case APPLY_UF: return "APPLY_UF"; |
98 |
5 |
case BOOLEAN_TERM_VARIABLE: return "BOOLEAN_TERM_VARIABLE"; |
99 |
|
case CARDINALITY_CONSTRAINT: return "CARDINALITY_CONSTRAINT"; |
100 |
|
case COMBINED_CARDINALITY_CONSTRAINT: return "COMBINED_CARDINALITY_CONSTRAINT"; |
101 |
|
case PARTIAL_APPLY_UF: return "PARTIAL_APPLY_UF"; |
102 |
|
case CARDINALITY_VALUE: return "CARDINALITY_VALUE"; |
103 |
|
case HO_APPLY: return "HO_APPLY"; |
104 |
|
|
105 |
|
/* from arith */ |
106 |
472 |
case PLUS: return "PLUS"; |
107 |
6 |
case MULT: return "MULT"; |
108 |
|
case NONLINEAR_MULT: return "NONLINEAR_MULT"; |
109 |
391 |
case MINUS: return "MINUS"; |
110 |
6 |
case UMINUS: return "UMINUS"; |
111 |
44 |
case DIVISION: return "DIVISION"; |
112 |
|
case DIVISION_TOTAL: return "DIVISION_TOTAL"; |
113 |
1 |
case INTS_DIVISION: return "INTS_DIVISION"; |
114 |
|
case INTS_DIVISION_TOTAL: return "INTS_DIVISION_TOTAL"; |
115 |
3 |
case INTS_MODULUS: return "INTS_MODULUS"; |
116 |
|
case INTS_MODULUS_TOTAL: return "INTS_MODULUS_TOTAL"; |
117 |
|
case ABS: return "ABS"; |
118 |
16 |
case DIVISIBLE: return "DIVISIBLE"; |
119 |
|
case POW: return "POW"; |
120 |
|
case POW2: return "POW2"; |
121 |
|
case EXPONENTIAL: return "EXPONENTIAL"; |
122 |
|
case SINE: return "SINE"; |
123 |
|
case COSINE: return "COSINE"; |
124 |
|
case TANGENT: return "TANGENT"; |
125 |
|
case COSECANT: return "COSECANT"; |
126 |
|
case SECANT: return "SECANT"; |
127 |
|
case COTANGENT: return "COTANGENT"; |
128 |
|
case ARCSINE: return "ARCSINE"; |
129 |
|
case ARCCOSINE: return "ARCCOSINE"; |
130 |
|
case ARCTANGENT: return "ARCTANGENT"; |
131 |
|
case ARCCOSECANT: return "ARCCOSECANT"; |
132 |
|
case ARCSECANT: return "ARCSECANT"; |
133 |
|
case ARCCOTANGENT: return "ARCCOTANGENT"; |
134 |
|
case SQRT: return "SQRT"; |
135 |
|
case DIVISIBLE_OP: return "DIVISIBLE_OP"; |
136 |
233 |
case CONST_RATIONAL: return "CONST_RATIONAL"; |
137 |
18 |
case LT: return "LT"; |
138 |
388 |
case LEQ: return "LEQ"; |
139 |
14 |
case GT: return "GT"; |
140 |
25 |
case GEQ: return "GEQ"; |
141 |
|
case INDEXED_ROOT_PREDICATE_OP: return "INDEXED_ROOT_PREDICATE_OP"; |
142 |
|
case INDEXED_ROOT_PREDICATE: return "INDEXED_ROOT_PREDICATE"; |
143 |
|
case IS_INTEGER: return "IS_INTEGER"; |
144 |
|
case TO_INTEGER: return "TO_INTEGER"; |
145 |
|
case TO_REAL: return "TO_REAL"; |
146 |
|
case CAST_TO_REAL: return "CAST_TO_REAL"; |
147 |
|
case PI: return "PI"; |
148 |
|
case IAND_OP: return "IAND_OP"; |
149 |
|
case IAND: return "IAND"; |
150 |
|
|
151 |
|
/* from bv */ |
152 |
|
case BITVECTOR_TYPE: return "BITVECTOR_TYPE"; |
153 |
56 |
case CONST_BITVECTOR: return "CONST_BITVECTOR"; |
154 |
|
case BITVECTOR_BB_TERM: return "BITVECTOR_BB_TERM"; |
155 |
1 |
case BITVECTOR_CONCAT: return "BITVECTOR_CONCAT"; |
156 |
62 |
case BITVECTOR_AND: return "BITVECTOR_AND"; |
157 |
14 |
case BITVECTOR_COMP: return "BITVECTOR_COMP"; |
158 |
84 |
case BITVECTOR_OR: return "BITVECTOR_OR"; |
159 |
53 |
case BITVECTOR_XOR: return "BITVECTOR_XOR"; |
160 |
86 |
case BITVECTOR_NOT: return "BITVECTOR_NOT"; |
161 |
|
case BITVECTOR_NAND: return "BITVECTOR_NAND"; |
162 |
|
case BITVECTOR_NOR: return "BITVECTOR_NOR"; |
163 |
|
case BITVECTOR_XNOR: return "BITVECTOR_XNOR"; |
164 |
42 |
case BITVECTOR_MULT: return "BITVECTOR_MULT"; |
165 |
46 |
case BITVECTOR_NEG: return "BITVECTOR_NEG"; |
166 |
58 |
case BITVECTOR_ADD: return "BITVECTOR_ADD"; |
167 |
41 |
case BITVECTOR_SUB: return "BITVECTOR_SUB"; |
168 |
42 |
case BITVECTOR_UDIV: return "BITVECTOR_UDIV"; |
169 |
42 |
case BITVECTOR_UREM: return "BITVECTOR_UREM"; |
170 |
41 |
case BITVECTOR_SDIV: return "BITVECTOR_SDIV"; |
171 |
|
case BITVECTOR_SMOD: return "BITVECTOR_SMOD"; |
172 |
39 |
case BITVECTOR_SREM: return "BITVECTOR_SREM"; |
173 |
37 |
case BITVECTOR_ASHR: return "BITVECTOR_ASHR"; |
174 |
44 |
case BITVECTOR_LSHR: return "BITVECTOR_LSHR"; |
175 |
44 |
case BITVECTOR_SHL: return "BITVECTOR_SHL"; |
176 |
2 |
case BITVECTOR_ULE: return "BITVECTOR_ULE"; |
177 |
39 |
case BITVECTOR_ULT: return "BITVECTOR_ULT"; |
178 |
2 |
case BITVECTOR_UGE: return "BITVECTOR_UGE"; |
179 |
1 |
case BITVECTOR_UGT: return "BITVECTOR_UGT"; |
180 |
|
case BITVECTOR_SLE: return "BITVECTOR_SLE"; |
181 |
2 |
case BITVECTOR_SLT: return "BITVECTOR_SLT"; |
182 |
2 |
case BITVECTOR_SGE: return "BITVECTOR_SGE"; |
183 |
|
case BITVECTOR_SGT: return "BITVECTOR_SGT"; |
184 |
16 |
case BITVECTOR_ULTBV: return "BITVECTOR_ULTBV"; |
185 |
4 |
case BITVECTOR_SLTBV: return "BITVECTOR_SLTBV"; |
186 |
|
case BITVECTOR_REDAND: return "BITVECTOR_REDAND"; |
187 |
|
case BITVECTOR_REDOR: return "BITVECTOR_REDOR"; |
188 |
12 |
case BITVECTOR_ITE: return "BITVECTOR_ITE"; |
189 |
|
case BITVECTOR_TO_NAT: return "BITVECTOR_TO_NAT"; |
190 |
|
case BITVECTOR_ACKERMANNIZE_UDIV: return "BITVECTOR_ACKERMANNIZE_UDIV"; |
191 |
|
case BITVECTOR_ACKERMANNIZE_UREM: return "BITVECTOR_ACKERMANNIZE_UREM"; |
192 |
|
case BITVECTOR_EAGER_ATOM: return "BITVECTOR_EAGER_ATOM"; |
193 |
|
case BITVECTOR_BITOF_OP: return "BITVECTOR_BITOF_OP"; |
194 |
|
case BITVECTOR_BITOF: return "BITVECTOR_BITOF"; |
195 |
|
case BITVECTOR_EXTRACT_OP: return "BITVECTOR_EXTRACT_OP"; |
196 |
24 |
case BITVECTOR_EXTRACT: return "BITVECTOR_EXTRACT"; |
197 |
|
case BITVECTOR_REPEAT_OP: return "BITVECTOR_REPEAT_OP"; |
198 |
3 |
case BITVECTOR_REPEAT: return "BITVECTOR_REPEAT"; |
199 |
|
case BITVECTOR_ROTATE_LEFT_OP: return "BITVECTOR_ROTATE_LEFT_OP"; |
200 |
|
case BITVECTOR_ROTATE_LEFT: return "BITVECTOR_ROTATE_LEFT"; |
201 |
|
case BITVECTOR_ROTATE_RIGHT_OP: return "BITVECTOR_ROTATE_RIGHT_OP"; |
202 |
|
case BITVECTOR_ROTATE_RIGHT: return "BITVECTOR_ROTATE_RIGHT"; |
203 |
|
case BITVECTOR_SIGN_EXTEND_OP: return "BITVECTOR_SIGN_EXTEND_OP"; |
204 |
|
case BITVECTOR_SIGN_EXTEND: return "BITVECTOR_SIGN_EXTEND"; |
205 |
|
case BITVECTOR_ZERO_EXTEND_OP: return "BITVECTOR_ZERO_EXTEND_OP"; |
206 |
|
case BITVECTOR_ZERO_EXTEND: return "BITVECTOR_ZERO_EXTEND"; |
207 |
1 |
case INT_TO_BITVECTOR_OP: return "INT_TO_BITVECTOR_OP"; |
208 |
|
case INT_TO_BITVECTOR: return "INT_TO_BITVECTOR"; |
209 |
|
|
210 |
|
/* from fp */ |
211 |
|
case CONST_FLOATINGPOINT: return "CONST_FLOATINGPOINT"; |
212 |
1 |
case CONST_ROUNDINGMODE: return "CONST_ROUNDINGMODE"; |
213 |
|
case FLOATINGPOINT_TYPE: return "FLOATINGPOINT_TYPE"; |
214 |
|
case FLOATINGPOINT_FP: return "FLOATINGPOINT_FP"; |
215 |
|
case FLOATINGPOINT_EQ: return "FLOATINGPOINT_EQ"; |
216 |
2 |
case FLOATINGPOINT_ABS: return "FLOATINGPOINT_ABS"; |
217 |
2 |
case FLOATINGPOINT_NEG: return "FLOATINGPOINT_NEG"; |
218 |
2 |
case FLOATINGPOINT_ADD: return "FLOATINGPOINT_ADD"; |
219 |
3 |
case FLOATINGPOINT_SUB: return "FLOATINGPOINT_SUB"; |
220 |
2 |
case FLOATINGPOINT_MULT: return "FLOATINGPOINT_MULT"; |
221 |
2 |
case FLOATINGPOINT_DIV: return "FLOATINGPOINT_DIV"; |
222 |
|
case FLOATINGPOINT_FMA: return "FLOATINGPOINT_FMA"; |
223 |
2 |
case FLOATINGPOINT_SQRT: return "FLOATINGPOINT_SQRT"; |
224 |
2 |
case FLOATINGPOINT_REM: return "FLOATINGPOINT_REM"; |
225 |
|
case FLOATINGPOINT_RTI: return "FLOATINGPOINT_RTI"; |
226 |
|
case FLOATINGPOINT_MIN: return "FLOATINGPOINT_MIN"; |
227 |
1 |
case FLOATINGPOINT_MAX: return "FLOATINGPOINT_MAX"; |
228 |
|
case FLOATINGPOINT_MIN_TOTAL: return "FLOATINGPOINT_MIN_TOTAL"; |
229 |
|
case FLOATINGPOINT_MAX_TOTAL: return "FLOATINGPOINT_MAX_TOTAL"; |
230 |
|
case FLOATINGPOINT_LEQ: return "FLOATINGPOINT_LEQ"; |
231 |
|
case FLOATINGPOINT_LT: return "FLOATINGPOINT_LT"; |
232 |
|
case FLOATINGPOINT_GEQ: return "FLOATINGPOINT_GEQ"; |
233 |
|
case FLOATINGPOINT_GT: return "FLOATINGPOINT_GT"; |
234 |
1 |
case FLOATINGPOINT_ISN: return "FLOATINGPOINT_ISN"; |
235 |
1 |
case FLOATINGPOINT_ISSN: return "FLOATINGPOINT_ISSN"; |
236 |
2 |
case FLOATINGPOINT_ISZ: return "FLOATINGPOINT_ISZ"; |
237 |
1 |
case FLOATINGPOINT_ISINF: return "FLOATINGPOINT_ISINF"; |
238 |
1 |
case FLOATINGPOINT_ISNAN: return "FLOATINGPOINT_ISNAN"; |
239 |
2 |
case FLOATINGPOINT_ISNEG: return "FLOATINGPOINT_ISNEG"; |
240 |
1 |
case FLOATINGPOINT_ISPOS: return "FLOATINGPOINT_ISPOS"; |
241 |
|
case FLOATINGPOINT_TO_FP_IEEE_BITVECTOR_OP: return "FLOATINGPOINT_TO_FP_IEEE_BITVECTOR_OP"; |
242 |
|
case FLOATINGPOINT_TO_FP_IEEE_BITVECTOR: return "FLOATINGPOINT_TO_FP_IEEE_BITVECTOR"; |
243 |
|
case FLOATINGPOINT_TO_FP_FLOATINGPOINT_OP: return "FLOATINGPOINT_TO_FP_FLOATINGPOINT_OP"; |
244 |
|
case FLOATINGPOINT_TO_FP_FLOATINGPOINT: return "FLOATINGPOINT_TO_FP_FLOATINGPOINT"; |
245 |
|
case FLOATINGPOINT_TO_FP_REAL_OP: return "FLOATINGPOINT_TO_FP_REAL_OP"; |
246 |
|
case FLOATINGPOINT_TO_FP_REAL: return "FLOATINGPOINT_TO_FP_REAL"; |
247 |
|
case FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR_OP: return "FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR_OP"; |
248 |
|
case FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR: return "FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR"; |
249 |
|
case FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR_OP: return "FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR_OP"; |
250 |
|
case FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR: return "FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR"; |
251 |
|
case FLOATINGPOINT_TO_FP_GENERIC_OP: return "FLOATINGPOINT_TO_FP_GENERIC_OP"; |
252 |
2 |
case FLOATINGPOINT_TO_FP_GENERIC: return "FLOATINGPOINT_TO_FP_GENERIC"; |
253 |
|
case FLOATINGPOINT_TO_UBV_OP: return "FLOATINGPOINT_TO_UBV_OP"; |
254 |
|
case FLOATINGPOINT_TO_UBV: return "FLOATINGPOINT_TO_UBV"; |
255 |
|
case FLOATINGPOINT_TO_UBV_TOTAL_OP: return "FLOATINGPOINT_TO_UBV_TOTAL_OP"; |
256 |
|
case FLOATINGPOINT_TO_UBV_TOTAL: return "FLOATINGPOINT_TO_UBV_TOTAL"; |
257 |
|
case FLOATINGPOINT_TO_SBV_OP: return "FLOATINGPOINT_TO_SBV_OP"; |
258 |
|
case FLOATINGPOINT_TO_SBV: return "FLOATINGPOINT_TO_SBV"; |
259 |
|
case FLOATINGPOINT_TO_SBV_TOTAL_OP: return "FLOATINGPOINT_TO_SBV_TOTAL_OP"; |
260 |
|
case FLOATINGPOINT_TO_SBV_TOTAL: return "FLOATINGPOINT_TO_SBV_TOTAL"; |
261 |
|
case FLOATINGPOINT_TO_REAL: return "FLOATINGPOINT_TO_REAL"; |
262 |
|
case FLOATINGPOINT_TO_REAL_TOTAL: return "FLOATINGPOINT_TO_REAL_TOTAL"; |
263 |
|
case FLOATINGPOINT_COMPONENT_NAN: return "FLOATINGPOINT_COMPONENT_NAN"; |
264 |
|
case FLOATINGPOINT_COMPONENT_INF: return "FLOATINGPOINT_COMPONENT_INF"; |
265 |
|
case FLOATINGPOINT_COMPONENT_ZERO: return "FLOATINGPOINT_COMPONENT_ZERO"; |
266 |
|
case FLOATINGPOINT_COMPONENT_SIGN: return "FLOATINGPOINT_COMPONENT_SIGN"; |
267 |
|
case FLOATINGPOINT_COMPONENT_EXPONENT: return "FLOATINGPOINT_COMPONENT_EXPONENT"; |
268 |
|
case FLOATINGPOINT_COMPONENT_SIGNIFICAND: return "FLOATINGPOINT_COMPONENT_SIGNIFICAND"; |
269 |
|
case ROUNDINGMODE_BITBLAST: return "ROUNDINGMODE_BITBLAST"; |
270 |
|
|
271 |
|
/* from arrays */ |
272 |
|
case ARRAY_TYPE: return "ARRAY_TYPE"; |
273 |
13 |
case SELECT: return "SELECT"; |
274 |
13 |
case STORE: return "STORE"; |
275 |
|
case EQ_RANGE: return "EQ_RANGE"; |
276 |
|
case STORE_ALL: return "STORE_ALL"; |
277 |
|
case ARR_TABLE_FUN: return "ARR_TABLE_FUN"; |
278 |
|
case ARRAY_LAMBDA: return "ARRAY_LAMBDA"; |
279 |
|
case PARTIAL_SELECT_0: return "PARTIAL_SELECT_0"; |
280 |
|
case PARTIAL_SELECT_1: return "PARTIAL_SELECT_1"; |
281 |
|
|
282 |
|
/* from datatypes */ |
283 |
|
case CONSTRUCTOR_TYPE: return "CONSTRUCTOR_TYPE"; |
284 |
|
case SELECTOR_TYPE: return "SELECTOR_TYPE"; |
285 |
|
case TESTER_TYPE: return "TESTER_TYPE"; |
286 |
|
case UPDATER_TYPE: return "UPDATER_TYPE"; |
287 |
71 |
case APPLY_CONSTRUCTOR: return "APPLY_CONSTRUCTOR"; |
288 |
26 |
case APPLY_SELECTOR: return "APPLY_SELECTOR"; |
289 |
|
case APPLY_SELECTOR_TOTAL: return "APPLY_SELECTOR_TOTAL"; |
290 |
|
case APPLY_TESTER: return "APPLY_TESTER"; |
291 |
|
case APPLY_UPDATER: return "APPLY_UPDATER"; |
292 |
|
case DATATYPE_TYPE: return "DATATYPE_TYPE"; |
293 |
|
case PARAMETRIC_DATATYPE: return "PARAMETRIC_DATATYPE"; |
294 |
|
case APPLY_TYPE_ASCRIPTION: return "APPLY_TYPE_ASCRIPTION"; |
295 |
|
case ASCRIPTION_TYPE: return "ASCRIPTION_TYPE"; |
296 |
|
case DT_SIZE: return "DT_SIZE"; |
297 |
|
case DT_HEIGHT_BOUND: return "DT_HEIGHT_BOUND"; |
298 |
|
case DT_SIZE_BOUND: return "DT_SIZE_BOUND"; |
299 |
|
case DT_SYGUS_BOUND: return "DT_SYGUS_BOUND"; |
300 |
497 |
case DT_SYGUS_EVAL: return "DT_SYGUS_EVAL"; |
301 |
|
case MATCH: return "MATCH"; |
302 |
|
case MATCH_CASE: return "MATCH_CASE"; |
303 |
|
case MATCH_BIND_CASE: return "MATCH_BIND_CASE"; |
304 |
|
case TUPLE_PROJECT_OP: return "TUPLE_PROJECT_OP"; |
305 |
2 |
case TUPLE_PROJECT: return "TUPLE_PROJECT"; |
306 |
|
|
307 |
|
/* from sep */ |
308 |
|
case SEP_NIL: return "SEP_NIL"; |
309 |
|
case SEP_EMP: return "SEP_EMP"; |
310 |
|
case SEP_PTO: return "SEP_PTO"; |
311 |
|
case SEP_STAR: return "SEP_STAR"; |
312 |
|
case SEP_WAND: return "SEP_WAND"; |
313 |
|
case SEP_LABEL: return "SEP_LABEL"; |
314 |
|
|
315 |
|
/* from sets */ |
316 |
|
case EMPTYSET: return "EMPTYSET"; |
317 |
|
case SET_TYPE: return "SET_TYPE"; |
318 |
8 |
case UNION: return "UNION"; |
319 |
6 |
case INTERSECTION: return "INTERSECTION"; |
320 |
6 |
case SETMINUS: return "SETMINUS"; |
321 |
|
case SUBSET: return "SUBSET"; |
322 |
6 |
case MEMBER: return "MEMBER"; |
323 |
|
case SINGLETON_OP: return "SINGLETON_OP"; |
324 |
|
case SINGLETON: return "SINGLETON"; |
325 |
|
case INSERT: return "INSERT"; |
326 |
|
case CARD: return "CARD"; |
327 |
|
case COMPLEMENT: return "COMPLEMENT"; |
328 |
|
case UNIVERSE_SET: return "UNIVERSE_SET"; |
329 |
|
case COMPREHENSION: return "COMPREHENSION"; |
330 |
|
case CHOOSE: return "CHOOSE"; |
331 |
|
case IS_SINGLETON: return "IS_SINGLETON"; |
332 |
|
case JOIN: return "JOIN"; |
333 |
|
case PRODUCT: return "PRODUCT"; |
334 |
|
case TRANSPOSE: return "TRANSPOSE"; |
335 |
|
case TCLOSURE: return "TCLOSURE"; |
336 |
|
case JOIN_IMAGE: return "JOIN_IMAGE"; |
337 |
|
case IDEN: return "IDEN"; |
338 |
|
|
339 |
|
/* from bags */ |
340 |
|
case EMPTYBAG: return "EMPTYBAG"; |
341 |
|
case BAG_TYPE: return "BAG_TYPE"; |
342 |
|
case UNION_MAX: return "UNION_MAX"; |
343 |
|
case UNION_DISJOINT: return "UNION_DISJOINT"; |
344 |
|
case INTERSECTION_MIN: return "INTERSECTION_MIN"; |
345 |
|
case DIFFERENCE_SUBTRACT: return "DIFFERENCE_SUBTRACT"; |
346 |
|
case DIFFERENCE_REMOVE: return "DIFFERENCE_REMOVE"; |
347 |
|
case SUBBAG: return "SUBBAG"; |
348 |
|
case BAG_COUNT: return "BAG_COUNT"; |
349 |
|
case DUPLICATE_REMOVAL: return "DUPLICATE_REMOVAL"; |
350 |
|
case MK_BAG_OP: return "MK_BAG_OP"; |
351 |
|
case MK_BAG: return "MK_BAG"; |
352 |
|
case BAG_IS_SINGLETON: return "BAG_IS_SINGLETON"; |
353 |
|
case BAG_CARD: return "BAG_CARD"; |
354 |
|
case BAG_FROM_SET: return "BAG_FROM_SET"; |
355 |
|
case BAG_TO_SET: return "BAG_TO_SET"; |
356 |
|
case BAG_CHOOSE: return "BAG_CHOOSE"; |
357 |
2 |
case BAG_MAP: return "BAG_MAP"; |
358 |
|
|
359 |
|
/* from strings */ |
360 |
40 |
case STRING_CONCAT: return "STRING_CONCAT"; |
361 |
1 |
case STRING_IN_REGEXP: return "STRING_IN_REGEXP"; |
362 |
30 |
case STRING_LENGTH: return "STRING_LENGTH"; |
363 |
7 |
case STRING_SUBSTR: return "STRING_SUBSTR"; |
364 |
|
case STRING_UPDATE: return "STRING_UPDATE"; |
365 |
5 |
case STRING_CHARAT: return "STRING_CHARAT"; |
366 |
4 |
case STRING_CONTAINS: return "STRING_CONTAINS"; |
367 |
|
case STRING_LT: return "STRING_LT"; |
368 |
|
case STRING_LEQ: return "STRING_LEQ"; |
369 |
6 |
case STRING_INDEXOF: return "STRING_INDEXOF"; |
370 |
|
case STRING_INDEXOF_RE: return "STRING_INDEXOF_RE"; |
371 |
5 |
case STRING_REPLACE: return "STRING_REPLACE"; |
372 |
|
case STRING_REPLACE_ALL: return "STRING_REPLACE_ALL"; |
373 |
|
case STRING_REPLACE_RE: return "STRING_REPLACE_RE"; |
374 |
|
case STRING_REPLACE_RE_ALL: return "STRING_REPLACE_RE_ALL"; |
375 |
4 |
case STRING_PREFIX: return "STRING_PREFIX"; |
376 |
4 |
case STRING_SUFFIX: return "STRING_SUFFIX"; |
377 |
|
case STRING_IS_DIGIT: return "STRING_IS_DIGIT"; |
378 |
5 |
case STRING_ITOS: return "STRING_ITOS"; |
379 |
6 |
case STRING_STOI: return "STRING_STOI"; |
380 |
|
case STRING_TO_CODE: return "STRING_TO_CODE"; |
381 |
|
case STRING_FROM_CODE: return "STRING_FROM_CODE"; |
382 |
|
case STRING_TOLOWER: return "STRING_TOLOWER"; |
383 |
|
case STRING_TOUPPER: return "STRING_TOUPPER"; |
384 |
|
case STRING_REV: return "STRING_REV"; |
385 |
61 |
case CONST_STRING: return "CONST_STRING"; |
386 |
|
case SEQUENCE_TYPE: return "SEQUENCE_TYPE"; |
387 |
|
case CONST_SEQUENCE: return "CONST_SEQUENCE"; |
388 |
|
case SEQ_UNIT: return "SEQ_UNIT"; |
389 |
|
case SEQ_NTH: return "SEQ_NTH"; |
390 |
|
case SEQ_NTH_TOTAL: return "SEQ_NTH_TOTAL"; |
391 |
6 |
case STRING_TO_REGEXP: return "STRING_TO_REGEXP"; |
392 |
4 |
case REGEXP_CONCAT: return "REGEXP_CONCAT"; |
393 |
3 |
case REGEXP_UNION: return "REGEXP_UNION"; |
394 |
3 |
case REGEXP_INTER: return "REGEXP_INTER"; |
395 |
1 |
case REGEXP_DIFF: return "REGEXP_DIFF"; |
396 |
3 |
case REGEXP_STAR: return "REGEXP_STAR"; |
397 |
1 |
case REGEXP_PLUS: return "REGEXP_PLUS"; |
398 |
1 |
case REGEXP_OPT: return "REGEXP_OPT"; |
399 |
|
case REGEXP_RANGE: return "REGEXP_RANGE"; |
400 |
1 |
case REGEXP_COMPLEMENT: return "REGEXP_COMPLEMENT"; |
401 |
|
case REGEXP_EMPTY: return "REGEXP_EMPTY"; |
402 |
|
case REGEXP_SIGMA: return "REGEXP_SIGMA"; |
403 |
|
case REGEXP_REPEAT_OP: return "REGEXP_REPEAT_OP"; |
404 |
|
case REGEXP_REPEAT: return "REGEXP_REPEAT"; |
405 |
|
case REGEXP_LOOP_OP: return "REGEXP_LOOP_OP"; |
406 |
|
case REGEXP_LOOP: return "REGEXP_LOOP"; |
407 |
|
case REGEXP_RV: return "REGEXP_RV"; |
408 |
|
|
409 |
|
/* from quantifiers */ |
410 |
|
case FORALL: return "FORALL"; |
411 |
|
case EXISTS: return "EXISTS"; |
412 |
4087 |
case INST_CONSTANT: return "INST_CONSTANT"; |
413 |
|
case BOUND_VAR_LIST: return "BOUND_VAR_LIST"; |
414 |
|
case INST_PATTERN: return "INST_PATTERN"; |
415 |
|
case INST_NO_PATTERN: return "INST_NO_PATTERN"; |
416 |
|
case INST_ATTRIBUTE: return "INST_ATTRIBUTE"; |
417 |
|
case INST_POOL: return "INST_POOL"; |
418 |
|
case INST_ADD_TO_POOL: return "INST_ADD_TO_POOL"; |
419 |
|
case SKOLEM_ADD_TO_POOL: return "SKOLEM_ADD_TO_POOL"; |
420 |
|
case INST_PATTERN_LIST: return "INST_PATTERN_LIST"; |
421 |
|
|
422 |
|
// clang-format on |
423 |
4 |
case LAST_KIND: return "LAST_KIND"; |
424 |
2 |
default: return "?"; |
425 |
|
} |
426 |
|
} |
427 |
|
|
428 |
6204 |
std::ostream& operator<<(std::ostream& out, cvc5::Kind k) |
429 |
|
{ |
430 |
6204 |
out << toString(k); |
431 |
6204 |
return out; |
432 |
|
} |
433 |
|
|
434 |
|
/** Returns true if the given kind is associative. This is used by ExprManager to |
435 |
|
* decide whether it's safe to modify big expressions by changing the grouping of |
436 |
|
* the arguments. */ |
437 |
|
/* TODO: This could be generated. */ |
438 |
4387897 |
bool isAssociative(::cvc5::Kind k) |
439 |
|
{ |
440 |
4387897 |
switch(k) { |
441 |
2098044 |
case kind::AND: |
442 |
|
case kind::OR: |
443 |
|
case kind::MULT: |
444 |
|
case kind::PLUS: |
445 |
2098044 |
return true; |
446 |
|
|
447 |
2289853 |
default: |
448 |
2289853 |
return false; |
449 |
|
} |
450 |
|
} |
451 |
|
|
452 |
4606 |
std::string kindToString(::cvc5::Kind k) { return toString(k); } |
453 |
|
|
454 |
|
} // namespace kind |
455 |
|
|
456 |
|
const char* toString(TypeConstant tc) |
457 |
|
{ |
458 |
|
switch (tc) |
459 |
|
{ |
460 |
|
// clang-format off |
461 |
|
case BUILTIN_OPERATOR_TYPE: return "the type for built-in operators"; |
462 |
|
case SEXPR_TYPE: return "the type of a symbolic expression"; |
463 |
|
case BOOLEAN_TYPE: return "Boolean type"; |
464 |
|
case REAL_TYPE: return "real type"; |
465 |
|
case INTEGER_TYPE: return "integer type"; |
466 |
|
case ROUNDINGMODE_TYPE: return "floating-point rounding mode"; |
467 |
|
case STRING_TYPE: return "String type"; |
468 |
|
case REGEXP_TYPE: return "RegExp type"; |
469 |
|
case BOUND_VAR_LIST_TYPE: return "the type of bound variable lists"; |
470 |
|
case INST_PATTERN_TYPE: return "instantiation pattern type"; |
471 |
|
case INST_PATTERN_LIST_TYPE: return "the type of instantiation pattern lists"; |
472 |
|
|
473 |
|
// clang-format on |
474 |
|
default: return "UNKNOWN_TYPE_CONSTANT"; |
475 |
|
} |
476 |
|
} |
477 |
|
std::ostream& operator<<(std::ostream& out, TypeConstant typeConstant) |
478 |
|
{ |
479 |
|
return out << toString(typeConstant); |
480 |
|
} |
481 |
|
|
482 |
|
namespace theory { |
483 |
|
|
484 |
319745546 |
TheoryId kindToTheoryId(::cvc5::Kind k) |
485 |
|
{ |
486 |
319745546 |
switch (k) |
487 |
|
{ |
488 |
|
case kind::UNDEFINED_KIND: |
489 |
|
case kind::NULL_EXPR: |
490 |
|
break; |
491 |
|
// clang-format off |
492 |
|
case kind::SORT_TAG: return THEORY_BUILTIN; |
493 |
2520739 |
case kind::SORT_TYPE: return THEORY_BUILTIN; |
494 |
51940 |
case kind::UNINTERPRETED_CONSTANT: return THEORY_BUILTIN; |
495 |
|
case kind::ABSTRACT_VALUE: return THEORY_BUILTIN; |
496 |
|
case kind::BUILTIN: return THEORY_BUILTIN; |
497 |
1411849 |
case kind::EQUAL: return THEORY_BUILTIN; |
498 |
13232 |
case kind::DISTINCT: return THEORY_BUILTIN; |
499 |
5915884 |
case kind::VARIABLE: return THEORY_BUILTIN; |
500 |
11066054 |
case kind::BOUND_VARIABLE: return THEORY_BUILTIN; |
501 |
2271904 |
case kind::SKOLEM: return THEORY_BUILTIN; |
502 |
|
case kind::SEXPR: return THEORY_BUILTIN; |
503 |
16436 |
case kind::LAMBDA: return THEORY_BUILTIN; |
504 |
12306 |
case kind::WITNESS: return THEORY_BUILTIN; |
505 |
|
case kind::TYPE_CONSTANT: return THEORY_BUILTIN; |
506 |
59943 |
case kind::FUNCTION_TYPE: return THEORY_BUILTIN; |
507 |
8032579 |
case kind::CONST_BOOLEAN: return THEORY_BOOL; |
508 |
24785696 |
case kind::NOT: return THEORY_BOOL; |
509 |
11364587 |
case kind::AND: return THEORY_BOOL; |
510 |
1409214 |
case kind::IMPLIES: return THEORY_BOOL; |
511 |
15842055 |
case kind::OR: return THEORY_BOOL; |
512 |
2980884 |
case kind::XOR: return THEORY_BOOL; |
513 |
7157740 |
case kind::ITE: return THEORY_BOOL; |
514 |
33291467 |
case kind::APPLY_UF: return THEORY_UF; |
515 |
213078 |
case kind::BOOLEAN_TERM_VARIABLE: return THEORY_UF; |
516 |
83030 |
case kind::CARDINALITY_CONSTRAINT: return THEORY_UF; |
517 |
50717 |
case kind::COMBINED_CARDINALITY_CONSTRAINT: return THEORY_UF; |
518 |
|
case kind::PARTIAL_APPLY_UF: return THEORY_UF; |
519 |
|
case kind::CARDINALITY_VALUE: return THEORY_UF; |
520 |
67462 |
case kind::HO_APPLY: return THEORY_UF; |
521 |
42625651 |
case kind::PLUS: return THEORY_ARITH; |
522 |
5824351 |
case kind::MULT: return THEORY_ARITH; |
523 |
6710976 |
case kind::NONLINEAR_MULT: return THEORY_ARITH; |
524 |
829301 |
case kind::MINUS: return THEORY_ARITH; |
525 |
55721 |
case kind::UMINUS: return THEORY_ARITH; |
526 |
8540 |
case kind::DIVISION: return THEORY_ARITH; |
527 |
1334 |
case kind::DIVISION_TOTAL: return THEORY_ARITH; |
528 |
4117 |
case kind::INTS_DIVISION: return THEORY_ARITH; |
529 |
12234 |
case kind::INTS_DIVISION_TOTAL: return THEORY_ARITH; |
530 |
2209 |
case kind::INTS_MODULUS: return THEORY_ARITH; |
531 |
23569 |
case kind::INTS_MODULUS_TOTAL: return THEORY_ARITH; |
532 |
283 |
case kind::ABS: return THEORY_ARITH; |
533 |
|
case kind::DIVISIBLE: return THEORY_ARITH; |
534 |
487 |
case kind::POW: return THEORY_ARITH; |
535 |
3838 |
case kind::POW2: return THEORY_ARITH; |
536 |
21473 |
case kind::EXPONENTIAL: return THEORY_ARITH; |
537 |
113307 |
case kind::SINE: return THEORY_ARITH; |
538 |
378 |
case kind::COSINE: return THEORY_ARITH; |
539 |
48 |
case kind::TANGENT: return THEORY_ARITH; |
540 |
12 |
case kind::COSECANT: return THEORY_ARITH; |
541 |
12 |
case kind::SECANT: return THEORY_ARITH; |
542 |
24 |
case kind::COTANGENT: return THEORY_ARITH; |
543 |
36 |
case kind::ARCSINE: return THEORY_ARITH; |
544 |
36 |
case kind::ARCCOSINE: return THEORY_ARITH; |
545 |
103 |
case kind::ARCTANGENT: return THEORY_ARITH; |
546 |
|
case kind::ARCCOSECANT: return THEORY_ARITH; |
547 |
|
case kind::ARCSECANT: return THEORY_ARITH; |
548 |
|
case kind::ARCCOTANGENT: return THEORY_ARITH; |
549 |
521 |
case kind::SQRT: return THEORY_ARITH; |
550 |
|
case kind::DIVISIBLE_OP: return THEORY_ARITH; |
551 |
13646624 |
case kind::CONST_RATIONAL: return THEORY_ARITH; |
552 |
458717 |
case kind::LT: return THEORY_ARITH; |
553 |
801949 |
case kind::LEQ: return THEORY_ARITH; |
554 |
184013 |
case kind::GT: return THEORY_ARITH; |
555 |
17552221 |
case kind::GEQ: return THEORY_ARITH; |
556 |
|
case kind::INDEXED_ROOT_PREDICATE_OP: return THEORY_ARITH; |
557 |
|
case kind::INDEXED_ROOT_PREDICATE: return THEORY_ARITH; |
558 |
526 |
case kind::IS_INTEGER: return THEORY_ARITH; |
559 |
5925 |
case kind::TO_INTEGER: return THEORY_ARITH; |
560 |
90 |
case kind::TO_REAL: return THEORY_ARITH; |
561 |
17728 |
case kind::CAST_TO_REAL: return THEORY_ARITH; |
562 |
40346 |
case kind::PI: return THEORY_ARITH; |
563 |
|
case kind::IAND_OP: return THEORY_ARITH; |
564 |
19402 |
case kind::IAND: return THEORY_ARITH; |
565 |
8077025 |
case kind::BITVECTOR_TYPE: return THEORY_BV; |
566 |
4469468 |
case kind::CONST_BITVECTOR: return THEORY_BV; |
567 |
|
case kind::BITVECTOR_BB_TERM: return THEORY_BV; |
568 |
1081791 |
case kind::BITVECTOR_CONCAT: return THEORY_BV; |
569 |
568251 |
case kind::BITVECTOR_AND: return THEORY_BV; |
570 |
746539 |
case kind::BITVECTOR_COMP: return THEORY_BV; |
571 |
740967 |
case kind::BITVECTOR_OR: return THEORY_BV; |
572 |
38521 |
case kind::BITVECTOR_XOR: return THEORY_BV; |
573 |
496652 |
case kind::BITVECTOR_NOT: return THEORY_BV; |
574 |
1510 |
case kind::BITVECTOR_NAND: return THEORY_BV; |
575 |
1964 |
case kind::BITVECTOR_NOR: return THEORY_BV; |
576 |
2084 |
case kind::BITVECTOR_XNOR: return THEORY_BV; |
577 |
888470 |
case kind::BITVECTOR_MULT: return THEORY_BV; |
578 |
244789 |
case kind::BITVECTOR_NEG: return THEORY_BV; |
579 |
630542 |
case kind::BITVECTOR_ADD: return THEORY_BV; |
580 |
7158 |
case kind::BITVECTOR_SUB: return THEORY_BV; |
581 |
81398 |
case kind::BITVECTOR_UDIV: return THEORY_BV; |
582 |
89012 |
case kind::BITVECTOR_UREM: return THEORY_BV; |
583 |
369 |
case kind::BITVECTOR_SDIV: return THEORY_BV; |
584 |
308 |
case kind::BITVECTOR_SMOD: return THEORY_BV; |
585 |
187 |
case kind::BITVECTOR_SREM: return THEORY_BV; |
586 |
48346 |
case kind::BITVECTOR_ASHR: return THEORY_BV; |
587 |
219767 |
case kind::BITVECTOR_LSHR: return THEORY_BV; |
588 |
209377 |
case kind::BITVECTOR_SHL: return THEORY_BV; |
589 |
7450 |
case kind::BITVECTOR_ULE: return THEORY_BV; |
590 |
842165 |
case kind::BITVECTOR_ULT: return THEORY_BV; |
591 |
3970 |
case kind::BITVECTOR_UGE: return THEORY_BV; |
592 |
4457 |
case kind::BITVECTOR_UGT: return THEORY_BV; |
593 |
7794 |
case kind::BITVECTOR_SLE: return THEORY_BV; |
594 |
922313 |
case kind::BITVECTOR_SLT: return THEORY_BV; |
595 |
4154 |
case kind::BITVECTOR_SGE: return THEORY_BV; |
596 |
4665 |
case kind::BITVECTOR_SGT: return THEORY_BV; |
597 |
28245 |
case kind::BITVECTOR_ULTBV: return THEORY_BV; |
598 |
38330 |
case kind::BITVECTOR_SLTBV: return THEORY_BV; |
599 |
|
case kind::BITVECTOR_REDAND: return THEORY_BV; |
600 |
|
case kind::BITVECTOR_REDOR: return THEORY_BV; |
601 |
163052 |
case kind::BITVECTOR_ITE: return THEORY_BV; |
602 |
11392 |
case kind::BITVECTOR_TO_NAT: return THEORY_BV; |
603 |
|
case kind::BITVECTOR_ACKERMANNIZE_UDIV: return THEORY_BV; |
604 |
|
case kind::BITVECTOR_ACKERMANNIZE_UREM: return THEORY_BV; |
605 |
4572 |
case kind::BITVECTOR_EAGER_ATOM: return THEORY_BV; |
606 |
|
case kind::BITVECTOR_BITOF_OP: return THEORY_BV; |
607 |
4744339 |
case kind::BITVECTOR_BITOF: return THEORY_BV; |
608 |
|
case kind::BITVECTOR_EXTRACT_OP: return THEORY_BV; |
609 |
578201 |
case kind::BITVECTOR_EXTRACT: return THEORY_BV; |
610 |
|
case kind::BITVECTOR_REPEAT_OP: return THEORY_BV; |
611 |
1807 |
case kind::BITVECTOR_REPEAT: return THEORY_BV; |
612 |
|
case kind::BITVECTOR_ROTATE_LEFT_OP: return THEORY_BV; |
613 |
1504 |
case kind::BITVECTOR_ROTATE_LEFT: return THEORY_BV; |
614 |
|
case kind::BITVECTOR_ROTATE_RIGHT_OP: return THEORY_BV; |
615 |
2014 |
case kind::BITVECTOR_ROTATE_RIGHT: return THEORY_BV; |
616 |
|
case kind::BITVECTOR_SIGN_EXTEND_OP: return THEORY_BV; |
617 |
230489 |
case kind::BITVECTOR_SIGN_EXTEND: return THEORY_BV; |
618 |
|
case kind::BITVECTOR_ZERO_EXTEND_OP: return THEORY_BV; |
619 |
17083 |
case kind::BITVECTOR_ZERO_EXTEND: return THEORY_BV; |
620 |
|
case kind::INT_TO_BITVECTOR_OP: return THEORY_BV; |
621 |
2047 |
case kind::INT_TO_BITVECTOR: return THEORY_BV; |
622 |
19087 |
case kind::CONST_FLOATINGPOINT: return THEORY_FP; |
623 |
5282 |
case kind::CONST_ROUNDINGMODE: return THEORY_FP; |
624 |
47485 |
case kind::FLOATINGPOINT_TYPE: return THEORY_FP; |
625 |
408 |
case kind::FLOATINGPOINT_FP: return THEORY_FP; |
626 |
21 |
case kind::FLOATINGPOINT_EQ: return THEORY_FP; |
627 |
1548 |
case kind::FLOATINGPOINT_ABS: return THEORY_FP; |
628 |
2183 |
case kind::FLOATINGPOINT_NEG: return THEORY_FP; |
629 |
5444 |
case kind::FLOATINGPOINT_ADD: return THEORY_FP; |
630 |
41 |
case kind::FLOATINGPOINT_SUB: return THEORY_FP; |
631 |
1395 |
case kind::FLOATINGPOINT_MULT: return THEORY_FP; |
632 |
1400 |
case kind::FLOATINGPOINT_DIV: return THEORY_FP; |
633 |
|
case kind::FLOATINGPOINT_FMA: return THEORY_FP; |
634 |
184 |
case kind::FLOATINGPOINT_SQRT: return THEORY_FP; |
635 |
1266 |
case kind::FLOATINGPOINT_REM: return THEORY_FP; |
636 |
1502 |
case kind::FLOATINGPOINT_RTI: return THEORY_FP; |
637 |
|
case kind::FLOATINGPOINT_MIN: return THEORY_FP; |
638 |
13 |
case kind::FLOATINGPOINT_MAX: return THEORY_FP; |
639 |
|
case kind::FLOATINGPOINT_MIN_TOTAL: return THEORY_FP; |
640 |
1003 |
case kind::FLOATINGPOINT_MAX_TOTAL: return THEORY_FP; |
641 |
2673 |
case kind::FLOATINGPOINT_LEQ: return THEORY_FP; |
642 |
501 |
case kind::FLOATINGPOINT_LT: return THEORY_FP; |
643 |
29 |
case kind::FLOATINGPOINT_GEQ: return THEORY_FP; |
644 |
4 |
case kind::FLOATINGPOINT_GT: return THEORY_FP; |
645 |
140 |
case kind::FLOATINGPOINT_ISN: return THEORY_FP; |
646 |
226 |
case kind::FLOATINGPOINT_ISSN: return THEORY_FP; |
647 |
1047 |
case kind::FLOATINGPOINT_ISZ: return THEORY_FP; |
648 |
1549 |
case kind::FLOATINGPOINT_ISINF: return THEORY_FP; |
649 |
1042 |
case kind::FLOATINGPOINT_ISNAN: return THEORY_FP; |
650 |
1445 |
case kind::FLOATINGPOINT_ISNEG: return THEORY_FP; |
651 |
264 |
case kind::FLOATINGPOINT_ISPOS: return THEORY_FP; |
652 |
|
case kind::FLOATINGPOINT_TO_FP_IEEE_BITVECTOR_OP: return THEORY_FP; |
653 |
2201 |
case kind::FLOATINGPOINT_TO_FP_IEEE_BITVECTOR: return THEORY_FP; |
654 |
|
case kind::FLOATINGPOINT_TO_FP_FLOATINGPOINT_OP: return THEORY_FP; |
655 |
177 |
case kind::FLOATINGPOINT_TO_FP_FLOATINGPOINT: return THEORY_FP; |
656 |
|
case kind::FLOATINGPOINT_TO_FP_REAL_OP: return THEORY_FP; |
657 |
46 |
case kind::FLOATINGPOINT_TO_FP_REAL: return THEORY_FP; |
658 |
|
case kind::FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR_OP: return THEORY_FP; |
659 |
16 |
case kind::FLOATINGPOINT_TO_FP_SIGNED_BITVECTOR: return THEORY_FP; |
660 |
|
case kind::FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR_OP: return THEORY_FP; |
661 |
566 |
case kind::FLOATINGPOINT_TO_FP_UNSIGNED_BITVECTOR: return THEORY_FP; |
662 |
|
case kind::FLOATINGPOINT_TO_FP_GENERIC_OP: return THEORY_FP; |
663 |
310 |
case kind::FLOATINGPOINT_TO_FP_GENERIC: return THEORY_FP; |
664 |
|
case kind::FLOATINGPOINT_TO_UBV_OP: return THEORY_FP; |
665 |
|
case kind::FLOATINGPOINT_TO_UBV: return THEORY_FP; |
666 |
|
case kind::FLOATINGPOINT_TO_UBV_TOTAL_OP: return THEORY_FP; |
667 |
|
case kind::FLOATINGPOINT_TO_UBV_TOTAL: return THEORY_FP; |
668 |
|
case kind::FLOATINGPOINT_TO_SBV_OP: return THEORY_FP; |
669 |
44 |
case kind::FLOATINGPOINT_TO_SBV: return THEORY_FP; |
670 |
|
case kind::FLOATINGPOINT_TO_SBV_TOTAL_OP: return THEORY_FP; |
671 |
1300 |
case kind::FLOATINGPOINT_TO_SBV_TOTAL: return THEORY_FP; |
672 |
721 |
case kind::FLOATINGPOINT_TO_REAL: return THEORY_FP; |
673 |
66 |
case kind::FLOATINGPOINT_TO_REAL_TOTAL: return THEORY_FP; |
674 |
9550 |
case kind::FLOATINGPOINT_COMPONENT_NAN: return THEORY_FP; |
675 |
10062 |
case kind::FLOATINGPOINT_COMPONENT_INF: return THEORY_FP; |
676 |
9615 |
case kind::FLOATINGPOINT_COMPONENT_ZERO: return THEORY_FP; |
677 |
9412 |
case kind::FLOATINGPOINT_COMPONENT_SIGN: return THEORY_FP; |
678 |
15879 |
case kind::FLOATINGPOINT_COMPONENT_EXPONENT: return THEORY_FP; |
679 |
20571 |
case kind::FLOATINGPOINT_COMPONENT_SIGNIFICAND: return THEORY_FP; |
680 |
702 |
case kind::ROUNDINGMODE_BITBLAST: return THEORY_FP; |
681 |
324954 |
case kind::ARRAY_TYPE: return THEORY_ARRAYS; |
682 |
1124115 |
case kind::SELECT: return THEORY_ARRAYS; |
683 |
512490 |
case kind::STORE: return THEORY_ARRAYS; |
684 |
511 |
case kind::EQ_RANGE: return THEORY_ARRAYS; |
685 |
12566 |
case kind::STORE_ALL: return THEORY_ARRAYS; |
686 |
|
case kind::ARR_TABLE_FUN: return THEORY_ARRAYS; |
687 |
|
case kind::ARRAY_LAMBDA: return THEORY_ARRAYS; |
688 |
|
case kind::PARTIAL_SELECT_0: return THEORY_ARRAYS; |
689 |
|
case kind::PARTIAL_SELECT_1: return THEORY_ARRAYS; |
690 |
|
case kind::CONSTRUCTOR_TYPE: return THEORY_DATATYPES; |
691 |
|
case kind::SELECTOR_TYPE: return THEORY_DATATYPES; |
692 |
|
case kind::TESTER_TYPE: return THEORY_DATATYPES; |
693 |
|
case kind::UPDATER_TYPE: return THEORY_DATATYPES; |
694 |
2362513 |
case kind::APPLY_CONSTRUCTOR: return THEORY_DATATYPES; |
695 |
185853 |
case kind::APPLY_SELECTOR: return THEORY_DATATYPES; |
696 |
2849209 |
case kind::APPLY_SELECTOR_TOTAL: return THEORY_DATATYPES; |
697 |
2434832 |
case kind::APPLY_TESTER: return THEORY_DATATYPES; |
698 |
265 |
case kind::APPLY_UPDATER: return THEORY_DATATYPES; |
699 |
3048918 |
case kind::DATATYPE_TYPE: return THEORY_DATATYPES; |
700 |
12108 |
case kind::PARAMETRIC_DATATYPE: return THEORY_DATATYPES; |
701 |
4 |
case kind::APPLY_TYPE_ASCRIPTION: return THEORY_DATATYPES; |
702 |
|
case kind::ASCRIPTION_TYPE: return THEORY_DATATYPES; |
703 |
3418689 |
case kind::DT_SIZE: return THEORY_DATATYPES; |
704 |
|
case kind::DT_HEIGHT_BOUND: return THEORY_DATATYPES; |
705 |
|
case kind::DT_SIZE_BOUND: return THEORY_DATATYPES; |
706 |
60185 |
case kind::DT_SYGUS_BOUND: return THEORY_DATATYPES; |
707 |
4116085 |
case kind::DT_SYGUS_EVAL: return THEORY_DATATYPES; |
708 |
36 |
case kind::MATCH: return THEORY_DATATYPES; |
709 |
80 |
case kind::MATCH_CASE: return THEORY_DATATYPES; |
710 |
32 |
case kind::MATCH_BIND_CASE: return THEORY_DATATYPES; |
711 |
|
case kind::TUPLE_PROJECT_OP: return THEORY_DATATYPES; |
712 |
18 |
case kind::TUPLE_PROJECT: return THEORY_DATATYPES; |
713 |
6211 |
case kind::SEP_NIL: return THEORY_SEP; |
714 |
1379 |
case kind::SEP_EMP: return THEORY_SEP; |
715 |
9731 |
case kind::SEP_PTO: return THEORY_SEP; |
716 |
5412 |
case kind::SEP_STAR: return THEORY_SEP; |
717 |
754 |
case kind::SEP_WAND: return THEORY_SEP; |
718 |
20423 |
case kind::SEP_LABEL: return THEORY_SEP; |
719 |
19143 |
case kind::EMPTYSET: return THEORY_SETS; |
720 |
621524 |
case kind::SET_TYPE: return THEORY_SETS; |
721 |
87689 |
case kind::UNION: return THEORY_SETS; |
722 |
75256 |
case kind::INTERSECTION: return THEORY_SETS; |
723 |
50579 |
case kind::SETMINUS: return THEORY_SETS; |
724 |
2750 |
case kind::SUBSET: return THEORY_SETS; |
725 |
772881 |
case kind::MEMBER: return THEORY_SETS; |
726 |
|
case kind::SINGLETON_OP: return THEORY_SETS; |
727 |
116736 |
case kind::SINGLETON: return THEORY_SETS; |
728 |
44 |
case kind::INSERT: return THEORY_SETS; |
729 |
1605356 |
case kind::CARD: return THEORY_SETS; |
730 |
73 |
case kind::COMPLEMENT: return THEORY_SETS; |
731 |
5425 |
case kind::UNIVERSE_SET: return THEORY_SETS; |
732 |
877 |
case kind::COMPREHENSION: return THEORY_SETS; |
733 |
1102 |
case kind::CHOOSE: return THEORY_SETS; |
734 |
448 |
case kind::IS_SINGLETON: return THEORY_SETS; |
735 |
53239 |
case kind::JOIN: return THEORY_SETS; |
736 |
3844 |
case kind::PRODUCT: return THEORY_SETS; |
737 |
29379 |
case kind::TRANSPOSE: return THEORY_SETS; |
738 |
5002 |
case kind::TCLOSURE: return THEORY_SETS; |
739 |
1435 |
case kind::JOIN_IMAGE: return THEORY_SETS; |
740 |
309 |
case kind::IDEN: return THEORY_SETS; |
741 |
577 |
case kind::EMPTYBAG: return THEORY_BAGS; |
742 |
21544 |
case kind::BAG_TYPE: return THEORY_BAGS; |
743 |
715 |
case kind::UNION_MAX: return THEORY_BAGS; |
744 |
2864 |
case kind::UNION_DISJOINT: return THEORY_BAGS; |
745 |
1591 |
case kind::INTERSECTION_MIN: return THEORY_BAGS; |
746 |
484 |
case kind::DIFFERENCE_SUBTRACT: return THEORY_BAGS; |
747 |
|
case kind::DIFFERENCE_REMOVE: return THEORY_BAGS; |
748 |
28 |
case kind::SUBBAG: return THEORY_BAGS; |
749 |
577854 |
case kind::BAG_COUNT: return THEORY_BAGS; |
750 |
657 |
case kind::DUPLICATE_REMOVAL: return THEORY_BAGS; |
751 |
|
case kind::MK_BAG_OP: return THEORY_BAGS; |
752 |
5433 |
case kind::MK_BAG: return THEORY_BAGS; |
753 |
|
case kind::BAG_IS_SINGLETON: return THEORY_BAGS; |
754 |
|
case kind::BAG_CARD: return THEORY_BAGS; |
755 |
|
case kind::BAG_FROM_SET: return THEORY_BAGS; |
756 |
|
case kind::BAG_TO_SET: return THEORY_BAGS; |
757 |
|
case kind::BAG_CHOOSE: return THEORY_BAGS; |
758 |
6 |
case kind::BAG_MAP: return THEORY_BAGS; |
759 |
1142722 |
case kind::STRING_CONCAT: return THEORY_STRINGS; |
760 |
379529 |
case kind::STRING_IN_REGEXP: return THEORY_STRINGS; |
761 |
41519748 |
case kind::STRING_LENGTH: return THEORY_STRINGS; |
762 |
805819 |
case kind::STRING_SUBSTR: return THEORY_STRINGS; |
763 |
2135 |
case kind::STRING_UPDATE: return THEORY_STRINGS; |
764 |
597 |
case kind::STRING_CHARAT: return THEORY_STRINGS; |
765 |
186784 |
case kind::STRING_CONTAINS: return THEORY_STRINGS; |
766 |
65 |
case kind::STRING_LT: return THEORY_STRINGS; |
767 |
6865 |
case kind::STRING_LEQ: return THEORY_STRINGS; |
768 |
973094 |
case kind::STRING_INDEXOF: return THEORY_STRINGS; |
769 |
217536 |
case kind::STRING_INDEXOF_RE: return THEORY_STRINGS; |
770 |
186202 |
case kind::STRING_REPLACE: return THEORY_STRINGS; |
771 |
4824 |
case kind::STRING_REPLACE_ALL: return THEORY_STRINGS; |
772 |
14747 |
case kind::STRING_REPLACE_RE: return THEORY_STRINGS; |
773 |
8895 |
case kind::STRING_REPLACE_RE_ALL: return THEORY_STRINGS; |
774 |
590 |
case kind::STRING_PREFIX: return THEORY_STRINGS; |
775 |
119 |
case kind::STRING_SUFFIX: return THEORY_STRINGS; |
776 |
26 |
case kind::STRING_IS_DIGIT: return THEORY_STRINGS; |
777 |
12029 |
case kind::STRING_ITOS: return THEORY_STRINGS; |
778 |
140758 |
case kind::STRING_STOI: return THEORY_STRINGS; |
779 |
2643548 |
case kind::STRING_TO_CODE: return THEORY_STRINGS; |
780 |
718 |
case kind::STRING_FROM_CODE: return THEORY_STRINGS; |
781 |
1090 |
case kind::STRING_TOLOWER: return THEORY_STRINGS; |
782 |
924 |
case kind::STRING_TOUPPER: return THEORY_STRINGS; |
783 |
1982 |
case kind::STRING_REV: return THEORY_STRINGS; |
784 |
861277 |
case kind::CONST_STRING: return THEORY_STRINGS; |
785 |
59510 |
case kind::SEQUENCE_TYPE: return THEORY_STRINGS; |
786 |
11312 |
case kind::CONST_SEQUENCE: return THEORY_STRINGS; |
787 |
6939 |
case kind::SEQ_UNIT: return THEORY_STRINGS; |
788 |
40590 |
case kind::SEQ_NTH: return THEORY_STRINGS; |
789 |
22 |
case kind::SEQ_NTH_TOTAL: return THEORY_STRINGS; |
790 |
66682 |
case kind::STRING_TO_REGEXP: return THEORY_STRINGS; |
791 |
59239 |
case kind::REGEXP_CONCAT: return THEORY_STRINGS; |
792 |
19597 |
case kind::REGEXP_UNION: return THEORY_STRINGS; |
793 |
7409 |
case kind::REGEXP_INTER: return THEORY_STRINGS; |
794 |
380 |
case kind::REGEXP_DIFF: return THEORY_STRINGS; |
795 |
41482 |
case kind::REGEXP_STAR: return THEORY_STRINGS; |
796 |
156 |
case kind::REGEXP_PLUS: return THEORY_STRINGS; |
797 |
105 |
case kind::REGEXP_OPT: return THEORY_STRINGS; |
798 |
12707 |
case kind::REGEXP_RANGE: return THEORY_STRINGS; |
799 |
7135 |
case kind::REGEXP_COMPLEMENT: return THEORY_STRINGS; |
800 |
568 |
case kind::REGEXP_EMPTY: return THEORY_STRINGS; |
801 |
7834 |
case kind::REGEXP_SIGMA: return THEORY_STRINGS; |
802 |
|
case kind::REGEXP_REPEAT_OP: return THEORY_STRINGS; |
803 |
14 |
case kind::REGEXP_REPEAT: return THEORY_STRINGS; |
804 |
|
case kind::REGEXP_LOOP_OP: return THEORY_STRINGS; |
805 |
100 |
case kind::REGEXP_LOOP: return THEORY_STRINGS; |
806 |
804 |
case kind::REGEXP_RV: return THEORY_STRINGS; |
807 |
1204923 |
case kind::FORALL: return THEORY_QUANTIFIERS; |
808 |
8623 |
case kind::EXISTS: return THEORY_QUANTIFIERS; |
809 |
119399 |
case kind::INST_CONSTANT: return THEORY_QUANTIFIERS; |
810 |
290235 |
case kind::BOUND_VAR_LIST: return THEORY_QUANTIFIERS; |
811 |
18969 |
case kind::INST_PATTERN: return THEORY_QUANTIFIERS; |
812 |
32 |
case kind::INST_NO_PATTERN: return THEORY_QUANTIFIERS; |
813 |
6716 |
case kind::INST_ATTRIBUTE: return THEORY_QUANTIFIERS; |
814 |
52 |
case kind::INST_POOL: return THEORY_QUANTIFIERS; |
815 |
|
case kind::INST_ADD_TO_POOL: return THEORY_QUANTIFIERS; |
816 |
64 |
case kind::SKOLEM_ADD_TO_POOL: return THEORY_QUANTIFIERS; |
817 |
41252 |
case kind::INST_PATTERN_LIST: return THEORY_QUANTIFIERS; |
818 |
|
|
819 |
|
// clang-format on |
820 |
|
case kind::LAST_KIND: break; |
821 |
|
} |
822 |
|
throw IllegalArgumentException("", "k", __PRETTY_FUNCTION__, "bad kind"); |
823 |
|
} |
824 |
|
|
825 |
40824060 |
TheoryId typeConstantToTheoryId(::cvc5::TypeConstant typeConstant) |
826 |
|
{ |
827 |
40824060 |
switch (typeConstant) |
828 |
|
{ |
829 |
|
// clang-format off |
830 |
|
case BUILTIN_OPERATOR_TYPE: return THEORY_BUILTIN; |
831 |
|
case SEXPR_TYPE: return THEORY_BUILTIN; |
832 |
5031130 |
case BOOLEAN_TYPE: return THEORY_BOOL; |
833 |
3044282 |
case REAL_TYPE: return THEORY_ARITH; |
834 |
28940701 |
case INTEGER_TYPE: return THEORY_ARITH; |
835 |
2376 |
case ROUNDINGMODE_TYPE: return THEORY_FP; |
836 |
3805548 |
case STRING_TYPE: return THEORY_STRINGS; |
837 |
23 |
case REGEXP_TYPE: return THEORY_STRINGS; |
838 |
|
case BOUND_VAR_LIST_TYPE: return THEORY_QUANTIFIERS; |
839 |
|
case INST_PATTERN_TYPE: return THEORY_QUANTIFIERS; |
840 |
|
case INST_PATTERN_LIST_TYPE: return THEORY_QUANTIFIERS; |
841 |
|
|
842 |
|
// clang-format on |
843 |
|
case LAST_TYPE: break; |
844 |
|
} |
845 |
|
throw IllegalArgumentException( |
846 |
|
"", "k", __PRETTY_FUNCTION__, "bad type constant"); |
847 |
|
} |
848 |
|
|
849 |
|
} // namespace theory |
850 |
|
} // namespace cvc5 |