123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464type_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|Nthreads:intkey|Bv_solver:bv_solverkey|Rewrite_level:intkey|Sat_solver:sat_solverkey|Write_aiger:stringkey|Write_cnf:stringkey|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|Abstraction:boolkey|Abstraction_bv_size:intkey|Abstraction_eager_refine:boolkey|Abstraction_value_limit:intkey|Abstraction_value_only:boolkey|Abstraction_assert:boolkey|Abstraction_assert_refs:intkey|Abstraction_initial_lemmas:boolkey|Abstraction_inc_bitblast:boolkey|Abstraction_bvadd:boolkey|Abstraction_bvmul:boolkey|Abstraction_bvudiv:boolkey|Abstraction_bvurem:boolkey|Abstraction_eq:boolkey|Abstraction_ite:boolkey|Preprocess:boolkey|Pp_contr_ands:boolkey|Pp_elim_extracts:boolkey|Pp_elim_bvudiv:boolkey|Pp_embedded:boolkey|Pp_flatten_and:boolkey|Pp_normalize: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 per satisfiability check"|Nthreads->"set number of threads to utilize in parallel (currently, this only configures parallel threads in the CryptoMiniSat back end)"|Bv_solver->"bv solver engine"|Rewrite_level->"rewrite level"|Sat_solver->"backend SAT solver"|Write_aiger->"write bv abstraction as AIGER to filename"|Write_cnf->"write bv abstraction as CNF to filename"|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"|Abstraction->"enable abstraction module"|Abstraction_bv_size->"enable abstraction for bit-vector terms of given minimum size"|Abstraction_eager_refine->"add all violated abstraction lemmas at once"|Abstraction_value_limit->"value instantiation limit bv-size/<n> until adding original term as refinement"|Abstraction_value_only->"only add value instantiations"|Abstraction_assert->"assertion abstraction"|Abstraction_assert_refs->"number of assertion refinements per check"|Abstraction_initial_lemmas->"use initial lemma refinements only"|Abstraction_inc_bitblast->"incrementally bit-blast bvmul and bvadd"|Abstraction_bvadd->"term abstraction for bvadd"|Abstraction_bvmul->"term abstraction for bvmul"|Abstraction_bvudiv->"term abstraction for bvudiv"|Abstraction_bvurem->"term abstraction for bvurem"|Abstraction_eq->"term abstraction for ="|Abstraction_ite->"term abstraction for ite"|Preprocess->"enable preprocessing"|Pp_contr_ands->"enable contradicting ands preprocessing pass"|Pp_elim_extracts->"eliminate extract on BV constants"|Pp_elim_bvudiv->"eliminate bvudiv and bvurem"|Pp_embedded->"enable embedded constraint preprocessing pass"|Pp_flatten_and->"enable AND flattening preprocessing pass"|Pp_normalize->"enable normalization pass"|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 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"|Nthreads->"nthreads"|Bv_solver->"bv-solver"|Rewrite_level->"rewrite-level"|Sat_solver->"sat-solver"|Write_aiger->"write-aiger"|Write_cnf->"write-cnf"|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"|Abstraction->"abstraction"|Abstraction_bv_size->"abstraction-bv-size"|Abstraction_eager_refine->"abstraction-eager-refine"|Abstraction_value_limit->"abstraction-value-limit"|Abstraction_value_only->"abstraction-value-only"|Abstraction_assert->"abstraction-assert"|Abstraction_assert_refs->"abstraction-assert-refs"|Abstraction_initial_lemmas->"abstraction-initial-lemmas"|Abstraction_inc_bitblast->"abstraction-inc-bitblast"|Abstraction_bvadd->"abstraction-bvadd"|Abstraction_bvmul->"abstraction-bvmul"|Abstraction_bvudiv->"abstraction-bvudiv"|Abstraction_bvurem->"abstraction-bvurem"|Abstraction_eq->"abstraction-eq"|Abstraction_ite->"abstraction-ite"|Preprocess->"preprocess"|Pp_contr_ands->"pp-contr-ands"|Pp_elim_extracts->"pp-elim-extracts"|Pp_elim_bvudiv->"pp-elim-bvudiv"|Pp_embedded->"pp-embedded"|Pp_flatten_and->"pp-flatten-and"|Pp_normalize->"pp-normalize"|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|Nthreads->8|Bv_solver->9|Rewrite_level->10|Sat_solver->11|Write_aiger->12|Write_cnf->13|Prop_const_bits->14|Prop_ineq_bounds->15|Prop_nprops->16|Prop_nupdates->17|Prop_opt_lt_concat_sext->18|Prop_path_sel->19|Prop_prob_pick_rand_input->20|Prop_prob_pick_inv_value->21|Prop_sext->22|Abstraction->23|Abstraction_bv_size->24|Abstraction_eager_refine->25|Abstraction_value_limit->26|Abstraction_value_only->27|Abstraction_assert->28|Abstraction_assert_refs->29|Abstraction_initial_lemmas->30|Abstraction_inc_bitblast->31|Abstraction_bvadd->32|Abstraction_bvmul->33|Abstraction_bvudiv->34|Abstraction_bvurem->35|Abstraction_eq->36|Abstraction_ite->37|Preprocess->38|Pp_contr_ands->39|Pp_elim_extracts->40|Pp_elim_bvudiv->41|Pp_embedded->42|Pp_flatten_and->43|Pp_normalize->44|Pp_skeleton_preproc->45|Pp_variable_subst->46|Pp_variable_subst_norm_eq->47|Pp_variable_subst_norm_diseq->48|Pp_variable_subst_norm_bv_ineq->49|Dbg_rw_node_thresh->50|Dbg_pp_node_thresh->51|Check_model->52|Check_unsat_core->53letbv_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->27644437|Verbosity->0|Time_limit_per->0|Memory_limit->0|Nthreads->1|Bv_solver->Bitblast|Rewrite_level->2|Sat_solver->Cadical|Write_aiger->""|Write_cnf->""|Prop_const_bits->true|Prop_ineq_bounds->true|Prop_nprops->0|Prop_nupdates->0|Prop_opt_lt_concat_sext->false|Prop_path_sel->Essential|Prop_prob_pick_rand_input->10|Prop_prob_pick_inv_value->990|Prop_sext->true|Abstraction->true|Abstraction_bv_size->33|Abstraction_eager_refine->false|Abstraction_value_limit->8|Abstraction_value_only->false|Abstraction_assert->false|Abstraction_assert_refs->100|Abstraction_initial_lemmas->false|Abstraction_inc_bitblast->false|Abstraction_bvadd->false|Abstraction_bvmul->true|Abstraction_bvudiv->true|Abstraction_bvurem->true|Abstraction_eq->false|Abstraction_ite->false|Preprocess->true|Pp_contr_ands->false|Pp_elim_extracts->false|Pp_elim_bvudiv->false|Pp_embedded->true|Pp_flatten_and->true|Pp_normalize->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|Nthreads->1|Rewrite_level->0|Prop_nprops->0|Prop_nupdates->0|Prop_prob_pick_rand_input->0|Prop_prob_pick_inv_value->0|Abstraction_bv_size->3|Abstraction_value_limit->0|Abstraction_assert_refs->1|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|Nthreads->4611686018427387903|Rewrite_level->2|Prop_nprops->4611686018427387903|Prop_nupdates->4611686018427387903|Prop_prob_pick_rand_input->1000|Prop_prob_pick_inv_value->1000|Abstraction_bv_size->4611686018427387903|Abstraction_value_limit->4611686018427387903|Abstraction_assert_refs->4611686018427387903|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|Nthreads->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)|Write_aiger->set_modet(to_cxxk)v|Write_cnf->set_modet(to_cxxk)v|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)|Abstraction->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_bv_size->set_numerict(to_cxxk)v|Abstraction_eager_refine->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_value_limit->set_numerict(to_cxxk)v|Abstraction_value_only->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_assert->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_assert_refs->set_numerict(to_cxxk)v|Abstraction_initial_lemmas->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_inc_bitblast->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_bvadd->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_bvmul->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_bvudiv->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_bvurem->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_eq->set_numerict(to_cxxk)(Bool.to_intv)|Abstraction_ite->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_elim_bvudiv->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_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"externalget_string:t->(int[@untagged])->string="ocaml_bitwuzla_cxx_options_get_str""native_bitwuzla_cxx_options_get_str"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)|Nthreads->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))|Write_aiger->get_stringt(to_cxxk)|Write_cnf->get_stringt(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|Abstraction->get_numerict(to_cxxk)<>0|Abstraction_bv_size->get_numerict(to_cxxk)|Abstraction_eager_refine->get_numerict(to_cxxk)<>0|Abstraction_value_limit->get_numerict(to_cxxk)|Abstraction_value_only->get_numerict(to_cxxk)<>0|Abstraction_assert->get_numerict(to_cxxk)<>0|Abstraction_assert_refs->get_numerict(to_cxxk)|Abstraction_initial_lemmas->get_numerict(to_cxxk)<>0|Abstraction_inc_bitblast->get_numerict(to_cxxk)<>0|Abstraction_bvadd->get_numerict(to_cxxk)<>0|Abstraction_bvmul->get_numerict(to_cxxk)<>0|Abstraction_bvudiv->get_numerict(to_cxxk)<>0|Abstraction_bvurem->get_numerict(to_cxxk)<>0|Abstraction_eq->get_numerict(to_cxxk)<>0|Abstraction_ite->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_elim_bvudiv->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_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