123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336type_key=|Log_level:intkey|Produce_models:boolkey|Produce_unsat_assumptions:boolkey|Produce_unsat_cores:boolkey|Seed:intkey|Verbosity:intkey|Time_limit_per:intkey|Memory_limit:intkey|Bv_solver:bv_solverkey|Rewrite_level:intkey|Sat_solver:sat_solverkey|Prop_const_bits:boolkey|Prop_ineq_bounds:boolkey|Prop_nprops:intkey|Prop_nupdates:intkey|Prop_opt_lt_concat_sext:boolkey|Prop_path_sel:prop_path_selkey|Prop_prob_pick_rand_input:intkey|Prop_prob_pick_inv_value:intkey|Prop_sext:boolkey|Prop_normalize:boolkey|Preprocess:boolkey|Pp_contr_ands:boolkey|Pp_elim_extracts:boolkey|Pp_embedded:boolkey|Pp_flatten_and:boolkey|Pp_normalize:boolkey|Pp_normalize_share_aware:boolkey|Pp_skeleton_preproc:boolkey|Pp_variable_subst:boolkey|Pp_variable_subst_norm_eq:boolkey|Pp_variable_subst_norm_diseq:boolkey|Pp_variable_subst_norm_bv_ineq:boolkey|Dbg_rw_node_thresh:intkey|Dbg_pp_node_thresh:intkey|Check_model:boolkey|Check_unsat_core:boolkeyandbv_solver=|Bitblast|Preprop|Propandsat_solver=|Cadical|Cms|Kissatandprop_path_sel=|Essential|Randomletdescription:typea.akey->string=function|Log_level->"log level"|Produce_models->"model production"|Produce_unsat_assumptions->"unsat assumptions production"|Produce_unsat_cores->"unsat core production"|Seed->"seed for the random number generator"|Verbosity->"verbosity level"|Time_limit_per->"time limit in milliseconds per satisfiability check"|Memory_limit->"set maximum memory limit in MB"|Bv_solver->"bv solver engine"|Rewrite_level->"rewrite level"|Sat_solver->"backend SAT solver"|Prop_const_bits->"use constant bits propagation"|Prop_ineq_bounds->"infer inequality bounds for invertibility conditions and inverse value computation"|Prop_nprops->"number of propagation steps used as a limit for propagation-based local search engine"|Prop_nupdates->"number of model value updates used as a limit for propagation-based local search engine"|Prop_opt_lt_concat_sext->"optimization for inverse value computation of inequalities over concat and sign extension operands"|Prop_path_sel->"propagation path selection mode for propagation-based local search engine"|Prop_prob_pick_rand_input->"probability for selecting a random input instead of an essential input (interpreted as <n>/1000)"|Prop_prob_pick_inv_value->"probability for producing inverse rather than consistent values (interpreted as <n>/1000)"|Prop_sext->"use sign_extend nodes for concats that represent sign_extend nodes for propagation-based local search engine"|Prop_normalize->"enable normalization for local search"|Preprocess->"enable preprocessing"|Pp_contr_ands->"enable contradicting ands preprocessing pass"|Pp_elim_extracts->"eliminate extract on BV constants"|Pp_embedded->"enable embedded constraint preprocessing pass"|Pp_flatten_and->"enable AND flattening preprocessing pass"|Pp_normalize->"enable normalization pass"|Pp_normalize_share_aware->"disable normalizations in normalization pass that may yield blow-up on the bit-level"|Pp_skeleton_preproc->"enable skeleton preprocessing pass"|Pp_variable_subst->"enable variable substitution preprocessing pass"|Pp_variable_subst_norm_eq->"enable equality normalization via Gaussian elimination if variable substitution preprocessing pass is enabled"|Pp_variable_subst_norm_diseq->"enable disequality normalization if variable substitution preprocessing pass is enabled"|Pp_variable_subst_norm_bv_ineq->"enable bit-vector unsigned inequality normalization if variable substitution preprocessing pass is enabled"|Dbg_rw_node_thresh->"warn threshold [#] for new nodes created through rewriting steps"|Dbg_pp_node_thresh->"warn threshold [%] for new nodes created through preprocessing in total"|Check_model->"check model for each satisfiable query"|Check_unsat_core->"check unsat core model for each unsatisfiable query"letto_string:typea.akey->string=function|Log_level->"log-level"|Produce_models->"produce-models"|Produce_unsat_assumptions->"produce-unsat-assumptions"|Produce_unsat_cores->"produce-unsat-cores"|Seed->"seed"|Verbosity->"verbosity"|Time_limit_per->"time-limit-per"|Memory_limit->"memory-limit"|Bv_solver->"bv-solver"|Rewrite_level->"rewrite-level"|Sat_solver->"sat-solver"|Prop_const_bits->"prop-const-bits"|Prop_ineq_bounds->"prop-ineq-bounds"|Prop_nprops->"prop-nprops"|Prop_nupdates->"prop-nupdates"|Prop_opt_lt_concat_sext->"prop-opt-lt-concat-sext"|Prop_path_sel->"prop-path-sel"|Prop_prob_pick_rand_input->"prop-prob-pick-rand-input"|Prop_prob_pick_inv_value->"prop-prob-pick-inv-value"|Prop_sext->"prop-sext"|Prop_normalize->"prop-normalize"|Preprocess->"preprocess"|Pp_contr_ands->"pp-contr-ands"|Pp_elim_extracts->"pp-elim-extracts"|Pp_embedded->"pp-embedded"|Pp_flatten_and->"pp-flatten-and"|Pp_normalize->"pp-normalize"|Pp_normalize_share_aware->"pp-normalize-share-aware"|Pp_skeleton_preproc->"pp-skeleton-preproc"|Pp_variable_subst->"pp-variable-subst"|Pp_variable_subst_norm_eq->"pp-variable-subst-norm-eq"|Pp_variable_subst_norm_diseq->"pp-variable-subst-norm-diseq"|Pp_variable_subst_norm_bv_ineq->"pp-variable-subst-norm-bv-ineq"|Dbg_rw_node_thresh->"dbg-rw-node-thresh"|Dbg_pp_node_thresh->"dbg-pp-node-thresh"|Check_model->"check-model"|Check_unsat_core->"check-unsat-core"letto_cxx:typea.akey->int=function|Log_level->0|Produce_models->1|Produce_unsat_assumptions->2|Produce_unsat_cores->3|Seed->4|Verbosity->5|Time_limit_per->6|Memory_limit->7|Bv_solver->8|Rewrite_level->9|Sat_solver->10|Prop_const_bits->11|Prop_ineq_bounds->12|Prop_nprops->13|Prop_nupdates->14|Prop_opt_lt_concat_sext->15|Prop_path_sel->16|Prop_prob_pick_rand_input->17|Prop_prob_pick_inv_value->18|Prop_sext->19|Prop_normalize->20|Preprocess->21|Pp_contr_ands->22|Pp_elim_extracts->23|Pp_embedded->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_eq->30|Pp_variable_subst_norm_diseq->31|Pp_variable_subst_norm_bv_ineq->32|Dbg_rw_node_thresh->33|Dbg_pp_node_thresh->34|Check_model->35|Check_unsat_core->36letbv_solver_to_string=function|Bitblast->"bitblast"|Preprop->"preprop"|Prop->"prop"letsat_solver_to_string=function|Cadical->"cadical"|Cms->"cms"|Kissat->"kissat"letprop_path_sel_to_string=function|Essential->"essential"|Random->"random"letbv_solver_of_string=function|"bitblast"->Bitblast|"preprop"->Preprop|"prop"->Prop|_->assertfalseletsat_solver_of_string=function|"cadical"->Cadical|"cms"->Cms|"kissat"->Kissat|_->assertfalseletprop_path_sel_of_string=function|"essential"->Essential|"random"->Random|_->assertfalseletdefault_value:typea.akey->a=function|Log_level->0|Produce_models->false|Produce_unsat_assumptions->false|Produce_unsat_cores->false|Seed->42|Verbosity->0|Time_limit_per->0|Memory_limit->0|Bv_solver->Bitblast|Rewrite_level->2|Sat_solver->Cadical|Prop_const_bits->true|Prop_ineq_bounds->true|Prop_nprops->0|Prop_nupdates->0|Prop_opt_lt_concat_sext->true|Prop_path_sel->Essential|Prop_prob_pick_rand_input->10|Prop_prob_pick_inv_value->990|Prop_sext->true|Prop_normalize->false|Preprocess->true|Pp_contr_ands->false|Pp_elim_extracts->false|Pp_embedded->true|Pp_flatten_and->true|Pp_normalize->true|Pp_normalize_share_aware->true|Pp_skeleton_preproc->true|Pp_variable_subst->true|Pp_variable_subst_norm_eq->true|Pp_variable_subst_norm_diseq->false|Pp_variable_subst_norm_bv_ineq->false|Dbg_rw_node_thresh->0|Dbg_pp_node_thresh->0|Check_model->false|Check_unsat_core->falseletmin:intkey->int=function|Log_level->0|Seed->0|Verbosity->0|Time_limit_per->0|Memory_limit->0|Rewrite_level->0|Prop_nprops->0|Prop_nupdates->0|Prop_prob_pick_rand_input->0|Prop_prob_pick_inv_value->0|Dbg_rw_node_thresh->0|Dbg_pp_node_thresh->0letmax:intkey->int=function|Log_level->3|Seed->4294967295|Verbosity->4|Time_limit_per->4611686018427387903|Memory_limit->4611686018427387903|Rewrite_level->2|Prop_nprops->4611686018427387903|Prop_nupdates->4611686018427387903|Prop_prob_pick_rand_input->1000|Prop_prob_pick_inv_value->1000|Dbg_rw_node_thresh->4611686018427387903|Dbg_pp_node_thresh->100typetexternaldefault:unit->t="ocaml_bitwuzla_cxx_options_new"externalset_numeric:t->(int[@untagged])->(int[@untagged])->unit="ocaml_bitwuzla_cxx_options_set_numeric""native_bitwuzla_cxx_options_set_numeric"externalset_mode:t->(int[@untagged])->string->unit="ocaml_bitwuzla_cxx_options_set_mode""native_bitwuzla_cxx_options_set_mode"letset:typea.t->akey->a->unit=funtkv->matchkwith|Log_level->set_numerict(to_cxxk)v|Produce_models->set_numerict(to_cxxk)(Bool.to_intv)|Produce_unsat_assumptions->set_numerict(to_cxxk)(Bool.to_intv)|Produce_unsat_cores->set_numerict(to_cxxk)(Bool.to_intv)|Seed->set_numerict(to_cxxk)v|Verbosity->set_numerict(to_cxxk)v|Time_limit_per->set_numerict(to_cxxk)v|Memory_limit->set_numerict(to_cxxk)v|Bv_solver->set_modet(to_cxxk)(bv_solver_to_stringv)|Rewrite_level->set_numerict(to_cxxk)v|Sat_solver->set_modet(to_cxxk)(sat_solver_to_stringv)|Prop_const_bits->set_numerict(to_cxxk)(Bool.to_intv)|Prop_ineq_bounds->set_numerict(to_cxxk)(Bool.to_intv)|Prop_nprops->set_numerict(to_cxxk)v|Prop_nupdates->set_numerict(to_cxxk)v|Prop_opt_lt_concat_sext->set_numerict(to_cxxk)(Bool.to_intv)|Prop_path_sel->set_modet(to_cxxk)(prop_path_sel_to_stringv)|Prop_prob_pick_rand_input->set_numerict(to_cxxk)v|Prop_prob_pick_inv_value->set_numerict(to_cxxk)v|Prop_sext->set_numerict(to_cxxk)(Bool.to_intv)|Prop_normalize->set_numerict(to_cxxk)(Bool.to_intv)|Preprocess->set_numerict(to_cxxk)(Bool.to_intv)|Pp_contr_ands->set_numerict(to_cxxk)(Bool.to_intv)|Pp_elim_extracts->set_numerict(to_cxxk)(Bool.to_intv)|Pp_embedded->set_numerict(to_cxxk)(Bool.to_intv)|Pp_flatten_and->set_numerict(to_cxxk)(Bool.to_intv)|Pp_normalize->set_numerict(to_cxxk)(Bool.to_intv)|Pp_normalize_share_aware->set_numerict(to_cxxk)(Bool.to_intv)|Pp_skeleton_preproc->set_numerict(to_cxxk)(Bool.to_intv)|Pp_variable_subst->set_numerict(to_cxxk)(Bool.to_intv)|Pp_variable_subst_norm_eq->set_numerict(to_cxxk)(Bool.to_intv)|Pp_variable_subst_norm_diseq->set_numerict(to_cxxk)(Bool.to_intv)|Pp_variable_subst_norm_bv_ineq->set_numerict(to_cxxk)(Bool.to_intv)|Dbg_rw_node_thresh->set_numerict(to_cxxk)v|Dbg_pp_node_thresh->set_numerict(to_cxxk)v|Check_model->set_numerict(to_cxxk)(Bool.to_intv)|Check_unsat_core->set_numerict(to_cxxk)(Bool.to_intv)externalget_numeric:t->(int[@untagged])->(int[@untagged])="ocaml_bitwuzla_cxx_options_get_numeric""native_bitwuzla_cxx_options_get_numeric"externalget_mode:t->(int[@untagged])->string="ocaml_bitwuzla_cxx_options_get_mode""native_bitwuzla_cxx_options_get_mode"letget:typea.t->akey->a=funtk->matchkwith|Log_level->get_numerict(to_cxxk)|Produce_models->get_numerict(to_cxxk)<>0|Produce_unsat_assumptions->get_numerict(to_cxxk)<>0|Produce_unsat_cores->get_numerict(to_cxxk)<>0|Seed->get_numerict(to_cxxk)|Verbosity->get_numerict(to_cxxk)|Time_limit_per->get_numerict(to_cxxk)|Memory_limit->get_numerict(to_cxxk)|Bv_solver->bv_solver_of_string(get_modet(to_cxxk))|Rewrite_level->get_numerict(to_cxxk)|Sat_solver->sat_solver_of_string(get_modet(to_cxxk))|Prop_const_bits->get_numerict(to_cxxk)<>0|Prop_ineq_bounds->get_numerict(to_cxxk)<>0|Prop_nprops->get_numerict(to_cxxk)|Prop_nupdates->get_numerict(to_cxxk)|Prop_opt_lt_concat_sext->get_numerict(to_cxxk)<>0|Prop_path_sel->prop_path_sel_of_string(get_modet(to_cxxk))|Prop_prob_pick_rand_input->get_numerict(to_cxxk)|Prop_prob_pick_inv_value->get_numerict(to_cxxk)|Prop_sext->get_numerict(to_cxxk)<>0|Prop_normalize->get_numerict(to_cxxk)<>0|Preprocess->get_numerict(to_cxxk)<>0|Pp_contr_ands->get_numerict(to_cxxk)<>0|Pp_elim_extracts->get_numerict(to_cxxk)<>0|Pp_embedded->get_numerict(to_cxxk)<>0|Pp_flatten_and->get_numerict(to_cxxk)<>0|Pp_normalize->get_numerict(to_cxxk)<>0|Pp_normalize_share_aware->get_numerict(to_cxxk)<>0|Pp_skeleton_preproc->get_numerict(to_cxxk)<>0|Pp_variable_subst->get_numerict(to_cxxk)<>0|Pp_variable_subst_norm_eq->get_numerict(to_cxxk)<>0|Pp_variable_subst_norm_diseq->get_numerict(to_cxxk)<>0|Pp_variable_subst_norm_bv_ineq->get_numerict(to_cxxk)<>0|Dbg_rw_node_thresh->get_numerict(to_cxxk)|Dbg_pp_node_thresh->get_numerict(to_cxxk)|Check_model->get_numerict(to_cxxk)<>0|Check_unsat_core->get_numerict(to_cxxk)<>0