Pre-Defined Operator Kinds
The list of operator kinds globally defined in murxla::Op.
Internal Kinds
- 
static const Kind UNDEFINED = "OP_UNDEFINED"
- The operator kind representing an undefined kind. 
- 
static const Kind INTERNAL = "OP_INTERNAL"
- The operator kind representing an internal kind. 
Leaf Kinds
Note
These kinds are only needed for :cpp:function:`murxla::Term::get_kind()`.
- 
static const Kind CONSTANT = "OP_CONSTANT"
- The operator kind representing a first order constant. - Created with Solver::mk_const(). 
- 
static const Kind CONST_ARRAY = "OP_CONST_ARRAY"
- The operator kind representing a const array. 
- 
static const Kind VALUE = "OP_VALUE"
- The operator kind representing a value. - Created with Solver::mk_value(). 
- 
static const Kind VARIABLE = "OP_VARIABLE"
- The operator kind representing a variable. - Created with Solver::mk_var(). 
- 
static const Kind FUN = "OP_FUN"
- The operator kind representing a function. - Created with Solver::mk_fun(). 
Special Cases
- 
static const Kind DISTINCT = "OP_DISTINCT"
- The operator kind representing the distinct operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_ANY, ...}
- indices: - {}
 - SMT-LIB: - (distinct <term_1> ... <term_n>) 
- 
static const Kind EQUAL = "OP_EQUAL"
- The operator kind representing the equality operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_ANY, ...}
- indices: - {}
 - SMT-LIB: - (= <term_1> ... <term_n>) 
- 
static const Kind ITE = "OP_ITE"
- The operator kind representing the if-then-else operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_BOOL, SORT_ANY, SORT_ANY}
- indices: - {}
 - SMT-LIB: - (ite <condition> <then> <else>) 
Arrays
- 
static const Kind ARRAY_SELECT = "OP_ARRAY_SELECT"
- The operator kind representing the select operator on arrays. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_ARRAY, SORT_ANY}
- indices: - {}
 - SMT-LIB: - (select <array> <index term>) 
- 
static const Kind ARRAY_STORE = "OP_ARRAY_STORE"
- The operator kind representing the store operator on arrays. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_ARRAY, SORT_ANY, SORT_ANY}- [0]: array term 
- [1]: index term 
- [2]: value term 
 
- indices: - {}
 - SMT-LIB: - (store <array> <index term> <value term>) 
Boolean
- 
static const Kind AND = "OP_AND"
- The operator kind representing the Boolean and operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BOOL, ...}
- indices: - {}
 - SMT-LIB: - (and <term_1> ... <term_n>) 
- 
static const Kind IFF = "OP_IFF"
- The operator kind representing the Boolean if-and-only-if operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BOOL, SORT_BOOL}
- indices: - {}
 - SMT-LIB: - (= <boolean term_1> ... <boolean term_n>) 
- 
static const Kind IMPLIES = "OP_IMPLIES"
- The operator kind representing the Boolean implies operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BOOL, ...}
- indices: - {}
 - SMT-LIB: - (=> <term_1> ... <term_n>) 
- 
static const Kind NOT = "OP_NOT"
- The operator kind representing the Boolean not operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BOOL}
- indices: - {}
 - SMT-LIB: - (not <term_1>) 
- 
static const Kind OR = "OP_OR"
- The operator kind representing the Boolean or operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BOOL, ...}
- indices: - {}
 - SMT-LIB: - (or <term_1> ... <term_n>) 
- 
static const Kind XOR = "OP_XOR"
- The operator kind representing the Boolean xor operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BOOL, SORT_BOOL}
- indices: - {}
 - SMT-LIB: - (xor <term_1> <term_2>) 
Bit-Vectors
- 
static const Kind BV_EXTRACT = "OP_BV_EXTRACT"
- The operator kind representing the bit-vector extract operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t, uint32_t}- [0]: upper index 
- [1]: lower index 
 
 - SMT-LIB: - ((_ extract <hi> <lo>) <term>) 
- 
static const Kind BV_REPEAT = "OP_BV_REPEAT"
- The operator kind representing the bit-vector repeat operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ repeat <n>) <term>) 
- 
static const Kind BV_ROTATE_LEFT = "OP_BV_ROTATE_LEFT"
- The operator kind representing the bit-vector rotate left operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ rotate_left <n>) <term>) 
- 
static const Kind BV_ROTATE_RIGHT = "OP_BV_ROTATE_RIGHT"
- The operator kind representing the bit-vector rotate right operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ rotate_right <n>) <term>) 
- 
static const Kind BV_SIGN_EXTEND = "OP_BV_SIGN_EXTEND"
- The operator kind representing the bit-vector signed extension operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ sign_extend <n>) <term>) 
- 
static const Kind BV_ZERO_EXTEND = "OP_BV_ZERO_EXTEND"
- The operator kind representing the bit-vector zero extension operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ zero_extend <n>) <term>) 
- 
static const Kind BV_ADD = "OP_BV_ADD"
- The operator kind representing the bit-vector addition operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (bvadd <term_1> ... <term_n>) 
- 
static const Kind BV_AND = "OP_BV_AND"
- The operator kind representing the bit-vector and operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (bvand <term_1> ... <term_n>) 
- 
static const Kind BV_ASHR = "OP_BV_ASHR"
- The operator kind representing the bit-vector arithmetic right shift operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}- [0]: the term to shift 
- [1]: the shift term 
 
