// Generated from cvc5 1.3.4 include/cvc5/cvc5_kind.h.
// Copyright (c) 2009-2026 by the authors listed in licenses/cvc5/AUTHORS
// and their institutional affiliations. All rights reserved.
// SPDX-License-Identifier: BSD-3-Clause
// See licenses/cvc5/COPYING and THIRD_PARTY_NOTICES.md.
// Generated by scripts/generate-kinds.js; do not edit by hand.

///|
/// cvc5 1.3.4 term kinds. See the upstream API for arities and sorts.
/// Generated by scripts/generate-kinds.js; checked against the C headers.
pub(all) enum Kind {
  InternalKind = 0
  UndefinedKind = 1
  NullTerm = 2
  UninterpretedSortValue = 3
  Equal = 4
  Distinct = 5
  Constant = 6
  Variable = 7
  Skolem = 8
  Sexpr = 9
  Lambda = 10
  Witness = 11
  ConstBoolean = 12
  Not = 13
  And = 14
  Implies = 15
  Or = 16
  Xor = 17
  Ite = 18
  ApplyUf = 19
  CardinalityConstraint = 20
  HoApply = 21
  Add = 22
  Mult = 23
  Iand = 24
  Piand = 25
  Pow2 = 26
  Log2 = 27
  Sub = 28
  Neg = 29
  Division = 30
  DivisionTotal = 31
  IntsDivision = 32
  IntsDivisionTotal = 33
  IntsModulus = 34
  IntsModulusTotal = 35
  Abs = 36
  Pow = 37
  Exponential = 38
  Sine = 39
  Cosine = 40
  Tangent = 41
  Cosecant = 42
  Secant = 43
  Cotangent = 44
  Arcsine = 45
  Arccosine = 46
  Arctangent = 47
  Arccosecant = 48
  Arcsecant = 49
  Arccotangent = 50
  Sqrt = 51
  Divisible = 52
  ConstRational = 53
  ConstInteger = 54
  Lt = 55
  Leq = 56
  Gt = 57
  Geq = 58
  IsInteger = 59
  ToInteger = 60
  ToReal = 61
  Pi = 62
  ConstBitVector = 63
  BitVectorConcat = 64
  BitVectorAnd = 65
  BitVectorOr = 66
  BitVectorXor = 67
  BitVectorNot = 68
  BitVectorNand = 69
  BitVectorNor = 70
  BitVectorXnor = 71
  BitVectorComp = 72
  BitVectorMult = 73
  BitVectorAdd = 74
  BitVectorSub = 75
  BitVectorNeg = 76
  BitVectorUdiv = 77
  BitVectorUrem = 78
  BitVectorSdiv = 79
  BitVectorSrem = 80
  BitVectorSmod = 81
  BitVectorShl = 82
  BitVectorLshr = 83
  BitVectorAshr = 84
  BitVectorUlt = 85
  BitVectorUle = 86
  BitVectorUgt = 87
  BitVectorUge = 88
  BitVectorSlt = 89
  BitVectorSle = 90
  BitVectorSgt = 91
  BitVectorSge = 92
  BitVectorUltbv = 93
  BitVectorSltbv = 94
  BitVectorIte = 95
  BitVectorRedor = 96
  BitVectorRedand = 97
  BitVectorNego = 98
  BitVectorUaddo = 99
  BitVectorSaddo = 100
  BitVectorUmulo = 101
  BitVectorSmulo = 102
  BitVectorUsubo = 103
  BitVectorSsubo = 104
  BitVectorSdivo = 105
  BitVectorExtract = 106
  BitVectorRepeat = 107
  BitVectorZeroExtend = 108
  BitVectorSignExtend = 109
  BitVectorRotateLeft = 110
  BitVectorRotateRight = 111
  IntToBitVector = 112
  BitVectorToNat = 113
  BitVectorUbvToInt = 114
  BitVectorSbvToInt = 115
  BitVectorFromBools = 116
  BitVectorBit = 117
  ConstFiniteField = 118
  FiniteFieldNeg = 119
  FiniteFieldAdd = 120
  FiniteFieldBitsum = 121
  FiniteFieldMult = 122
  ConstFloatingPoint = 123
  ConstRoundingmode = 124
  FloatingPointFp = 125
  FloatingPointEq = 126
  FloatingPointAbs = 127
  FloatingPointNeg = 128
  FloatingPointAdd = 129
  FloatingPointSub = 130
  FloatingPointMult = 131
  FloatingPointDiv = 132
  FloatingPointFma = 133
  FloatingPointSqrt = 134
  FloatingPointRem = 135
  FloatingPointRti = 136
  FloatingPointMin = 137
  FloatingPointMax = 138
  FloatingPointLeq = 139
  FloatingPointLt = 140
  FloatingPointGeq = 141
  FloatingPointGt = 142
  FloatingPointIsNormal = 143
  FloatingPointIsSubnormal = 144
  FloatingPointIsZero = 145
  FloatingPointIsInf = 146
  FloatingPointIsNan = 147
  FloatingPointIsNeg = 148
  FloatingPointIsPos = 149
  FloatingPointToFpFromIeeeBv = 150
  FloatingPointToFpFromFp = 151
  FloatingPointToFpFromReal = 152
  FloatingPointToFpFromSbv = 153
  FloatingPointToFpFromUbv = 154
  FloatingPointToUbv = 155
  FloatingPointToSbv = 156
  FloatingPointToReal = 157
  Select = 158
  Store = 159
  ConstArray = 160
  EqRange = 161
  ApplyConstructor = 162
  ApplySelector = 163
  ApplyTester = 164
  ApplyUpdater = 165
  Match = 166
  MatchCase = 167
  MatchBindCase = 168
  TupleProject = 169
  NullableLift = 170
  SepNil = 171
  SepEmp = 172
  SepPto = 173
  SepStar = 174
  SepWand = 175
  SetEmpty = 176
  SetUnion = 177
  SetInter = 178
  SetMinus = 179
  SetSubset = 180
  SetMember = 181
  SetSingleton = 182
  SetInsert = 183
  SetCard = 184
  SetComplement = 185
  SetUniverse = 186
  SetComprehension = 187
  SetChoose = 188
  SetIsEmpty = 189
  SetIsSingleton = 190
  SetMap = 191
  SetFilter = 192
  SetAll = 193
  SetSome = 194
  SetFold = 195
  RelationJoin = 196
  RelationTableJoin = 197
  RelationProduct = 198
  RelationTranspose = 199
  RelationTclosure = 200
  RelationJoinImage = 201
  RelationIden = 202
  RelationGroup = 203
  RelationAggregate = 204
  RelationProject = 205
  BagEmpty = 206
  BagUnionMax = 207
  BagUnionDisjoint = 208
  BagInterMin = 209
  BagDifferenceSubtract = 210
  BagDifferenceRemove = 211
  BagSubbag = 212
  BagCount = 213
  BagMember = 214
  BagSetof = 215
  BagMake = 216
  BagCard = 217
  BagChoose = 218
  BagMap = 219
  BagFilter = 220
  BagAll = 221
  BagSome = 222
  BagFold = 223
  BagPartition = 224
  TableProduct = 225
  TableProject = 226
  TableAggregate = 227
  TableJoin = 228
  TableGroup = 229
  StringConcat = 230
  StringInRegexp = 231
  StringLength = 232
  StringSubstr = 233
  StringUpdate = 234
  StringCharat = 235
  StringContains = 236
  StringIndexof = 237
  StringIndexofRe = 238
  StringReplace = 239
  StringReplaceAll = 240
  StringReplaceRe = 241
  StringReplaceReAll = 242
  StringToLower = 243
  StringToUpper = 244
  StringRev = 245
  StringToCode = 246
  StringFromCode = 247
  StringLt = 248
  StringLeq = 249
  StringPrefix = 250
  StringSuffix = 251
  StringIsDigit = 252
  StringFromInt = 253
  StringToInt = 254
  ConstString = 255
  StringToRegexp = 256
  RegexpConcat = 257
  RegexpUnion = 258
  RegexpInter = 259
  RegexpDiff = 260
  RegexpStar = 261
  RegexpPlus = 262
  RegexpOpt = 263
  RegexpRange = 264
  RegexpRepeat = 265
  RegexpLoop = 266
  RegexpNone = 267
  RegexpAll = 268
  RegexpAllchar = 269
  RegexpComplement = 270
  SeqConcat = 271
  SeqLength = 272
  SeqExtract = 273
  SeqUpdate = 274
  SeqAt = 275
  SeqContains = 276
  SeqIndexof = 277
  SeqReplace = 278
  SeqReplaceAll = 279
  SeqRev = 280
  SeqPrefix = 281
  SeqSuffix = 282
  ConstSequence = 283
  SeqUnit = 284
  SeqNth = 285
  Forall = 286
  Exists = 287
  VariableList = 288
  InstPattern = 289
  InstNoPattern = 290
  InstPool = 291
  InstAddToPool = 292
  SkolemAddToPool = 293
  InstAttribute = 294
  InstPatternList = 295
} derive(Eq, Debug)

///|
pub extend Kind with Eq::{equal, not_equal}

///|
pub extend Kind with Debug::{to_repr}