sig
  val simsat :
    'Syntax.context -> 'Syntax.formula -> [ `Sat | `Unknown | `Unsat ]
  val simsat_forward :
    'Syntax.context -> 'Syntax.formula -> [ `Sat | `Unknown | `Unsat ]
  val maximize :
    'Syntax.context ->
    'Syntax.formula ->
    'Syntax.term ->
    [ `Bounded of QQ.t | `Infinity | `MinusInfinity | `Unknown ]
  val qe_mbp : 'Syntax.context -> 'Syntax.formula -> 'Syntax.formula
  val easy_sat :
    'Syntax.context -> 'Syntax.formula -> [ `Sat | `Unknown | `Unsat ]
  type 'a strategy
  type quantifier_prefix = ([ `Exists | `Forall ] * Syntax.symbol) list
  val pp_strategy :
    'Syntax.context -> Format.formatter -> 'Quantifier.strategy -> unit
  val show_strategy : 'Syntax.context -> 'Quantifier.strategy -> string
  val winning_strategy :
    'Syntax.context ->
    Quantifier.quantifier_prefix ->
    'Syntax.formula ->
    [ `Sat of 'Quantifier.strategy
    | `Unknown
    | `Unsat of 'Quantifier.strategy ]
  val check_strategy :
    'Syntax.context ->
    Quantifier.quantifier_prefix ->
    'Syntax.formula -> 'Quantifier.strategy -> bool
  val normalize :
    'Syntax.context ->
    'Syntax.formula -> Quantifier.quantifier_prefix * 'Syntax.formula
end