- indices: - {}
 - SMT-LIB: - (bvashr <term> <shift>) 
- 
static const Kind BV_COMP = "OP_BV_COMP"
- The operator kind representing the bit-vector comparison operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvcomp <term_1> <term_2>) 
- 
static const Kind BV_CONCAT = "OP_BV_CONCAT"
- The operator kind representing the bit-vector concatenation operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (concat <term_1> <term_2>) 
- 
static const Kind BV_LSHR = "OP_BV_LSHR"
- The operator kind representing the bit-vector logical right shift operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}- [0]: the term to shift 
- [1]: the shift term 
 
- indices: - {}
 - SMT-LIB: - (bvlshr <term> <shift>) 
- 
static const Kind BV_MULT = "OP_BV_MULT"
- The operator kind representing the bit-vector multiplication operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (bvmul <term_1> ... <term_n>) 
- 
static const Kind BV_NAND = "OP_BV_NAND"
- The operator kind representing the bit-vector nand operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvnand <term_1> <term_2>) 
- 
static const Kind BV_NEG = "OP_BV_NEG"
- The operator kind representing the bit-vector negation (two’s complement) operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvneg <term>) 
- 
static const Kind BV_NOR = "OP_BV_NOR"
- The operator kind representing the bit-vector nor operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvnor <term_1> <term_2>) 
- 
static const Kind BV_NOT = "OP_BV_NOT"
- The operator kind representing the bit-vector not operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvnot <term_1> <term_2>) 
- 
static const Kind BV_OR = "OP_BV_OR"
- The operator kind representing the bit-vector or operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (bvor <term_1> ... <term_n>) 
- 
static const Kind BV_SDIV = "OP_BV_SDIV"
- The operator kind representing the bit-vector signed division operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsdiv <term_1> <term_2>) 
- 
static const Kind BV_SGE = "OP_BV_SGE"
- The operator kind representing the bit-vector signed greater or equal operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsge <term_1> <term_2>) 
- 
static const Kind BV_SGT = "OP_BV_SGT"
- The operator kind representing the bit-vector signed greater than operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsgt <term_1> <term_2>) 
- 
static const Kind BV_SHL = "OP_BV_SHL"
- The operator kind representing the bit-vector left shift operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}- [0]: the term to shift 
- [1]: the shift term 
 
- indices: - {}
 - SMT-LIB: - (bvshl <term> <shift>) 
- 
static const Kind BV_SLE = "OP_BV_SLE"
- The operator kind representing the bit-vector signed less or equal operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsle <term_1> <term_2>) 
- 
static const Kind BV_SLT = "OP_BV_SLT"
- The operator kind representing the bit-vector signed less than operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvslt <term_1> <term_2>) 
- 
static const Kind BV_SMOD = "OP_BV_SMOD"
- The operator kind representing the bit-vector signed remainder operator (sign follows divisor). - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsmod <term_1> <term_2>) 
- 
static const Kind BV_SREM = "OP_BV_SREM"
- The operator kind representing the bit-vector signed remainder operator (sign follows dividend). - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsrem <term_1> <term_2>) 
- 
static const Kind BV_SUB = "OP_BV_SUB"
- The operator kind representing the bit-vector subtraction operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvsub <term_1> <term_2>) 
- 
static const Kind BV_UDIV = "OP_BV_UDIV"
- The operator kind representing the bit-vector unsigned division operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvudiv <term_1> <term_2>) 
- 
static const Kind BV_UGE = "OP_BV_UGE"
- The operator kind representing the bit-vector unsigned greater or equal operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvuge <term_1> <term_2>) 
- 
static const Kind BV_UGT = "OP_BV_UGT"
- The operator kind representing the bit-vector unsigned greater than operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvugt <term_1> <term_2>) 
- 
static const Kind BV_ULE = "OP_BV_ULE"
- The operator kind representing the bit-vector unsigned less or equal operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvule <term_1> <term_2>) 
- 
static const Kind BV_ULT = "OP_BV_ULT"
- The operator kind representing the bit-vector unsigned less than operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvult <term_1> <term_2>) 
- 
static const Kind BV_UREM = "OP_BV_UREM"
- The operator kind representing the bit-vector unsigned remainder operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvurem <term_1> <term_2>) 
- 
static const Kind BV_XNOR = "OP_BV_XNOR"
- The operator kind representing the bit-vector xnor operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_BV, ...}
- indices: - {}
 - SMT-LIB: - (bvxnor <term_1> <term_2>) 
- 
static const Kind BV_XOR = "OP_BV_XOR"
- The operator kind representing the bit-vector xor operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BV, SORT_BV}
- indices: - {}
 - SMT-LIB: - (bvxor <term_1> <term_2>) 
Datatypes
- 
static const Kind DT_APPLY_CONS = "OP_DT_APPLY_CONS"
- The operator kind representing the datatypes apply constructor operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- sort: SORT_DT 
- str_args: - {<constructor name>}
- args: - {SORT_ANY, ...}- [0..n-1]: terms of selector codomain sort for each selector, in declaration order 
 
 - SMT-LIB: - (<cons> <args...>) 
