294 case SORT_TAG: out <<
"SORT_TAG";
break;
295 case SORT_TYPE: out <<
"SORT_TYPE";
break;
298 case BUILTIN: out <<
"BUILTIN";
break;
299 case FUNCTION: out <<
"FUNCTION";
break;
300 case APPLY: out <<
"APPLY";
break;
301 case EQUAL: out <<
"EQUAL";
break;
302 case DISTINCT: out <<
"DISTINCT";
break;
303 case VARIABLE: out <<
"VARIABLE";
break;
305 case SKOLEM: out <<
"SKOLEM";
break;
306 case SEXPR: out <<
"SEXPR";
break;
307 case LAMBDA: out <<
"LAMBDA";
break;
308 case CHAIN: out <<
"CHAIN";
break;
309 case CHAIN_OP: out <<
"CHAIN_OP";
break;
317 case NOT: out <<
"NOT";
break;
318 case AND: out <<
"AND";
break;
319 case IFF: out <<
"IFF";
break;
320 case IMPLIES: out <<
"IMPLIES";
break;
321 case OR: out <<
"OR";
break;
322 case XOR: out <<
"XOR";
break;
323 case ITE: out <<
"ITE";
break;
326 case APPLY_UF: out <<
"APPLY_UF";
break;
331 case PLUS: out <<
"PLUS";
break;
332 case MULT: out <<
"MULT";
break;
333 case MINUS: out <<
"MINUS";
break;
334 case UMINUS: out <<
"UMINUS";
break;
335 case DIVISION: out <<
"DIVISION";
break;
341 case ABS: out <<
"ABS";
break;
342 case DIVISIBLE: out <<
"DIVISIBLE";
break;
343 case POW: out <<
"POW";
break;
347 case LT: out <<
"LT";
break;
348 case LEQ: out <<
"LEQ";
break;
349 case GT: out <<
"GT";
break;
350 case GEQ: out <<
"GEQ";
break;
353 case TO_REAL: out <<
"TO_REAL";
break;
412 case SELECT: out <<
"SELECT";
break;
413 case STORE: out <<
"STORE";
break;
414 case STORE_ALL: out <<
"STORE_ALL";
break;
431 case TUPLE: out <<
"TUPLE";
break;
437 case RECORD: out <<
"RECORD";
break;
444 case EMPTYSET: out <<
"EMPTYSET";
break;
445 case SET_TYPE: out <<
"SET_TYPE";
break;
446 case UNION: out <<
"UNION";
break;
448 case SETMINUS: out <<
"SETMINUS";
break;
449 case SUBSET: out <<
"SUBSET";
break;
450 case MEMBER: out <<
"MEMBER";
break;
451 case SINGLETON: out <<
"SINGLETON";
break;
452 case INSERT: out <<
"INSERT";
break;
487 case FORALL: out <<
"FORALL";
break;
488 case EXISTS: out <<
"EXISTS";
break;
500 case LAST_KIND: out <<
"LAST_KIND";
break;
501 default: out <<
"UNKNOWNKIND!" << int(k);
break;
507#line 64 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
527 std::stringstream ss;
555#line 102 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
569 switch(typeConstant) {
572 case REAL_TYPE: out <<
"real type";
break;
579 case RRHB_TYPE: out <<
"head and body of the rule type (for rewrite-rules theory)";
break;
581#line 118 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
583 out <<
"UNKNOWN_TYPE_CONSTANT";
603#line 130 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
611 return id =
static_cast<TheoryId>(((int)
id) + 1);
618 case THEORY_UF: out <<
"THEORY_UF";
break;
620 case THEORY_BV: out <<
"THEORY_BV";
break;
627#line 144 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
629 out <<
"UNKNOWN_THEORY";
826#line 158 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
834 switch(typeConstant) {
846#line 168 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/kind_template.h"
Macros that should be defined everywhere during the building of the libraries and driver binary,...
CVC4's exception base class and some associated utilities.
std::string kindToString(::CVC4::Kind k)
std::ostream & operator<<(std::ostream &, CVC4::Kind)
bool isAssociative(::CVC4::Kind k)
Returns true if the given kind is associative.
@ INTS_DIVISION_TOTAL
integer division with interpreted division by 0 (internal symbol) (39)
@ EXISTS
existentially quantified formula; first parameter is an BOUND_VAR_LIST, second is quantifier body,...
@ BITVECTOR_ROTATE_RIGHT
bit-vector rotate right; first parameter is a BITVECTOR_ROTATE_RIGHT_OP, second is a bit-vector term ...
@ TESTER_TYPE
tester (116)
@ BITVECTOR_SHL
bit-vector shift left (the two bit-vector parameters must have same width) (77)
@ BITVECTOR_SDIV
2's complement signed division (72)
@ STRING_STOI
string to integer (total function) (158)
@ BITVECTOR_UREM
unsigned remainder from truncating division of two bit-vectors (undefined if divisor is 0) (71)
@ INT_TO_BITVECTOR_OP
operator for the integer conversion to bit-vector; payload is an instance of the CVC4::IntToBitVector...
@ CONSTRUCTOR_TYPE
constructor (114)
@ PARAMETRIC_DATATYPE
parametric datatype (122)
@ CHAIN
chained operator (N-ary), turned into a conjuction of binary applications of the operator on adjoinin...
@ INSERT
set obtained by inserting elements (first N-1 parameters) into a set (the last parameter) (145)
@ STRING_PREFIX
string prefixof (155)
@ APPLY
application of a defined function (7)
@ STRING_STRCTN
string contains (152)
@ BITVECTOR_ASHR
bit-vector arithmetic shift right (the two bit-vector parameters must have same width) (79)
@ BITVECTOR_PLUS
addition of two or more bit-vectors (67)
@ APPLY_TESTER
tester application; first parameter is a tester, second is a datatype term (120)
@ STRING_STOU16
string to uint16 (160)
@ STRING_SUFFIX
string suffixof (156)
@ STRING_TO_REGEXP
convert string to regexp (165)
@ INST_PATTERN_LIST
a list of instantiation patterns (181)
@ SEXPR_TYPE
the type of a symbolic expression (19)
@ BITVECTOR_UDIV
unsigned division of two bit-vectors, truncating towards 0 (undefined if divisor is 0) (70)
@ REWRITE_RULE
general rewrite rule (for rewrite-rules theory) (182)
@ RECORD_UPDATE
record update; first parameter is a RECORD_UPDATE_OP (which references a field), second is a record t...
@ BITVECTOR_XNOR
bitwise xnor of two bit-vectors (64)
@ DISTINCT
disequality (N-ary, sorts must match) (9)
@ BITVECTOR_ZERO_EXTEND
bit-vector zero-extend; first parameter is a BITVECTOR_ZERO_EXTEND_OP, second is a bit-vector term (1...
@ DATATYPE_TYPE
a datatype type (121)
@ STRING_ITOS
integer to string (157)
@ MULT
arithmetic multiplication (N-ary) (33)
@ APPLY_TYPE_ASCRIPTION
type ascription, for datatype constructor applications; first parameter is an ASCRIPTION_TYPE,...
@ STRING_STRIDOF
string indexof (153)
@ IFF
logical equivalence (exactly two parameters) (24)
@ REGEXP_OPT
regexp ? (171)
@ REGEXP_RANGE
regexp range (172)
@ FUNCTION_TYPE
a function type (18)
@ SUBSET
subset predicate; first parameter a subset of second (142)
@ STORE_ALL
array store-all; payload is an instance of the CVC4::ArrayStoreAll class (this is not supported by ar...
@ IMPLIES
logical implication (exactly two parameters) (25)
@ BITVECTOR_CONCAT
concatenation of two or more bit-vectors (57)
@ TUPLE_UPDATE
tuple update; first parameter is a TUPLE_UPDATE_OP (which references an index), second is the tuple,...
@ CONST_BOOLEAN
truth and falsity; payload is a (C++) bool (21)
@ GT
greater than, x > y (50)
@ INT_TO_BITVECTOR
integer conversion to bit-vector; first parameter is an INT_TO_BITVECTOR_OP, second is an integer ter...
@ LAMBDA
a lambda expression; first parameter is a BOUND_VAR_LIST, second is lambda body (14)
@ ARR_TABLE_FUN
array table function (internal-only symbol) (112)
@ SET_TYPE
set type, takes as parameter the type of the elements (138)
@ STORE
array store; first parameter is an array term, second is the store index, third is the term to store ...
@ UNDEFINED_KIND
undefined
@ STRING_CHARAT
string charat (user symbol) (151)
@ VARIABLE
a variable (not permitted in bindings) (10)
@ BITVECTOR_BITOF_OP
operator for the bit-vector boolean bit extract; payload is an instance of the CVC4::BitVectorBitOf c...
@ CONST_RATIONAL
a multiple-precision rational constant; payload is an instance of the CVC4::Rational class (47)
@ RR_REWRITE
actual rewrite rule (for rewrite-rules theory) (183)
@ SELECT
array select; first parameter is an array term, second is the selection index (109)
@ STRING_STRREPL
string replace (154)
@ TUPLE_TYPE
tuple type (125)
@ CONST_REGEXP
a regular expression (164)
@ ITE
if-then-else, used for both Boolean and term ITE constructs; first parameter is (Boolean-sorted) cond...
@ UMINUS
arithmetic unary negation (35)
@ TYPE_CONSTANT
a representation for basic types (17)
@ BITVECTOR_ACKERMANIZE_UDIV
term to be treated as a variable; used for eager bit-blasting Ackermann expansion of bvudiv (internal...
@ BITVECTOR_EAGER_ATOM
formula to be treated as a bv atom via eager bit-blasting (internal-only symbol) (88)
@ REGEXP_CONCAT
regexp concat (166)
@ BOUND_VARIABLE
a bound variable (permitted in bindings and the associated lambda and quantifier bodies only) (11)
@ RR_DEDUCTION
actual deduction rule (for rewrite-rules theory) (185)
@ REGEXP_LOOP
regexp loop (173)
@ MINUS
arithmetic binary subtraction operator (34)
@ TO_INTEGER
convert term to integer by the floor function (parameter is a real-sorted term) (53)
@ STRING_SUBSTR
string substr (user symbol) (149)
@ CONST_BITVECTOR
a fixed-width bit-vector constant; payload is an instance of the CVC4::BitVector class (56)
@ PLUS
arithmetic addition (N-ary) (32)
@ BITVECTOR_TYPE
bit-vector type (55)
@ BITVECTOR_SLT
bit-vector signed less than (the two bit-vector parameters must have same width) (84)
@ BITVECTOR_ZERO_EXTEND_OP
operator for the bit-vector zero-extend; payload is an instance of the CVC4::BitVectorZeroExtend clas...
@ CHAIN_OP
the chained operator; payload is an instance of the CVC4::Chain class (16)
@ LEQ
less than or equal, x <= y (49)
@ RECORD_SELECT_OP
operator for a record select; payload is an instance CVC4::RecordSelect class (133)
@ BITVECTOR_SGE
bit-vector signed greater than or equal (the two bit-vector parameters must have same width) (87)
@ BITVECTOR_NAND
bitwise nand of two bit-vectors (62)
@ DIVISIBLE_OP
operator for the divisibility-by-k predicate; payload is an instance of the CVC4::Divisible class (45...
@ BITVECTOR_OR
bitwise or of two or more bit-vectors (59)
@ BITVECTOR_SGT
bit-vector signed greater than (the two bit-vector parameters must have same width) (86)
@ BITVECTOR_UGE
bit-vector unsigned greater than or equal (the two bit-vector parameters must have same width) (83)
@ SKOLEM
a Skolem variable (internal only) (12)
@ AND
logical and (N-ary) (23)
@ REGEXP_STAR
regexp * (169)
@ DIVISIBLE
divisibility-by-k predicate; first parameter is a DIVISIBLE_OP, second is integer term (43)
@ XOR
exclusive or (exactly two parameters) (27)
@ BITVECTOR_LSHR
bit-vector logical shift right (the two bit-vector parameters must have same width) (78)
@ ARRAY_LAMBDA
array lambda (internal-only symbol) (113)
@ BITVECTOR_SIGN_EXTEND
bit-vector sign-extend; first parameter is a BITVECTOR_SIGN_EXTEND_OP, second is a bit-vector term (1...
@ LT
less than, x < y (48)
@ STRING_U16TOS
uint16 to string (159)
@ DIVISION
real division, division by 0 undefined (user symbol) (36)
@ BITVECTOR_BITOF
bit-vector boolean bit extract; first parameter is a BITVECTOR_BITOF_OP, second is a bit-vector term ...
@ BITVECTOR_SLE
bit-vector signed less than or equal (the two bit-vector parameters must have same width) (85)
@ BITVECTOR_UGT
bit-vector unsigned greater than (the two bit-vector parameters must have same width) (82)
@ COMBINED_CARDINALITY_CONSTRAINT
combined cardinality constraint; parameter is a positive integer constant k that bounds the sum of th...
@ STRING_CONCAT
string concat (N-ary) (146)
@ SUBRANGE_TYPE
the type of an integer subrange (46)
@ SETMINUS
set subtraction (141)
@ GEQ
greater than or equal, x >= y (51)
@ TUPLE_SELECT
tuple select; first parameter is a TUPLE_SELECT_OP, second is the tuple (128)
@ ASCRIPTION_TYPE
a type parameter for type ascription; payload is an instance of the CVC4::AscriptionType class (124)
@ REGEXP_UNION
regexp union (167)
@ STRING_IN_REGEXP
membership (147)
@ APPLY_UF
application of an uninterpreted function; first parameter is the function, remaining ones are paramet...
@ REGEXP_PLUS
regexp + (170)
@ RECORD_SELECT
record select; first parameter is a RECORD_SELECT_OP, second is a record term to select from (134)
@ INST_PATTERN
instantiation pattern (180)
@ UNINTERPRETED_CONSTANT
the kind of expressions representing uninterpreted constants; payload is an instance of the CVC4::Uni...
@ BITVECTOR_REPEAT
bit-vector repeat; first parameter is a BITVECTOR_REPEAT_OP, second is a bit-vector term (100)
@ REGEXP_INTER
regexp intersection (168)
@ CONST_STRING
a string of characters (163)
@ BITVECTOR_MULT
multiplication of two or more bit-vectors (66)
@ BITVECTOR_SMOD
2's complement signed remainder (sign follows divisor) (74)
@ STRING_LENGTH
string length (148)
@ BOUND_VAR_LIST
a list of bound variables (used to bind variables under a quantifier) (179)
@ APPLY_SELECTOR_TOTAL
selector application; parameter is a datatype term (defined rigidly if mis-applied) (119)
@ BITVECTOR_UREM_TOTAL
unsigned remainder from truncating division of two bit-vectors (defined to be equal to the dividend,...
@ RECORD_UPDATE_OP
operator for a record update; payload is an instance CVC4::RecordSelect class (135)
@ BITVECTOR_ROTATE_LEFT_OP
operator for the bit-vector rotate left; payload is an instance of the CVC4::BitVectorRotateLeft clas...
@ BITVECTOR_AND
bitwise and of two or more bit-vectors (58)
@ BITVECTOR_SREM
2's complement signed remainder (sign follows dividend) (73)
@ RECORD
a record; first parameter is a RECORD_TYPE; remaining parameters (if any) are the individual values f...
@ BITVECTOR_REPEAT_OP
operator for the bit-vector repeat; payload is an instance of the CVC4::BitVectorRepeat class (93)
@ SEXPR
a symbolic expression (any arity) (13)
@ MEMBER
set membership predicate; first parameter a member of second (143)
@ INST_CONSTANT
instantiation constant (178)
@ INTS_MODULUS
integer modulus, division by 0 undefined (user symbol) (40)
@ TUPLE_UPDATE_OP
operator for a tuple update; payload is an instance of the CVC4::TupleUpdate class (129)
@ BITVECTOR_ULE
bit-vector unsigned less than or equal (the two bit-vector parameters must have same width) (81)
@ EQUAL
equality (two parameters only, sorts must match) (8)
@ INTS_MODULUS_TOTAL
integer modulus with interpreted division by 0 (internal symbol) (41)
@ BITVECTOR_SIGN_EXTEND_OP
operator for the bit-vector sign-extend; payload is an instance of the CVC4::BitVectorSignExtend clas...
@ BITVECTOR_ROTATE_RIGHT_OP
operator for the bit-vector rotate right; payload is an instance of the CVC4::BitVectorRotateRight cl...
@ BITVECTOR_EXTRACT
bit-vector extract; first parameter is a BITVECTOR_EXTRACT_OP, second is a bit-vector term (99)
@ RR_REDUCTION
actual reduction rule (for rewrite-rules theory) (184)
@ REGEXP_EMPTY
regexp empty (174)
@ INTS_DIVISION
integer division, division by 0 undefined (user symbol) (38)
@ BITVECTOR_ACKERMANIZE_UREM
term to be treated as a variable; used for eager bit-blasting Ackermann expansion of bvurem (internal...
@ BUILTIN
the kind of expressions representing built-in operators (5)
@ SELECTOR_TYPE
selector (115)
@ BITVECTOR_NOT
bitwise not of a bit-vector (61)
@ DIVISION_TOTAL
real division with interpreted division by 0 (internal symbol) (37)
@ ARRAY_TYPE
array type (108)
@ APPLY_CONSTRUCTOR
constructor application; first parameter is the constructor, remaining parameters (if any) are parame...
@ BITVECTOR_XOR
bitwise xor of two or more bit-vectors (60)
@ BITVECTOR_SUB
subtraction of two bit-vectors (68)
@ SORT_TYPE
specifies types of user-declared 'uninterpreted' sorts (2)
@ LAST_KIND
marks the upper-bound of this enumeration
@ POW
arithmetic power (44)
@ BITVECTOR_NEG
unary negation of a bit-vector (69)
@ INTERSECTION
set intersection (140)
@ TUPLE_SELECT_OP
operator for a tuple select; payload is an instance of the CVC4::TupleSelect class (127)
@ ABSTRACT_VALUE
the kind of expressions representing abstract values (other than uninterpreted sort constants); paylo...
@ SINGLETON
the set of the single element given as a parameter (144)
@ BITVECTOR_TO_NAT
bit-vector conversion to (nonnegative) integer; parameter is a bit-vector (107)
@ IS_INTEGER
term-is-integer predicate (parameter is a real-sorted term) (52)
@ CARDINALITY_CONSTRAINT
cardinality constraint on sort S: first parameter is (any) term of sort S, second is a positive integ...
@ FUNCTION
a defined function (6)
@ REGEXP_SIGMA
regexp all characters (175)
@ BITVECTOR_EXTRACT_OP
operator for the bit-vector extract; payload is an instance of the CVC4::BitVectorExtract class (92)
@ STRING_U32TOS
uint32 to string (161)
@ TUPLE
a tuple (N-ary) (126)
@ STRING_SUBSTR_TOTAL
string substr (internal symbol) (150)
@ OR
logical or (N-ary) (26)
@ FORALL
universally quantified formula; first parameter is an BOUND_VAR_LIST, second is quantifier body,...
@ RECORD_TYPE
record type (131)
@ TO_REAL
cast term to real (parameter is an integer-sorted term; this is a no-op in CVC4, as integer is a subt...
@ SUBTYPE_TYPE
predicate subtype; payload is an instance of the CVC4::Predicate class (20)
@ BITVECTOR_NOR
bitwise nor of two bit-vectors (63)
@ BITVECTOR_UDIV_TOTAL
unsigned division of two bit-vectors, truncating towards 0 (defined to be the all-ones bit pattern,...
@ BITVECTOR_ROTATE_LEFT
bit-vector rotate left; first parameter is a BITVECTOR_ROTATE_LEFT_OP, second is a bit-vector term (1...
@ EMPTYSET
the empty set constant; payload is an instance of the CVC4::EmptySet class (137)
@ APPLY_SELECTOR
selector application; parameter is a datatype term (undefined if mis-applied) (118)
@ BITVECTOR_COMP
equality comparison of two bit-vectors (returns one bit) (65)
@ STRING_STOU32
string to uint32 (162)
@ BITVECTOR_ULT
bit-vector unsigned less than (the two bit-vector parameters must have same width) (80)
TheoryId typeConstantToTheoryId(::CVC4::TypeConstant typeConstant)
std::ostream & operator<<(std::ostream &out, TheoryId theoryId)
TheoryId & operator++(TheoryId &id)
const TheoryId THEORY_FIRST
TheoryId kindToTheoryId(::CVC4::Kind k)
const TheoryId THEORY_SAT_SOLVER
::CVC4::kind::Kind_t Kind
std::ostream & operator<<(std::ostream &out, const TypeCheckingException &e)
TypeConstant
The enumeration for the built-in atomic types.
@ INST_PATTERN_TYPE
instantiation pattern type
@ INST_PATTERN_LIST_TYPE
the type of instantiation pattern lists
@ BUILTIN_OPERATOR_TYPE
the type for built-in operators
@ INTEGER_TYPE
integer type
@ BOOLEAN_TYPE
Boolean type.
@ STRING_TYPE
String type.
@ REGEXP_TYPE
RegExp type.
@ BOUND_VAR_LIST_TYPE
the type of bound variable lists
@ RRHB_TYPE
head and body of the rule type (for rewrite-rules theory)
We hash the constants with their values.
size_t operator()(TypeConstant tc) const
size_t operator()(::CVC4::Kind k) const