# kinds -*- sh -*- # # For documentation on this file format, please refer to # src/theory/builtin/kinds. # theory THEORY_ARITH ::cvc5::theory::arith::TheoryArith "theory/arith/theory_arith.h" typechecker "theory/arith/theory_arith_type_rules.h" properties stable-infinite properties check propagate ppStaticLearn presolve notifyRestart rewriter ::cvc5::theory::arith::ArithRewriter "theory/arith/arith_rewriter.h" operator PLUS 2: "arithmetic addition (N-ary)" operator MULT 2: "arithmetic multiplication (N-ary)" operator NONLINEAR_MULT 2: "synonym for MULT" operator MINUS 2 "arithmetic binary subtraction operator" operator UMINUS 1 "arithmetic unary negation" operator DIVISION 2 "real division, division by 0 undefined (user symbol)" operator DIVISION_TOTAL 2 "real division with interpreted division by 0 (internal symbol)" operator INTS_DIVISION 2 "integer division, division by 0 undefined (user symbol)" operator INTS_DIVISION_TOTAL 2 "integer division with interpreted division by 0 (internal symbol)" operator INTS_MODULUS 2 "integer modulus, division by 0 undefined (user symbol)" operator INTS_MODULUS_TOTAL 2 "integer modulus with interpreted division by 0 (internal symbol)" operator ABS 1 "absolute value" parameterized DIVISIBLE DIVISIBLE_OP 1 "divisibility-by-k predicate; first parameter is a DIVISIBLE_OP, second is integer term" operator POW 2 "arithmetic power" operator POW2 1 "arithmetic power of 2" operator EXPONENTIAL 1 "exponential" operator SINE 1 "sine" operator COSINE 1 "consine" operator TANGENT 1 "tangent" operator COSECANT 1 "cosecant" operator SECANT 1 "secant" operator COTANGENT 1 "cotangent" operator ARCSINE 1 "arc sine" operator ARCCOSINE 1 "arc consine" operator ARCTANGENT 1 "arc tangent" operator ARCCOSECANT 1 "arc cosecant" operator ARCSECANT 1 "arc secant" operator ARCCOTANGENT 1 "arc cotangent" operator SQRT 1 "square root" constant DIVISIBLE_OP \ struct \ Divisible \ ::cvc5::DivisibleHashFunction \ "util/divisible.h" \ "operator for the divisibility-by-k predicate; payload is an instance of the cvc5::Divisible class" sort REAL_TYPE \ Cardinality::REALS \ well-founded \ "NodeManager::currentNM()->mkConstReal(Rational(0))" \ "expr/node_manager.h" \ "real type" sort INTEGER_TYPE \ Cardinality::INTEGERS \ well-founded \ "NodeManager::currentNM()->mkConstInt(Rational(0))" \ "expr/node_manager.h" \ "integer type" constant CONST_RATIONAL \ class \ Rational+ \ ::cvc5::RationalHashFunction \ "util/rational.h" \ "a multiple-precision rational constant; payload is an instance of the cvc5::Rational class" constant CONST_INTEGER \ class \ Rational+ \ ::cvc5::RationalHashFunction \ "util/rational.h" \ "a multiple-precision integer constant; payload is an instance of the cvc5::Rational class" constant REAL_ALGEBRAIC_NUMBER_OP \ class \ RealAlgebraicNumber+ \ ::cvc5::RealAlgebraicNumberHashFunction \ "util/real_algebraic_number.h" \ "a real algebraic number constant; payload is an instance of the cvc5::RealAlgebraicNumber class" parameterized REAL_ALGEBRAIC_NUMBER REAL_ALGEBRAIC_NUMBER_OP 0 "a real algebraic number constant; payload is an instance of the cvc5::RealAlgebraicNumber class" enumerator REAL_TYPE \ "::cvc5::theory::arith::RationalEnumerator" \ "theory/arith/type_enumerator.h" enumerator INTEGER_TYPE \ "::cvc5::theory::arith::IntegerEnumerator" \ "theory/arith/type_enumerator.h" operator LT 2 "less than, x < y" operator LEQ 2 "less than or equal, x <= y" operator GT 2 "greater than, x > y" operator GEQ 2 "greater than or equal, x >= y" # represents an indexed root predicate. See util/indexed_root_predicate.h for more documentation. constant INDEXED_ROOT_PREDICATE_OP \ struct \ IndexedRootPredicate \ ::cvc5::IndexedRootPredicateHashFunction \ "util/indexed_root_predicate.h" \ "operator for the indexed root predicate; payload is an instance of the cvc5::IndexedRootPredicate class" parameterized INDEXED_ROOT_PREDICATE INDEXED_ROOT_PREDICATE_OP 2 "indexed root predicate; first parameter is a INDEXED_ROOT_PREDICATE_OP, second is a real variable compared to zero, third is a polynomial" operator IS_INTEGER 1 "term-is-integer predicate (parameter is a real-sorted term)" operator TO_INTEGER 1 "convert term to integer by the floor function (parameter is a real-sorted term)" operator TO_REAL 1 "cast term to real (parameter is an integer-sorted term; this is a no-op in cvc5, as integer is a subtype of real)" # CAST_TO_REAL is added to distinguish between integers casted to reals internally, and # integers casted to reals or using the API \ # Solver::mkReal(int val) would return an internal node (CAST_TO_REAL val), but in the api it appears as term (val) \ # Solver::mkTerm(TO_REAL, Solver::mkInteger(int val)) would return both term and node (TO_REAL val) \ # This way, we avoid having 2 nested TO_REAL nodess as a result of Solver::mkTerm(TO_REAL, Solver::mkReal(int val)) operator CAST_TO_REAL 1 "cast term to real same as TO_REAL, but it is used internally, whereas TO_REAL is accessible in the API" typerule PLUS ::cvc5::theory::arith::ArithOperatorTypeRule typerule MULT ::cvc5::theory::arith::ArithOperatorTypeRule typerule NONLINEAR_MULT ::cvc5::theory::arith::ArithOperatorTypeRule typerule MINUS ::cvc5::theory::arith::ArithOperatorTypeRule typerule UMINUS ::cvc5::theory::arith::ArithOperatorTypeRule typerule DIVISION ::cvc5::theory::arith::ArithOperatorTypeRule typerule POW ::cvc5::theory::arith::ArithOperatorTypeRule typerule CONST_RATIONAL ::cvc5::theory::arith::ArithConstantTypeRule typerule CONST_INTEGER ::cvc5::theory::arith::ArithConstantTypeRule typerule REAL_ALGEBRAIC_NUMBER_OP ::cvc5::theory::arith::ArithRealAlgebraicNumberOpTypeRule typerule REAL_ALGEBRAIC_NUMBER ::cvc5::theory::arith::ArithRealAlgebraicNumberTypeRule typerule LT ::cvc5::theory::arith::ArithRelationTypeRule typerule LEQ ::cvc5::theory::arith::ArithRelationTypeRule typerule GT ::cvc5::theory::arith::ArithRelationTypeRule typerule GEQ ::cvc5::theory::arith::ArithRelationTypeRule typerule INDEXED_ROOT_PREDICATE_OP "SimpleTypeRule" typerule INDEXED_ROOT_PREDICATE ::cvc5::theory::arith::IndexedRootPredicateTypeRule typerule TO_REAL ::cvc5::theory::arith::ArithOperatorTypeRule typerule CAST_TO_REAL ::cvc5::theory::arith::ArithOperatorTypeRule typerule TO_INTEGER ::cvc5::theory::arith::ArithOperatorTypeRule typerule IS_INTEGER "SimpleTypeRule" typerule ABS "SimpleTypeRule" typerule INTS_DIVISION "SimpleTypeRule" typerule INTS_MODULUS "SimpleTypeRule" typerule DIVISIBLE "SimpleTypeRule" typerule DIVISIBLE_OP "SimpleTypeRule" typerule DIVISION_TOTAL ::cvc5::theory::arith::ArithOperatorTypeRule typerule INTS_DIVISION_TOTAL "SimpleTypeRule" typerule INTS_MODULUS_TOTAL "SimpleTypeRule" typerule EXPONENTIAL "SimpleTypeRule" typerule SINE "SimpleTypeRule" typerule COSINE "SimpleTypeRule" typerule TANGENT "SimpleTypeRule" typerule COSECANT "SimpleTypeRule" typerule SECANT "SimpleTypeRule" typerule COTANGENT "SimpleTypeRule" typerule ARCSINE "SimpleTypeRule" typerule ARCCOSINE "SimpleTypeRule" typerule ARCTANGENT "SimpleTypeRule" typerule ARCCOSECANT "SimpleTypeRule" typerule ARCSECANT "SimpleTypeRule" typerule ARCCOTANGENT "SimpleTypeRule" typerule POW2 "SimpleTypeRule" typerule SQRT "SimpleTypeRule" nullaryoperator PI "pi" typerule PI ::cvc5::theory::arith::RealNullaryOperatorTypeRule # Integer AND, which is parameterized by a (positive) bitwidth k. # ((_ iand k) i1 i2) is equivalent to: # (bv2int (bvand ((_ int2bv k) i1) ((_ int2bv k) i2))) # for all integers i1, i2. constant IAND_OP \ struct \ IntAnd \ "::cvc5::UnsignedHashFunction< ::cvc5::IntAnd >" \ "util/iand.h" \ "operator for integer AND; payload is an instance of the cvc5::IntAnd class" parameterized IAND IAND_OP 2 "integer version of AND operator; first parameter is an IAND_OP, second and third are integer terms" typerule IAND_OP ::cvc5::theory::arith::IAndOpTypeRule typerule IAND ::cvc5::theory::arith::IAndTypeRule endtheory