- 
static const Kind DT_APPLY_SEL = "OP_DT_APPLY_SEL"
- The operator kind representing the datatypes apply selector operator. - Created with Solver::mk_term() with - arity: 1 
- str_args: - {<constructor name>, <selector name>}
- args: - {SORT_ANY}- [0]: term of selector codomain sort 
 
 - SMT-LIB: - (<sel> <term>) 
- 
static const Kind DT_APPLY_TESTER = "OP_DT_APPLY_TESTER"
- The operator kind representing the datatypes tester operator. - Created with Solver::mk_term() with - arity: 1 
- str_args: - {<constructor name>}
- args: - {SORT_DT}- [0]: term of selector codomain sort 
 
 - SMT-LIB: - ((_ is <cons>) <term>) 
- 
static const Kind DT_APPLY_UPDATER = "OP_DT_APPLY_UPDATER"
- The operator kind representing the datatypes updater operator. - Created with Solver::mk_term() with - arity: 2 
- str_args: - {<constructor name>, <selector name>}
- args: - {SORT_DT}- [0]: term of selector codomain sort 
 
 - SMT-LIB: - ((_ update <sel>) <term_1> <term_2>) 
- 
static const Kind DT_MATCH = "OP_DT_MATCH"
- The operator kind representing the datatypes match operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_ANY, ...}- [0..n-1]: match (binder) case terms 
 
 - SMT-LIB: - (match <term> <match_case_1> ... <match_case_n>) 
- 
static const Kind DT_MATCH_CASE = "OP_DT_MATCH_CASE"
- The operator kind representing the datatypes match case without binders. - Created with Solver::mk_term() with - arity: 1 
- sort: SORT_DT 
- str_args: - {<constructor name>}
- args: - {SORT_ANY}- [0]: match term 
 
 - SMT-LIB: - (<cons> <term>) - Note - This match case operator is used for constructors without selectors. 
- 
static const Kind DT_MATCH_BIND_CASE = "OP_DT_MATCH_BIND_CASE"
- The operator kind representing the datatypes match with binders. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- sort: SORT_DT 
- str_args: - {<constructor name>}(regular pattern) or- {}(variable pattern)
- args: - {SORT_ANY}- [0..n-2]: variables (one per selector for regular pattern) 
- [n-1]: match term 
 
 - SMT-LIB: - ((<cons> <binder_1> ... <binder_n>) (const <term_1> ... <term_n>)) (<binder> <term>) - Note - This match case operator is used for constructors with selectors. 
Finite Fields
- 
static const Kind FINITE_FIELD_ADD = "OP_FINITE_FIELD_ADD"
- The operator kind representing the finite-field addition operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FF, ...}
- indices: - {}
 - SMT-LIB: - (ff.add <term_1> ... <term_n>) 
- 
static const Kind FINITE_FIELD_MULT = "OP_FINITE_FIELD_MULT"
- The operator kind representing the finite-field multiplication operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FF, ...}
- indices: - {}
 - SMT-LIB: - (ff.mul <term_1> ... <term_n>) 
- 
static const Kind FINITE_FIELD_NEG = "OP_FINITE_FIELD_NEG"
- The operator kind representing the finite-field negation operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FF}
- indices: - {}
 - SMT-LIB: - (- <term>) 
Floating-Point Arithmetic
- 
static const Kind FP_TO_FP_FROM_BV = "OP_FP_TO_FP_FROM_BV"
- The operator kind representing the floating-point to floating-point conversion operator from a bit-vector in in IEEE 754-2008 interchange format. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BV}
- indices: - {uint32_t, uint32_t}- [0]: exponent size 
- [1]: signifcand size 
 
 - SMT-LIB: - ((_ to_fp eb sb) <term>) 
- 
static const Kind FP_TO_FP_FROM_SBV = "OP_FP_TO_FP_FROM_SBV"
- The operator kind representing the floating-point to floating-point conversion operator from a signed machine integer, represented as two’s complement bit-vector. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_BV}
- indices: - {uint32_t, uint32_t}- [0]: exponent size 
- [1]: signifcand size 
 
 - SMT-LIB: - ((_ to_fp eb sb) <term>) 
- 
static const Kind FP_TO_FP_FROM_FP = "OP_FP_TO_FP_FROM_FP"
- The operator kind representing the floating-point to floating-point conversion operator from a floating-point term. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_FP}
- indices: - {uint32_t, uint32_t}- [0]: exponent size 
- [1]: signifcand size 
 
 - SMT-LIB: - ((_ to_fp eb sb) <term>) 
- 
static const Kind FP_TO_FP_FROM_UBV = "OP_FP_TO_FP_FROM_UBV"
- The operator kind representing the floating-point to floating-point conversion operator from an unsigned machine integer, represented as a bit-vector. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_BV}
- indices: - {uint32_t, uint32_t}- [0]: exponent size 
- [1]: signifcand size 
 
 - SMT-LIB: - ((_ to_fp eb sb) <term>) 
- 
static const Kind FP_TO_FP_FROM_REAL = "OP_FP_TO_FP_FROM_REAL"
- The operator kind representing the floating-point to floating-point conversion operator from a real term. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_REAL}
- indices: - {uint32_t, uint32_t}- [0]: exponent size 
- [1]: signifcand size 
 
 - SMT-LIB: - ((_ to_fp eb sb) <term>) 
