Python Interface
Classes
Options
- class bitwuzla.Options
A Bitwuzla options configuration.
- description(option: Option) str
Get the description of this option.
- Returns:
The description of this option.
- get(option: Option)
Get the current value of the given option.
- Parameters:
option – The option.
- Returns:
The current value of the given option.
- is_bool(option: Option)
Determine if given option is a Boolean option.
- Parameters:
option – The option to query.
- Returns:
True if option is a Boolean option.
- is_mode(option: Option)
Determine if given option is an option with a mode.
- Parameters:
option – The option to query.
- Returns:
True if option is an option with a mode.
- is_numeric(option: Option)
Determine if given option is a numeric option.
- Parameters:
option – The option to query.
- Returns:
True if option is a numeric option.
- is_valid(name: str)
Determine if given string is a valid short or long option name. :param name: The name. :return: True if given string is a option name.
- option(name: str) Option
Get the option associated to the given short or long option name.
- Returns:
The option associated to the given short or long option name.
- set(option, value)
Set option.
- Parameters:
option – The option or the long or short name of an option.
value – The option value.
- set_args(*args)
Set option via command-line.
Supports the following command line option format:
Short option names:
-short ... ["-short"] -short=val ... ["-short=val"] -short val ... ["-short", "val"]
Long option names:
--long ... ["--long"] --long=val ... ["--long=val"] --long val ... ["--long", "val"]
- Parameters:
args – List of command line options.
TermManager
- class bitwuzla.TermManager
The term manager is responsible for the creation and management of sorts and terms. Sorts and terms are tied to a specific term manager instance and can be shared between multiple solver instances that have the same term manager.
- __init__(*args, **kwargs)
- mk_array_sort(index: Sort, elem: Sort) Sort
Create array sort with given index and element sorts.
- Parameters:
index – The sort of the array index.
elem – The sort of the array elements.
- Returns:
Array sort.
- mk_bv_max_signed(sort)
Create a bit-vector maximum signed value.
- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
- Returns:
A term representing the bit-vector value of given sort where the MSB is set to 0 and all remaining bits are set to 1.
- Return type:
BitwuzlaTerm
- mk_bv_min_signed(sort)
Create a bit-vector minimum signed value.
- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
- Returns:
A term representing the bit-vector value of given sort where the MSB is set to 1 and all remaining bits are set to 0.
- Return type:
BitwuzlaTerm
- mk_bv_one(sort)
Create a bit-vector value one with
sort
.- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
- Returns:
A term representing the bit-vector value one of given sort.
- Return type:
BitwuzlaTerm
- mk_bv_ones(sort)
Create a bit-vector value with
sort
where all bits are set to 1.- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
- Returns:
A term representing the bit-vector value of given sort where all bits are set to 1.
- Return type:
BitwuzlaTerm
- mk_bv_sort(size: uint64_t) Sort
Create bit-vector sort of size
size
.- Parameters:
size – Bit width.
- Returns:
Bit-vector sort of size
size
.
- mk_bv_value(sort: Sort, value: int) Term
- mk_bv_value(sort: Sort, value: str, base: int) Term
Create bit-vector representing
value
of givensort
.- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
value (int) – An integer representing the value.
Create bit-vector representing
value
of givensort
andbase
.- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
value (str) – A string representing the value.
base (int) – The numerical base of the string representation (
2
for binary,10
for decimal,16
for hexadecimal).
- Returns:
A term representing the bit-vector value.
- Return type:
BitwuzlaTerm
- mk_bv_zero(sort)
Create a bit-vector value zero with
sort
.- Parameters:
sort (BitwuzlaSort) – Bit-vector sort.
- Returns:
A term representing the bit-vector value zero of given sort.
- Return type:
BitwuzlaTerm
- mk_const(sort: Sort, symbol: str = None) Term
Create a (first-order) constant of given sort with given symbol.
- Parameters:
sort – The sort of the constant.
symbol – The symbol of the constant.
- Returns:
A term of kind
CONSTANT
, representing the constant.
- mk_const_array(sort: Sort, term: Term) Term
Create a one-dimensional constant array of given sort, initialized with given value.
- Parameters:
sort – The sort of the array.
term – The term to initialize the elements of the array with.
- Returns:
A term of kind
CONST_ARRAY
, representing a constant array of given sort.
- mk_false()
Create false value.
- Returns:
A term representing false.
- Return type:
BitwuzlaTerm
- mk_fp_nan(sort: Sort) Term
Create a floating-point NaN value.
- Parameters:
sort – Floating-point sort.
- Returns:
A term representing the floating-point NaN value of given floating-point sort.
- mk_fp_neg_inf(sort: Sort) Term
Create a floating-point negative infinity value (SMT-LIB: -oo).
- Parameters:
sort – Floating-point sort.
- Returns:
A term representing the floating-point negative infinity value of given floating-point sort.
- mk_fp_neg_zero(sort: Sort) Term
Create a floating-point negative zero value (SMT-LIB: -zero).
- Parameters:
sort – Floating-point sort.
- Returns:
A term representing the floating-point negative zero value of given floating-point sort.
- mk_fp_pos_inf(sort: Sort) Term
Create a floating-point positive infinity value (SMT-LIB: +oo).
- Parameters:
sort – Floating-point sort.
- Returns:
A term representing the floating-point positive infinity value of given floating-point sort.
- mk_fp_pos_zero(sort: Sort) Term
Create a floating-point positive zero value (SMT-LIB: +zero).
- Parameters:
sort – Floating-point sort.
- Returns:
A term representing the floating-point positive zero value of given floating-point sort.
- mk_fp_sort(exp_size: uint64_t, sig_size: uint64_t) Sort
Create a floating-point sort with given exponent size
exp_size
and significand sizesig_size
.- Parameters:
exp_size – Exponent size.
sig_size – Significand size.
- Returns:
Floating-point sort.
- mk_fp_value(sign: Term, exponent: Term, significand: Term) Term
- mk_fp_value(sort: Sort, rm: Term, real: str) Term
- mk_fp_value(sort: Sort, rm: Term, num: str, den: str) Term
Create a floating-point value from its IEEE 754 standard representation given as three bit-vector values representing the sign bit, the exponent and the significand.
- Parameters:
sign – Bit-vector value term representing the sign bit.
exponent – Bit-vector value term representing the exponent.
significand – Bit-vector value term representing the significand.
Create a floating-point value from its real representation, given as a decimal string, with respect to given rounding mode.
- Parameters:
sort – Floating-point sort.
rm – Rounding mode term.
real – The decimal string representing a real value
Create a floating-point value from its rational representation, given as a two decimal strings representing the numerator and denominator, with respect to given rounding mode.
- Parameters:
sort – Floating-point sort.
rm – Rounding mode term.
num – The decimal string representing the numerator.
den – The decimal string representing the denominator.
- Returns:
A term representing the floating-point value.
See also
mk_bv_value()
for the supported value format forsign
,exponent
, andsignificand
.
- mk_fun_sort(domain: list[Sort], codomain: Sort) Sort
Create function sort with given domain and codomain.
- Parameters:
domain – A list of all the function arguments’ sorts.
codomain – The sort of the function’s return value.
- Returns:
Function sort, which maps
domain
tocodomain
.
- mk_rm_value(rm: RoundingMode) Term
Create a rounding mode value.
- Parameters:
rm – Rounding mode.
- Returns:
A term representing the rounding mode value.
- mk_term(kind: Kind, terms: list[Term], indices: list[int] = []) Term
Create a term of given kind with the given argument terms.
- Parameters:
kind – The operator kind.
terms – The argument terms.
indices – The indices of this term, empty if not indexed.
- Returns:
A term representing an operation of given kind.
- mk_true()
Create true value.
- Returns:
A term representing true.
- Return type:
BitwuzlaTerm
- mk_uninterpreted_sort(symbol: str = None) Sort
Create an uninterpreted sort.
- Parameters:
symbol – The symbol of the sort.
- Returns:
Uninterpreted Sort.
Note
Only 0-arity uninterpreted sorts are supported.
- mk_var(sort: Sort, symbol: str = None) Term
Create a (first-order) variable of given sort with given symbol.
- Parameters:
sort – The sort of the variable.
symbol – The symbol of the variable.
- Returns:
A term of kind
VARIABLE
, representing the variable.
- substitute_term(term: Term, substs: dict[Term, Term]) Term
Substitute a set terms in a given term. The substitutions to perform are represented as map from keys to be substituted with their corresponding values in the given term.
- Parameters:
term – The term in which the terms are to be substituted.
substs – The substitution map.
- Returns:
The resulting term from this substitution.
- substitute_terms(terms: list[Term], substs: dict[Term, Term]) list[Term]
Substitute a set of terms in a set of given terms. The substitutions to perform are represented as map from keys to be substituted with their corresponding values in the given terms.
The terms in terms are replaced with the terms resulting from these substitutions.
- Parameters:
terms – The terms in which the terms are to be substituted.
substs – The substitution map.
Bitwuzla
- class bitwuzla.Bitwuzla
A Bitwuzla solver instance.
- __init__()
Constructor.
- Parameters:
options – The options configuration of the solver instance.
- assert_formula(*formulas: Term)
Assert one or more formulas.
- Parameters:
formulas – One or more Boolean terms.
- check_sat(*assumptions: Term) Result
Check satisfiability of asserted formulas under possibly given assumptions.
- configure_terminator(callback: callable)
Set a termination callback.
Use this function to force Bitwuzla to prematurely terminate if callback returns True. The callback object needs to be a callable, i.e., it is a function or class that implements the builtin method __call__().
For example:
import time class TimeLimitTerminator: def __init__(self, time_limit): self.start_time = time.time() self.time_limit = time_limit def __call__(self): # Terminate after self.time_limit seconds passed return time.time() - self.start_time > self.time_limit bitwuzla = Bitwuzla() bitwuzla.configure_terminator(lambda: True) # immediately terminate bitwuzla.configure_terminator(TimeLimitTerminator(1)) # terminate after 1s bitwuzla.configure_terminator(TimeLimitTerminator(10)) # terminate after 10s
- Parameters:
callback – A callable Python object.
- get_unsat_assumptions() list[Term]
Return list of unsatisfiable assumptions previously added via
check_sat()
.Requires that the last
check_sat()
call returned ~bitwuzla.Result.UNSAT.- Returns:
List of unsatisfiable assumptions
- get_unsat_core() list[Term]
Return list of unsatisfiable assertions previously added via
assert_formula()
.Requires that the last
check_sat()
call returnedUNSAT
.- Returns:
list of unsatisfiable assertions
- get_value(term: Term) Term
Get model value of term.
Requires that the last
check_sat()
call returned ~bitwuzla.Result.SAT.- Returns:
Term representing the model value of term.
- is_unsat_assumption(term) bool
Determine if given assumption is unsat.
Unsat assumptions are those assumptions that force an input formula to become unsatisfiable.
See
check_sat()
.- Parameters:
term – Boolean term.
- Returns:
True if assumption is unsat, False otherwise.
- pop(nlevels: uint32_t = 1)
Pop assertion levels.
- Parameters:
levels (int) – Number of assertion levels to pop.
- print_formula(fmt: str = 'smt2', base=2) str
Get the current input formula as a string.
- Parameters:
fmt – The output format for printing the formula. Currently, only “smt2” for the SMT-LIB v2 format is supported.
base – The base of the string representation of bit-vector values;
2
for binary,10
for decimal, and16
for hexadecimal. Always ignored for Boolean and RoundingMode values.
- Returns:
The current input formula as a string in the given format.
- push(nlevels: uint32_t = 1)
Push new assertion levels.
- Parameters:
levels (int) – Number of assertion levels to create.
- simplify()
Simplify current set of input assertions.
Note
Each call to
check_sat()
simplifies the input formula as a preprocessing step. It is not necessary to call this function explicitly in the general case.
- statistics() dict[str, str]
Get current statistics.
- Returns:
A map of strings of statistics entries, maps statistic name to value.
- term_mgr() TermManager
Sort
- class bitwuzla.Sort
A Bitwuzla sort.
- array_element() Sort
Get the element sort of an array sort.
Requires that given sort is an array sort.
- Returns:
The element sort of the array sort.
- array_index() Sort
Get the index sort of an array sort.
Requires that given sort is an array sort.
- Returns:
The index sort of the array sort.
- bv_size() int
Get the size of a bit-vector sort.
Requires that given sort is a bit-vector sort.
- Returns:
The size of the bit-vector sort.
- fp_exp_size() int
Get the exponent size of a floating-point sort.
Requires that given sort is a floating-point sort.
- Returns:
The exponent size of the floating-point sort.
- fp_sig_size() int
Get the significand size of a floating-point sort.
Requires that given sort is a floating-point sort.
- Returns:
The significand size of the floating-point sort.
- fun_arity() int
Get the arity of a function sort.
- Returns:
The number of arguments of the function sort.
- fun_codomain() Sort
Get the codomain sort of a function sort.
Requires that given sort is a function sort.
- Returns:
The codomain sort of the function sort.
- fun_domain() list[Sort]
Get the domain sorts of a function sort.
Requires that given sort is a function sort.
- Returns:
The domain sorts of the function sort.
- id() int
Get the id of this sort.
- Returns:
The sort id.
- is_array() bool
Determine if this sort is an array sort.
- Returns:
True if this sort is an array sort.
- is_bool() bool
Determine if this sort is a Boolean sort.
- Returns:
True if this sort is a Boolean sort.
- is_bv() bool
Determine if this sort is a bit-vector sort.
- Returns:
True if sort is a bit-vector sort.
- is_fp() bool
Determine if this sort is a floating-point sort.
- Returns:
True if this sort is a floating-point sort.
- is_fun() bool
Determine if this sort is a function sort.
- Returns:
True if this sort is a function sort.
- is_null() bool
Determine if this sort is a null sort.
- Returns:
True if this sort is a null sort.
- is_rm() bool
Determine if this sort is a Roundingmode sort.
- Returns:
True if this sort is a Roundingmode sort.
- is_uninterpreted() bool
Determine if this sort is an uninterpreted sort.
- Returns:
True if this sort is an uninterpreted sort.
- uninterpreted_symbol() str
Get the symbol of an uninterpreted sort.
- Returns:
The symbol.
Term
- class bitwuzla.Term
A Bitwuzla term.
- children() list[Term]
Get the child terms of this term.
- Returns:
The children of this term as a vector of terms.
- id() int
Get the id of this term.
- Returns:
The term id.
- indices() list[int]
Get the indices of an indexed term.
Requires that given term is an indexed term.
- Returns:
The indices of this term as a vector of indices.
- is_bv_value_max_signed() bool
Determine if this term is a bit-vector maximum signed value.
- Returns:
True if this term is a bit-vector value with the most significant bit set to 0 and all other bits set to 1.
- is_bv_value_min_signed() bool
Determine if this term is a bit-vector minimum signed value.
- Returns:
True if this term is a bit-vector value with the most significant bit set to 1 and all other bits set to 0.
- is_bv_value_one() bool
Determine if this term is a bit-vector value representing one.
- Returns:
True if this term is a bit-vector one value.
- is_bv_value_ones() bool
Determine if this term is a bit-vector value with all bits set to one.
- Returns:
True if this term is a bit-vector value with all bits set to one.
- is_bv_value_zero() bool
Determine if this term is a bit-vector value representing zero.
- Returns:
True if this term is a bit-vector zero value.
- is_const() bool
Determine if this term is a constant.
- Returns:
True if this term is a constant.
- is_false() bool
Determine if this term is Boolean value false.
- Returns:
True if this term is Boolean value false.
- is_fp_value_nan() bool
Determine if this term is a floating-point NaN value.
- Returns:
True if this term is a floating-point NaN value.
- is_fp_value_neg_inf() bool
Determine if this term is a floating-point negative infinity (
-oo
) value.- Returns:
True if this term is a floating-point
-oo
value.
- is_fp_value_neg_zero() bool
Determine if this term is a floating-point value negative zero (
-zero
).- Returns:
True if this term is a floating-point
-zero
.
- is_fp_value_pos_inf() bool
Determine if this term is a floating-point positive infinity (
+oo
) value.- Returns:
True if this term is a floating-point
+oo
value.
- is_fp_value_pos_zero() bool
Determine if this term is a floating-point positive zero (
+zero
) value.- Returns:
True if this term is a floating-point
+zero
value.
- is_null() bool
Determine if this term is a null term.
- Returns:
True if this term is a null term.
- is_rm_value_rna() bool
Determine if this term is a rounding mode
RNA
value.- Returns:
True if this term is a roundindg mode
RNA
value.
- is_rm_value_rne() bool
Determine if this term is a rounding mode
RNE
value.- Returns:
True if this term is a rounding mode
RNE
value.
- is_rm_value_rtn() bool
Determine if this term is a rounding mode
RTN
value.- Returns:
True if this term is a rounding mode RTN value.
- is_rm_value_rtp() bool
Determine if this term is a rounding mode
RTP
value.- Returns:
True if this term is a rounding mode
RTP
value.
- is_rm_value_rtz() bool
Determine if this term is a rounding mode
RTZ
value.- Returns:
True if this term is a rounding mode
RTZ
value.
- is_true() bool
Determine if this term is Boolean value true.
- Returns:
True if this term is Boolean value true.
- is_value() bool
Determine if this term is a value.
- Returns:
True if this term is a value.
- is_variable() bool
Determine if this term is a variable.
- Returns:
True if this term is a variable.
- num_children() int
Get the number of child terms of this term.
- Returns:
The number of children of this term.
- num_indices() int
Get the number of indices of this term.
- Returns:
The number of indices of this term.
- str(base=2) str
Get the SMT-LIB v2 string representation of this term.
- Parameters:
base – The base of the string representation of bit-vector values;
2
for binary,10
for decimal, and16
for hexadecimal. Always ignored for Boolean and RoundingMode values.- Returns:
A string representation of this term.
- symbol() str
Get the symbol of this term.
- Returns:
The symbol of this term. None if no symbol is defined.
- value(base=2, fp_as_tuple=True)
Get value from value term.
This function is instantiated for types -
bool
for Boolean values -RoundingMode
for rounding mode values -string
for bit-vector and floating-point valuesIn case of string representations of values this returns the raw value string (as opposed to str(), which returns the SMT-LIB v2 representation of a term). For example, this function returns
"010"
for a bit-vector value 2 of size 3, while str() returns"#b010"
.- Note:
The returned string for floating-point values is always the binary IEEE-754 representation of the value (parameter base is ignored). Parameter base always configures the numeric base for bit-vector values, and for floating-point values in case of the tuple of strings instantiation. It is always ignored for Boolean and RoundingMode values.
- Parameters:
base – The numeric base for bit-vector values;
2
for binary,10
for decimal, and16
for hexadecimal.fp_as_tuple – True if a floating-point value is to be represented as a tuple of raw string representations of the sign, exponent and significand bit-vectors. False to represent as the binary IEEE-754 string representation of a single bit-vector.
Parser
- class bitwuzla.Parser
The Bitwuzla parser.
- __init__()
Constructor.
- Note:
The parser creates and owns the associated Bitwuzla instance.
- Parameters:
options – The configuration options for the Bitwuzla instance (created by the parser).
language – The format of the input.
base – The base of the string representation of bit-vector values;
2
for binary,10
for decimal, and16
for hexadecimal. Always ignored for Boolean and RoundingMode values.
- parse(iinput, parse_only: bool = False, parse_file: bool = True) bool
Parse input, either from a file or from a string.
- Parameters:
input – The name of the input file if
parse_file
isTrue
, else a string with the input.parse_only –
True
to only parse without issuing calls to check_sat.parse_file –
True
to parse an input file with the given nameiinput
,False
to parse fromiinput
as a string input.
- Raises:
BitwuzlaException – On parse error.
- Note:
Parameter parse_only is redundant for BTOR2 input, its the only available mode for BTOR2 (due to the language not supporting “commands” as in SMT2).
OptionInfo
- class bitwuzla.OptionInfo
The class holding all information about an option.
- cur()
Get the current value of an option. :return: The current default value.
- description()
Get the description of an option. :return: The description.
- dflt()
Get the default value of an option. :return: The default value.
- kind() OptionInfoKind
Get the kind of this OptionInfo. :return: The kind.
- lng()
Get the long name of an option. :return: The long name of an option.
- max()
Get the maximum value of a numeric option. :return: The maximum value.
- min()
Get the minimum value of a numeric option. :return: The minimum value.
- modes()
Get the available modes of an option with modes. :return: The modes.
- shrt()
Get the short name of an option. :return: The short name, if any, else None.
Enums
Option
- class bitwuzla.Option(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Configuration options supported by Bitwuzla. For more information on options see Options.
- BV_SOLVER = 8
- DBG_CHECK_MODEL = 35
- DBG_CHECK_UNSAT_CORE = 36
- DBG_PP_NODE_THRESH = 34
- DBG_RW_NODE_THRESH = 33
- LOGLEVEL = 0
- MEMORY_LIMIT = 7
- PP_CONTRADICTING_ANDS = 22
- PP_ELIM_BV_EXTRACTS = 23
- PP_EMBEDDED_CONSTR = 24
- PP_FLATTEN_AND = 25
- PP_NORMALIZE = 26
- PP_NORMALIZE_SHARE_AWARE = 27
- PP_SKELETON_PREPROC = 28
- PP_VARIABLE_SUBST = 29
- PP_VARIABLE_SUBST_NORM_BV_INEQ = 32
- PP_VARIABLE_SUBST_NORM_DISEQ = 31
- PP_VARIABLE_SUBST_NORM_EQ = 30
- PREPROCESS = 21
- PRODUCE_MODELS = 1
- PRODUCE_UNSAT_ASSUMPTIONS = 2
- PRODUCE_UNSAT_CORES = 3
- PROP_CONST_BITS = 11
- PROP_INFER_INEQ_BOUNDS = 12
- PROP_NORMALIZE = 20
- PROP_NPROPS = 13
- PROP_NUPDATES = 14
- PROP_OPT_LT_CONCAT_SEXT = 15
- PROP_PATH_SEL = 16
- PROP_PROB_RANDOM_INPUT = 17
- PROP_PROB_USE_INV_VALUE = 18
- PROP_SEXT = 19
- REWRITE_LEVEL = 9
- SAT_SOLVER = 10
- SEED = 4
- TIME_LIMIT_PER = 6
- VERBOSITY = 5
OptionInfoKind
Kind
- class bitwuzla.Kind(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
BitwuzlaTerm kinds. For more information on term kinds see
bitwuzla::Kind
.- AND = 4
- APPLY = 15
- ARRAY_SELECT = 17
- ARRAY_STORE = 18
- BV_ADD = 19
- BV_AND = 20
- BV_ASHR = 21
- BV_COMP = 22
- BV_CONCAT = 23
- BV_DEC = 24
- BV_EXTRACT = 63
- BV_INC = 25
- BV_MUL = 26
- BV_NAND = 27
- BV_NEG = 28
- BV_NEG_OVERFLOW = 29
- BV_NOR = 30
- BV_NOT = 31
- BV_OR = 32
- BV_REDAND = 33
- BV_REDOR = 34
- BV_REDXOR = 35
- BV_REPEAT = 64
- BV_ROL = 36
- BV_ROLI = 65
- BV_ROR = 37
- BV_RORI = 66
- BV_SADD_OVERFLOW = 38
- BV_SDIV = 40
- BV_SDIV_OVERFLOW = 39
- BV_SGE = 41
- BV_SGT = 42
- BV_SHL = 43
- BV_SHR = 44
- BV_SIGN_EXTEND = 67
- BV_SLE = 45
- BV_SLT = 46
- BV_SMOD = 47
- BV_SMUL_OVERFLOW = 48
- BV_SREM = 49
- BV_SSUB_OVERFLOW = 50
- BV_SUB = 51
- BV_UADD_OVERFLOW = 52
- BV_UDIV = 53
- BV_UGE = 54
- BV_UGT = 55
- BV_ULE = 56
- BV_ULT = 57
- BV_UMUL_OVERFLOW = 58
- BV_UREM = 59
- BV_USUB_OVERFLOW = 60
- BV_XNOR = 61
- BV_XOR = 62
- BV_ZERO_EXTEND = 68
- CONSTANT = 0
- CONST_ARRAY = 1
- DISTINCT = 5
- EQUAL = 6
- EXISTS = 13
- FORALL = 14
- FP_ABS = 69
- FP_ADD = 70
- FP_DIV = 71
- FP_EQUAL = 72
- FP_FMA = 73
- FP_FP = 74
- FP_GEQ = 75
- FP_GT = 76
- FP_IS_INF = 77
- FP_IS_NAN = 78
- FP_IS_NEG = 79
- FP_IS_NORMAL = 80
- FP_IS_POS = 81
- FP_IS_SUBNORMAL = 82
- FP_IS_ZERO = 83
- FP_LEQ = 84
- FP_LT = 85
- FP_MAX = 86
- FP_MIN = 87
- FP_MUL = 88
- FP_NEG = 89
- FP_REM = 90
- FP_RTI = 91
- FP_SQRT = 92
- FP_SUB = 93
- FP_TO_FP_FROM_BV = 94
- FP_TO_FP_FROM_FP = 95
- FP_TO_FP_FROM_SBV = 96
- FP_TO_FP_FROM_UBV = 97
- FP_TO_SBV = 98
- FP_TO_UBV = 99
- IFF = 7
- IMPLIES = 8
- ITE = 12
- LAMBDA = 16
- NOT = 9
- OR = 10
- VALUE = 2
- VARIABLE = 3
- XOR = 11