BitwuzlaOption
The kind of a Bitwuzla configuration option.
Options are configured via a BitwuzlaOptions
instance,
which must be configured before creating a Bitwuzla
instance.
Note
Some options are labeled as “expert” options. Use with caution.
enum
BitwuzlaOption
-
enum BitwuzlaOption
The configuration options supported by Bitwuzla.
Options that list string values can be configured via
bitwuzla_set_option_str
. Options with integer configuration values are configured viabitwuzla_set_option
.For all options, the current configuration value can be queried via
bitwuzla_get_option
. Options with string configuration values internally represent these values as enum values. For these options,bitwuzla_get_opiton
will return such an enum value. Usebitwuzla_get_option_str
to query enum options for the corresponding string representation.Values:
-
enumerator BITWUZLA_OPT_LOGLEVEL
Log level.
Values:
An unsigned integer value. [default: 0]
-
enumerator BITWUZLA_OPT_PRODUCE_MODELS
Model generation.
Values:
1: enable, generate model for assertions only
2: enable, generate model for all created terms
0: disable [default]
Note
This option cannot be enabled in combination with option
EVALUE(PP_UNCONSTRAINED_OPTIMIZATION
.
-
enumerator BITWUZLA_OPT_PRODUCE_UNSAT_ASSUMPTIONS
Unsat assumptions generation.
Values:
1: enable
0: disable [default]
-
enumerator BITWUZLA_OPT_PRODUCE_UNSAT_CORES
Unsat core generation.
Values:
1: enable
0: disable [default]
-
enumerator BITWUZLA_OPT_SEED
Seed for random number generator.
Values:
An unsigned integer value. [default: 0]
-
enumerator BITWUZLA_OPT_VERBOSITY
Verbosity level.
Values:
An unsigned integer value <= 4. [default: 0]
-
enumerator BITWUZLA_OPT_TIME_LIMIT_PER
Time limit in milliseconds per satisfiability check.
Values:
An unsigned integer for the time limit in milliseconds. [default: 0]
-
enumerator BITWUZLA_OPT_MEMORY_LIMIT
** Memory limit in MB.**
Values:
An unsigned integer for the memory limit in MB. [default: 0]
-
enumerator BITWUZLA_OPT_BV_SOLVER
Configure the bit-vector solver engine.
Values:
bitblast: The classical bit-blasting approach. [default]
prop: Propagation-based local search (sat only).
preprop: Sequential portfolio combination of bit-blasting and propagation-based local search.
-
enumerator BITWUZLA_OPT_REWRITE_LEVEL
Rewrite level.
Values:
0: no rewriting
1: term level rewriting
2: term level rewriting and basic preprocessing
3: term level rewriting and full preprocessing [default]
Note
Configuring the rewrite level after terms have been created is not allowed.
Warning
This is an expert option to configure rewriting.
-
enumerator BITWUZLA_OPT_SAT_SOLVER
Configure the SAT solver engine.
Values:
cadical: CaDiCaL [default]
cms: CryptoMiniSat
kissat: Kissat
lingeling: Lingeling
-
enumerator BITWUZLA_OPT_PROP_CONST_BITS
Propagation-based local search solver engine: Constant bits.
Configure constant bit propagation (requires bit-blasting to AIG).
Values:
1: enable [default]
0: disable
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_INFER_INEQ_BOUNDS
Propagation-based local search solver engine: Infer bounds for inequalities for value computation.
When enabled, infer bounds for value computation for inequalities based on satisfied top level inequalities.
Values:
1: enable
0: disable [default]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_NPROPS
Propagation-based local search solver engine: Number of propagations.
Configure the number of propagations used as a limit for the propagation-based local search solver engine. No limit if 0.
Values:
An unsigned integer value. [default: 0]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_NUPDATES
Propagation-based local search solver engine: Number of updates.
Configure the number of model value updates used as a limit for the propagation-based local search solver engine. No limit if 0.
Values:
An unsigned integer value. [default: 0]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_OPT_LT_CONCAT_SEXT
Propagation-based local search solver engine: Optimization for inverse value computation of inequalities over concat and sign extension operands.
When enabled, use optimized inverse value value computation for inequalities over concats.
Values:
1: enable
0: disable [default]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_PATH_SEL
Propagation-based local search solver engine: Path selection.
Configure mode for path selection.
Values:
essential: Select path based on essential inputs. [default]
random: Select path randomly.
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_PROB_RANDOM_INPUT
Propagation-based local search solver engine: Probability for selecting random input.
Configure the probability with which to select a random input instead of an essential input when selecting the path.
Values:
An unsigned integer value <= 1000 (= 100%). [default: 0]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_PROB_USE_INV_VALUE
Propagation-based local search solver engine: Probability for inverse values.
Configure the probability with which to choose an inverse value over a consistent value when aninverse value exists.
Values:
An unsigned integer value <= 1000 (= 100%). [default: 990]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_SEXT
Propagation-based local search solver engine: Value computation for sign extension.
When enabled, detect sign extension operations (are rewritten on construction) and use value computation for sign extension.
Values:
1: enable
0: disable [default]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PROP_NORMALIZE
Propagation-based local search solver engine: Local search specific normalization.
When enabled, perform normalizations for local search, on the local search layer (does not affect node layer).
Values:
1: enable
0: disable [default]
Warning
This is an expert option to configure the prop solver engine.
-
enumerator BITWUZLA_OPT_PREPROCESS
Preprocessing
When enabled, applies all enabled preprocessing passes.
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_CONTRADICTING_ANDS
Preprocessing: Find contradicting bit-vector ands
When enabled, substitutes contradicting nodes of kind #BV_AND with zero.
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_ELIM_BV_EXTRACTS
Preprocessing: Eliminate bit-vector extracts on bit-vector constants
When enabled, eliminates bit-vector extracts on constants.
Values:
1: enable
0: disable [default]
-
enumerator BITWUZLA_OPT_PP_EMBEDDED_CONSTR
Preprocessing: Embedded constraint substitution
When enabled, substitutes assertions that occur as sub-expression in the formula with their respective Boolean value.
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_FLATTEN_AND
Preprocessing: AND flattening
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_NORMALIZE
Preprocessing: Normalization
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_NORMALIZE_SHARE_AWARE
Preprocessing: Normalization: Enable share awareness normlization
When enabled, this disables normalizations that may yield blow-up on the bit-level.
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_SKELETON_PREPROC
Preprocessing: Boolean skeleton preprocessing
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_VARIABLE_SUBST
Preprocessing: Variable substitution
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_VARIABLE_SUBST_NORM_EQ
Preprocessing: Variable substitution: Equality Normalization
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_VARIABLE_SUBST_NORM_DISEQ
Preprocessing: Variable substitution: Disequality Normalization
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_PP_VARIABLE_SUBST_NORM_BV_INEQ
Preprocessing: Variable substitution: Bit-Vector Inequality Normalization
Values:
1: enable [default]
0: disable
-
enumerator BITWUZLA_OPT_DBG_RW_NODE_THRESH
**Debug: Threshold for number of new nodes introduced for recursive call of rewrite(). **
Prints a warning number of newly introduced nodes is above threshold.
Warning
This is an expert debug option.
-
enumerator BITWUZLA_OPT_DBG_PP_NODE_THRESH
**Debug: Threshold for formula size increase after preprocessing in percent. **
Prints a warning if formula size increase is above threshold.
Warning
This is an expert debug option.
-
enumerator BITWUZLA_OPT_DBG_CHECK_MODEL
**Debug: Check models for each satisfiable query. **
Warning
This is an expert debug option.
-
enumerator BITWUZLA_OPT_DBG_CHECK_UNSAT_CORE
**Debug: Check unsat core for each unsatisfiable query. **
Warning
This is an expert debug option.
-
enumerator BITWUZLA_OPT_LOGLEVEL