- 
static const Kind FP_TO_SBV = "OP_FP_TO_SBV"
- The operator kind representing the floating-point to signed bit-vector conversion operator from a floating-point term. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_FP}
- indices: - {uint32_t}- [0]: bit-vector size 
 
 - SMT-LIB: - ((_ fp.to_sbv m) <term>) 
- 
static const Kind FP_TO_UBV = "OP_FP_TO_UBV"
- The operator kind representing the floating-point to unsigned bit-vector conversion operator from a floating-point term. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_FP}
- indices: - {uint32_t}- [0]: bit-vector size 
 
 - SMT-LIB: - ((_ fp.to_ubv m) <term>) 
- 
static const Kind FP_ABS = "OP_FP_ABS"
- The operator kind representing the floating-point absolute value operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.abs <term>) 
- 
static const Kind FP_ADD = "OP_FP_ADD"
- The operator kind representing the floating-point addition operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_RM, SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.abs <term_1> <term_2> <term_3>) 
- 
static const Kind FP_DIV = "OP_FP_DIV"
- The operator kind representing the floating-point division operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_RM, SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.div <term_1> <term_2> <term_3>) 
- 
static const Kind FP_EQ = "OP_FP_EQ"
- The operator kind representing the floating-point equality operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FP, ...}
- indices: - {}
 - SMT-LIB: - (fp.eq <term_1> <term_2>) 
- 
static const Kind FP_FMA = "OP_FP_FMA"
- The operator kind representing the floating-point fused multiplication and addition operator. - Created with Solver::mk_term() with - arity: 4 
- args: - {SORT_RM, SORT_FP, SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.fma <term_1> <term_2> <term_3> <term_4>) 
- 
static const Kind FP_FP = "OP_FP_FP"
- The operator kind representing the floating-point - fpoperator.- Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_RM, SORT_BV, SORT_BV, SORT_BV}- [0]: the sign bit 
- [1]: the exponent 
- [2]: the signifcand 
 
- indices: - {}
 - SMT-LIB: - (fp <term_1> <term_2> <term_3>) 
- 
static const Kind FP_IS_NORMAL = "OP_FP_IS_NORMAL"
- The operator kind representing the floating-point isNormal tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isNormal <term>) 
- 
static const Kind FP_IS_SUBNORMAL = "OP_FP_IS_SUBNORMAL"
- The operator kind representing the floating-point isSubnormal tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isSubnormal <term>) 
- 
static const Kind FP_IS_INF = "OP_FP_IS_INF"
- The operator kind representing the floating-point isInfinite tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isInfinite <term>) 
- 
static const Kind FP_IS_NAN = "OP_FP_IS_NAN"
- The operator kind representing the floating-point isNaN tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isNaN <term>) 
- 
static const Kind FP_IS_NEG = "OP_FP_IS_NEG"
- The operator kind representing the floating-point isNegative tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isNegative <term>) 
- 
static const Kind FP_IS_POS = "OP_FP_IS_POS"
- The operator kind representing the floating-point isPositive tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isPositive <term>) 
- 
static const Kind FP_IS_ZERO = "OP_FP_IS_ZERO"
- The operator kind representing the floating-point isZero tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.isZero <term>) 
- 
static const Kind FP_LT = "OP_FP_LT"
- The operator kind representing the floating-point less than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FP, ...}
- indices: - {}
 - SMT-LIB: - (fp.lt <term_1> ... <term_n>) 
- 
static const Kind FP_LEQ = "OP_FP_LEQ"
- The operator kind representing the floating-point less or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FP, ...}
- indices: - {}
 - SMT-LIB: - (fp.leq <term_1> ... <term_n>) 
- 
static const Kind FP_GT = "OP_FP_GT"
- The operator kind representing the floating-point greater than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FP, ...}
- indices: - {}
 - SMT-LIB: - (fp.gt <term_1> ... <term_n>) 
- 
static const Kind FP_GEQ = "OP_FP_GEQ"
- The operator kind representing the floating-point greater or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FP, ...}
- indices: - {}
 - SMT-LIB: - (fp.geq <term_1> ... <term_n>) 
- 
static const Kind FP_MAX = "OP_FP_MAX"
- The operator kind representing the floating-point max operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.max <term_1> <term_2>) 
- 
static const Kind FP_MIN = "OP_FP_MIN"
- The operator kind representing the floating-point min operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.min <term_1> <term_2>) 
- 
static const Kind FP_MUL = "OP_FP_MUL"
- The operator kind representing the floating-point multiplication operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_RM, SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.mul <term_1> <term_2> <term_3>) 
- 
static const Kind FP_NEG = "OP_FP_NEG"
- The operator kind representing the floating-point negation operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.neg <term>) 
- 
static const Kind FP_REM = "OP_FP_REM"
- The operator kind representing the floating-point remainder operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.rem <term_1> <term_2>) 
- 
static const Kind FP_RTI = "OP_FP_RTI"
- The operator kind representing the floating-point round to integral operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.roundToIntegral <term>) 
- 
static const Kind FP_SQRT = "OP_FP_SQRT"
- The operator kind representing the floating-point square root operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_RM, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.sqrt <term_1> <term_2>) 
- 
static const Kind FP_SUB = "OP_FP_SUB"
- The operator kind representing the floating-point subtraction operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_RM, SORT_FP, SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.sub <term_1> <term_2> <term_3>) 
- 
static const Kind FP_TO_REAL = "OP_FP_TO_REAL"
- The operator kind representing the floating-point to real conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_FP}
- indices: - {}
 - SMT-LIB: - (fp.to_real <term>) 
