Flags.Smtval logic : unit -> logicLogic to send to the SMT solver
type solver = [ | `Bitwuzla_SMTLIB| `cvc5_SMTLIB| `MathSAT_SMTLIB| `OpenSMT_SMTLIB| `SMTInterpol_SMTLIB| `Yices2_SMTLIB| `Z3_SMTLIB| `detect ]Legal SMT solvers.
val set_solver : solver -> unitSet SMT solver and executable
val solver : unit -> solverWhich SMT solver to use.
val set_qe_solver : qe_solver -> unitSet SMT solver for QE
val qe_solver : unit -> qe_solverWhich SMT solver for QE to use.
val set_itp_solver : itp_solver -> unitSet SMT solver for interpolation
val itp_solver : unit -> itp_solverWhich SMT solver for interpolation to use.
val get_itp_solver : unit -> solverval prefer_solvers :
?solver:solver ->
?itp:itp_solver ->
?qe:qe_solver ->
unit ->
unitprefer_solvers ?solver ?itp ?qe () uses the given main, interpolating and quantifier-elimination solvers for the roles that were left to detection (no --smt_solver, --smt_itp_solver, --smt_qe_solver), provided their executables are found. A role whose preferred solver is not found is left to detection. To be called before the solvers are checked (see check_solvers).