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
fp
operator.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_re
operator.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_all
operator.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.