Integers
- 
static const Kind INT_IS_DIV = "OP_INT_IS_DIV"
- The operator kind representing the integer divisible operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_INT}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ divisible n) <term>) 
- 
static const Kind INT_NEG = "OP_INT_NEG"
- The operator kind representing the integer negation operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_INT}
- indices: - {}
 - SMT-LIB: - (- <term>) 
- 
static const Kind INT_SUB = "OP_INT_SUB"
- The operator kind representing the integer subtraction operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (- <term_1> ... <term_n>) 
- 
static const Kind INT_ADD = "OP_INT_ADD"
- The operator kind representing the integer addition operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (+ <term_1> ... <term_n>) 
- 
static const Kind INT_MUL = "OP_INT_MUL"
- The operator kind representing the integer multiplication operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (* <term_1> ... <term_n>) 
- 
static const Kind INT_DIV = "OP_INT_DIV"
- The operator kind representing the integer division operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (div <term_1> ... <term_n>) 
- 
static const Kind INT_MOD = "OP_INT_MOD"
- The operator kind representing the integer modulus operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_INT, SORT_INT}
- indices: - {}
 - SMT-LIB: - (mod <term_1> <term_2>) 
- 
static const Kind INT_ABS = "OP_INT_ABS"
- The operator kind representing the integer absolute value operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_INT}
- indices: - {}
 - SMT-LIB: - (abs <term>) 
- 
static const Kind INT_LT = "OP_INT_LT"
- The operator kind representing the integer less than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (< <term_1> ... <term_n>) 
- 
static const Kind INT_LTE = "OP_INT_LTE"
- The operator kind representing the integer less or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (<= <term_1> ... <term_n>) 
- 
static const Kind INT_GT = "OP_INT_GT"
- The operator kind representing the integer greater than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (> <term_1> ... <term_n>) 
- 
static const Kind INT_GTE = "OP_INT_GTE"
- The operator kind representing the integer greater or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_INT, ...}
- indices: - {}
 - SMT-LIB: - (>= <term_1> ... <term_n>) 
- 
static const Kind INT_TO_REAL = "OP_INT_TO_REAL"
- The operator kind representing the integer to real conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_INT}
- indices: - {}
 - SMT-LIB: - (to_real <term>) 
Reals
- 
static const Kind REAL_NEG = "OP_REAL_NEG"
- The operator kind representing the reals negation operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 - SMT-LIB: - (- <term>) 
- 
static const Kind REAL_SUB = "OP_REAL_SUB"
- The operator kind representing the reals subtraction operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (- <term_1> ... <term_n>) 
- 
static const Kind REAL_ADD = "OP_REAL_ADD"
- The operator kind representing the reals addition operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (+ <term_1> ... <term_n>) 
- 
static const Kind REAL_MUL = "OP_REAL_MUL"
- The operator kind representing the reals multiplication operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (* <term_1> ... <term_n>) 
- 
static const Kind REAL_DIV = "OP_REAL_DIV"
- The operator kind representing the reals division operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (/ <term_1> ... <term_n>) 
- 
static const Kind REAL_LT = "OP_REAL_LT"
- The operator kind representing the reals less than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (< <term_1> ... <term_n>) 
- 
static const Kind REAL_LTE = "OP_REAL_LTE"
- The operator kind representing the reals less or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (<= <term_1> ... <term_n>) 
- 
static const Kind REAL_GT = "OP_REAL_GT"
- The operator kind representing the reals greater than operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (> <term_1> ... <term_n>) 
- 
static const Kind REAL_GTE = "OP_REAL_GTE"
- The operator kind representing the reals greater or equal operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REAL, ...}
- indices: - {}
 - SMT-LIB: - (>= <term_1> ... <term_n>) 
- 
static const Kind REAL_IS_INT = "OP_REAL_IS_INT"
- The operator kind representing the reals is integer tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 - SMT-LIB: - (is_int <term>) 
- 
static const Kind REAL_TO_INT = "OP_REAL_TO_INT"
- The operator kind representing the reals to integer conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 - SMT-LIB: - (to_real <term>) 
Quantifiers
- 
static const Kind FORALL = "OP_FORALL"
- The operator kind representing the a universal quantifier operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_ANY, ..., SORT_BOOL}
- indices: - {}
 - SMT-LIB: - (forall ((<binder_1> <sort_1>) ... (<binder_n> <sort_n>)) <body>) 
- 
static const Kind EXISTS = "OP_EXISTS"
- The operator kind representing the a existential quantifier operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_ANY, ..., SORT_BOOL}
- indices: - {}
 - SMT-LIB: - (exists ((<binder_1> <sort_1>) ... (<binder_n> <sort_n>)) <body>) 
Strings
- 
static const Kind RE_ALL = "OP_RE_ALL"
- The operator kind representing the constant denoting the set of all strings. - Created with Solver::mk_term() with - arity: 0 
- args: - {}
- indices: - {}
 - SMT-LIB: - re.all
- 
static const Kind RE_ALLCHAR = "OP_RE_ALLCHAR"
- The operator kind representing the constant denoting the set of all strings of length 1. - Created with Solver::mk_term() with - arity: 0 
- args: - {}
- indices: - {}
 - SMT-LIB: - re.allchar
