Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file params.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293(* SPDX-License-Identifier: MIT *)(* Copyright (C) 2023-2024 formalsec *)(* Written by the Smtml programmers *)type_param=|Timeout:intparam|Model:boolparam|Unsat_core:boolparam|Ematching:boolparam|Parallel:boolparam|Num_threads:intparam|Debug:boolparamletdiscr:typea.aparam->int=function|Timeout->0|Model->1|Unsat_core->2|Ematching->3|Parallel->4|Num_threads->5|Debug->6moduleKey=structtypet=K:'aparam->tletvv=Kvletcompare(Ka)(Kb)=compare(discra)(discrb)endmodulePmap=Map.Make(Key)typeparam'=P:'aparam*'a->param'letpkv=P(k,v)typet=param'Pmap.tletdefault_timeout=2147483647letdefault_model=trueletdefault_unsat_core=falseletdefault_ematching=trueletdefault_parallel=falseletdefault_num_threads=1letdefault_debug=falseletdefault_value(typea)(param:aparam):a=matchparamwith|Timeout->default_timeout|Model->default_model|Unsat_core->default_unsat_core|Ematching->default_ematching|Parallel->default_parallel|Num_threads->default_num_threads|Debug->default_debugletdefault()=Pmap.empty|>Pmap.add(Key.vTimeout)(pTimeoutdefault_timeout)|>Pmap.add(Key.vModel)(pModeldefault_model)|>Pmap.add(Key.vUnsat_core)(pUnsat_coredefault_unsat_core)|>Pmap.add(Key.vEmatching)(pEmatchingdefault_ematching)letset(typea)(params:t)(param:aparam)(value:a):t=Pmap.add(Key.vparam)(pparamvalue)paramsletopt(typea)(params:t)(param:aparam)(opt_value:aoption):t=Option.fold~none:params~some:(setparamsparam)opt_valuelet($)(typea)(params:t)((param,value):aparam*a):t=setparamsparamvalueletget(typea)(params:t)(param:aparam):a=match(param,Pmap.find_opt(Key.vparam)params)with|_,None->assertfalse|Timeout,Some(P(Timeout,v))->v|Model,Some(P(Model,v))->v|Unsat_core,Some(P(Unsat_core,v))->v|Ematching,Some(P(Ematching,v))->v|Parallel,Some(P(Parallel,v))->v|Num_threads,Some(P(Num_threads,v))->v|Debug,Some(P(Debug,v))->v|((Timeout|Model|Unsat_core|Ematching|Parallel|Num_threads|Debug),_)->assertfalseletto_listparams=List.mapsnd@@Pmap.bindingsparams