- 
static const Kind RE_COMP = "OP_RE_COMP"
- The operator kind representing the regular expression complement operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {}
 - SMT-LIB: - (re.comp <term>) 
- 
static const Kind RE_CONCAT = "OP_RE_CONCAT"
- The operator kind representing the regular expression concatenation operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REGLAN, ...}
- indices: - {}
 - SMT-LIB: - (re.concat <term_1> ... <term_n>) 
- 
static const Kind RE_DIFF = "OP_RE_DIFF"
- The operator kind representing the regular expression difference operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REGLAN, ...}
- indices: - {}
 - SMT-LIB: - (re.diff <term_1> ... <term_n>) 
- 
static const Kind RE_NONE = "OP_RE_NONE"
- The operator kind representing the constant the empty string. - Created with Solver::mk_term() with - arity: 0 
- args: - {}
- indices: - {}
 - SMT-LIB: - re.none
- 
static const Kind RE_INTER = "OP_RE_INTER"
- The operator kind representing the regular expression intersection operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REGLAN, ...}
- indices: - {}
 - SMT-LIB: - (re.inter <term_1> ... <term_n>) 
- 
static const Kind RE_LOOP = "OP_RE_LOOP"
- The operator kind representing the regular expression loop operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {uint32_t, uint32_t}
 - SMT-LIB: - ((_ re.loop n m) <term>) 
- 
static const Kind RE_OPT = "OP_RE_OPT"
- The operator kind representing the regular expression option operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {}
 - SMT-LIB: - (re.opt <term>) 
- 
static const Kind RE_PLUS = "OP_RE_PLUS"
- The operator kind representing the regular expression Kleene cross operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {}
 - SMT-LIB: - (re.+ <term>) 
- 
static const Kind RE_POW = "OP_RE_POW"
- The operator kind representing the regular expression power operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {uint32_t}
 - SMT-LIB: - ((_ re.^ n) <term>) 
- 
static const Kind RE_RANGE = "OP_RE_RANGE"
- The operator kind representing the regular expression range operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (re.range <term_1> <term_2>) 
- 
static const Kind RE_STAR = "OP_RE_STAR"
- The operator kind representing the regular expression Kleene closure operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REGLAN}
- indices: - {}
 - SMT-LIB: - (re.* <term>) 
- 
static const Kind RE_UNION = "OP_RE_UNION"
- The operator kind representing the regular expression union operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_REGLAN, ...}
- indices: - {}
 - SMT-LIB: - (re.union <term_1> ... <term_n>) 
- 
static const Kind STR_AT = "OP_STR_AT"
- The operator kind representing the string at operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.at <term_1> <term_2>) 
- 
static const Kind STR_CONCAT = "OP_STR_CONCAT"
- The operator kind representing the string concatenation operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_STRING, ...}
- indices: - {}
 - SMT-LIB: - (str.++ <term_1> <term_2>) 
- 
static const Kind STR_CONTAINS = "OP_STR_CONTAINS"
- The operator kind representing the string contains operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.contains <term_1> <term_2>) 
- 
static const Kind STR_FROM_CODE = "OP_STR_FROM_CODE"
- The operator kind representing the string from code conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_INT}
- indices: - {}
 - SMT-LIB: - (str.from_code <term>) 
- 
static const Kind STR_FROM_INT = "OP_STR_FROM_INT"
- The operator kind representing the string from integer conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.from_int <term>) 
- 
static const Kind STR_INDEXOF = "OP_STR_INDEXOF"
- The operator kind representing the string index of operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_STRING, SORT_INT}
- indices: - {}
 - SMT-LIB: - (str.indexof <term_1> <term_2> <term_3>) 
- 
static const Kind STR_IN_RE = "OP_STR_IN_RE"
- The operator kind representing the string regular expression membership operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_REGLAN}
- indices: - {}
 - SMT-LIB: - (str.in_re <term_1> <term_2>) 
- 
static const Kind STR_IS_DIGIT = "OP_STR_IS_DIGIT"
- The operator kind representing the string is_digit tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.is_digit <term>) 
- 
static const Kind STR_LE = "OP_STR_LE"
- The operator kind representing the string less or equal operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.<= <term_1> <term_2>) 
- 
static const Kind STR_LEN = "OP_STR_LEN"
- The operator kind representing the string length operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.len <term>) 
- 
static const Kind STR_LT = "OP_STR_LT"
- The operator kind representing the string less than operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.< <term_1> <term_2>) 
- 
static const Kind STR_PREFIXOF = "OP_STR_PREFIXOF"
- The operator kind representing the string prefix of operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.prefixof <term_1> <term_2>) 
- 
static const Kind STR_REPLACE = "OP_STR_REPLACE"
- The operator kind representing the string replace operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.replace <term_1> <term_2> <term_3>) 
- 
static const Kind STR_REPLACE_ALL = "OP_STR_REPLACE_ALL"
- The operator kind representing the string replace all operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.replace_all <term_1> <term_2> <term_3>) 
- 
static const Kind STR_REPLACE_RE = "OP_STR_REPLACE_RE"
- The operator kind representing the string - replace_reoperator.- Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_REGLAN, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.replace_re <term_1> <term_2> <term_3>) 
- 
static const Kind STR_REPLACE_RE_ALL = "OP_STR_REPLACE_RE_ALL"
- The operator kind representing the string - replace_re_alloperator.- Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_REGLAN, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.replace_re_all <term_1> <term_2> <term_3>) 
- 
static const Kind STR_SUBSTR = "OP_STR_SUBSTR"
- The operator kind representing the string substring operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_STRING, SORT_INT, SORT_INT}
- indices: - {}
 - SMT-LIB: - (str.substr <term_1> <term_2> <term_3>) 
- 
static const Kind STR_SUFFIXOF = "OP_STR_SUFFIXOF"
- The operator kind representing the string suffix of operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_STRING, SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.suffixof <term_1> <term_2>) 
- 
static const Kind STR_TO_CODE = "OP_STR_TO_CODE"
- The operator kind representing the string to code conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.to_code <term>) 
- 
static const Kind STR_TO_INT = "OP_STR_TO_INT"
- The operator kind representing the string to code integer conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.to_int <term>) 
- 
static const Kind STR_TO_RE = "OP_STR_TO_RE"
- The operator kind representing the string to regular expression conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_STRING}
- indices: - {}
 - SMT-LIB: - (str.to_re <term>) 
Transcendentals
- 
static const Kind TRANS_PI = "OP_TRANS_PI"
- The operator kind representing the transcendentals constant pi. - Created with Solver::mk_term() with - arity: 0 
- args: - {}
- indices: - {}
 
- 
static const Kind TRANS_SINE = "OP_TRANS_SINE"
- The operator kind representing the transcendentals sine operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_COSINE = "OP_TRANS_COSINE"
- The operator kind representing the transcendentals cosine operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_TANGENT = "OP_TRANS_TANGENT"
- The operator kind representing the transcendentals tangent operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_COTANGENT = "OP_TRANS_COTANGENT"
- The operator kind representing the transcendentals cotangent operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_SECANT = "OP_TRANS_SECANT"
- The operator kind representing the transcendentals secant operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_COSECANT = "OP_TRANS_COSECANT"
- The operator kind representing the transcendentals secant operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCSINE = "OP_TRANS_ARCSINE"
- The operator kind representing the transcendentals arcsine operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCCOSINE = "OP_TRANS_ARCCOSINE"
- The operator kind representing the transcendentals arccosine operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCTANGENT = "OP_TRANS_ARCTANGENT"
- The operator kind representing the transcendentals arctangent operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCCOSECANT = "OP_TRANS_ARCCOSECANT"
- The operator kind representing the transcendentals arccosine operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCSECANT = "OP_TRANS_ARCSECANT"
- The operator kind representing the transcendentals arcsecant operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_ARCCOTANGENT = "OP_TRANS_ARCCOTANGENT"
- The operator kind representing the transcendentals arccotangent operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
- 
static const Kind TRANS_SQRT = "OP_TRANS_SQRT"
- The operator kind representing the transcendentals square root operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_REAL}
- indices: - {}
 
Uninterpreted Functions
- 
static const Kind UF_APPLY = "OP_UF_APPLY"
- The operator kind representing the function application operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_FUN, SORT_ANY, ...}
- indices: - {}
 - SMT-LIB: - (<fun> <args...>) 
Operators of Non-Standardized Theories
Bags
- 
static const Kind BAG_UNION_MAX = "OP_BAG_UNION_MAX"
- The operator kind representing the bag union operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_UNION_DISJOINT = "OP_BAG_UNION_DISJOINT"
- The operator kind representing the bag disjoint union operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_INTERSECTION_MIN = "OP_BAG_INTERSECTION_MIN"
- The operator kind representing the bag intersection operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_DIFFERENCE_SUBTRACT = "OP_BAG_DIFFERENCE_SUBTRACT"
- The operator kind representing the bag difference subtract operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_DIFFERENCE_REMOVE = "OP_BAG_DIFFERENCE_REMOVE"
- The operator kind representing the bag difference remove operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_SUBBAG = "OP_BAG_SUBBAG"
- The operator kind representing the bag subbag operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_COUNT = "OP_BAG_COUNT"
- The operator kind representing the bag count operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_BAG, SORT_ANY}
- indices: - {}
 
- 
static const Kind BAG_DUPLICATE_REMOVAL = "OP_BAG_DUPLICATE_REMOVAL"
- The operator kind representing the bag duplicate removal operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_MAKE = "OP_BAG_MAKE"
- The operator kind representing the bag make operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_ANY, SORT_INT}
- indices: - {}
 
- 
static const Kind BAG_EMPTY = "OP_BAG_EMPTY"
- The operator kind representing the empty bag constant. - Created with Solver::mk_special_value() with AbsTerm::SPECIAL_VALUE_BAG_EMPTY. 
- 
static const Kind BAG_CARD = "OP_BAG_CARD"
- The operator kind representing the bag cardinality operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_CHOOSE = "OP_BAG_CHOOSE"
- The operator kind representing the bag choose operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_IS_SINGLETON = "OP_BAG_IS_SINGLETON"
- The operator kind representing the bag is singleton tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_FROM_SET = "OP_BAG_FROM_SET"
- The operator kind representing the bag from set conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind BAG_TO_SET = "OP_BAG_TO_SET"
- The operator kind representing the bag to set conversion operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG}
- indices: - {}
 
- 
static const Kind BAG_MAP = "OP_BAG_MAP"
- The operator kind representing the bag map operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_BAG, SORT_FUN}
- indices: - {}
 
Sequences
- 
static const Kind SEQ_CONCAT = "OP_SEQ_CONCAT"
- The operator kind representing the sequence concatenation operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_SEQ, ...}
- indices: - {}
 
- 
static const Kind SEQ_LENGTH = "OP_SEQ_LENGTH"
- The operator kind representing the sequence length operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_EXTRACT = "OP_SEQ_EXTRACT"
- The operator kind representing the sequence extract operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_SEQ, SORT_INT, SORT_INT}
- indices: - {}
 
- 
static const Kind SEQ_UPDATE = "OP_SEQ_UPDATE"
- The operator kind representing the sequence update operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_SEQ, SORT_INT, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_AT = "OP_SEQ_AT"
- The operator kind representing the sequence at operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SEQ, SORT_INT}
- indices: - {}
 
- 
static const Kind SEQ_CONTAINS = "OP_SEQ_CONTAINS"
- The operator kind representing the sequence update operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SEQ, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_INDEXOF = "OP_SEQ_INDEXOF"
- The operator kind representing the sequence index of operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_SEQ, SORT_SEQ, SORT_INT}
- indices: - {}
 
- 
static const Kind SEQ_REPLACE = "OP_SEQ_REPLACE"
- The operator kind representing the sequence replace operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_SEQ, SORT_SEQ, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_REPLACE_ALL = "OP_SEQ_REPLACE_ALL"
- The operator kind representing the sequence replace all operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_SEQ, SORT_SEQ, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_REV = "OP_SEQ_REV"
- The operator kind representing the sequence reverse operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_PREFIX = "OP_SEQ_PREFIX"
- The operator kind representing the sequence prefix operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SEQ, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_SUFFIX = "OP_SEQ_SUFFIX"
- The operator kind representing the sequence suffix operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SEQ, SORT_SEQ}
- indices: - {}
 
- 
static const Kind SEQ_UNIT = "OP_SEQ_UNIT"
- The operator kind representing the sequence unit operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_ANY}
- indices: - {}
 
- 
static const Kind SEQ_NTH = "OP_SEQ_NTH"
- The operator kind representing the sequence nth operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SEQ, SORT_INT}
- indices: - {}
 
Sets
- 
static const Kind SET_CARD = "OP_SET_CARD"
- The operator kind representing the set cardinality operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind SET_COMPLEMENT = "OP_SET_COMPLEMENT"
- The operator kind representing the set complement operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind SET_COMPREHENSION = "OP_SET_COMPREHENSION"
- The operator kind representing the set comprehension operator. - Created with Solver::mk_term() with - arity: 3 
- args: - {SORT_BOOL, SORT_ANY, SORT_ANY}
- indices: - {}
 
- 
static const Kind SET_CHOOSE = "OP_SET_CHOOSE"
- The operator kind representing the set choose operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind SET_INTERSECTION = "OP_SET_INTERSECTION"
- The operator kind representing the set intersection operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SET, SORT_SET}
- indices: - {}
 
- 
static const Kind SET_INSERT = "OP_SET_INSERT"
- The operator kind representing the set insert operator. - Created with Solver::mk_term() with - arity: MURXLA_MK_TERM_N_ARGS_BIN 
- args: - {SORT_SET, SORT_ANY, ...}
- indices: - {}
 
- 
static const Kind SET_IS_SINGLETON = "OP_SET_IS_SINGLETON"
- The operator kind representing the set is singleton tester operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind SET_UNION = "OP_SET_UNION"
- The operator kind representing the set union operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET, SORT_SET}
- indices: - {}
 
- 
static const Kind SET_MEMBER = "OP_SET_MEMBER"
- The operator kind representing the set member operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SET, SORT_ANY}
- indices: - {}
 
- 
static const Kind SET_MINUS = "OP_SET_MINUS"
- The operator kind representing the set minus operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SET, SORT_SET}
- indices: - {}
 
- 
static const Kind SET_SINGLETON = "OP_SET_SINGLETON"
- The operator kind representing the set singleton operator. - Created with Solver::mk_term() with - arity: 1 
- args: - {SORT_SET}
- indices: - {}
 
- 
static const Kind SET_SUBSET = "OP_SET_SUBSET"
- The operator kind representing the set subset operator. - Created with Solver::mk_term() with - arity: 2 
- args: - {SORT_SET, SORT_SET}
- indices: - {}
 
Relations
- 
static const Kind REL_JOIN = "OP_REL_JOIN"
- The operator kind representing the relations join operator. - Note - Not yet supported. 
- 
static const Kind REL_JOIN_IMAGE = "OP_REL_JOIN_IMAGE"
- The operator kind representing the relations join image operator. - Note - Not yet supported. 
- 
static const Kind REL_IDEN = "OP_REL_IDEN"
- The operator kind representing the relations identity operator. - Note - Not yet supported. 
- 
static const Kind REL_PRODUCT = "OP_REL_PRODUCT"
- The operator kind representing the relations product operator. - Note - Not yet supported. 
- 
static const Kind REL_TCLOSURE = "OP_REL_TCLOSURE"
- The operator kind representing the relations transitive closure operator. - Note - Not yet supported. 
- 
static const Kind REL_TRANSPOSE = "OP_REL_TRANSPOSE"
- The operator kind representing the relations transpose operator. - Note - Not yet supported.