sig
  type t = { ext : string; why : string array; wdp : string array; }
  val yices : Prover.SMT.t
  val cvc3 : Prover.SMT.t
  val z3 : Prover.SMT.t
  val simplify : Prover.SMT.t
  val altergo : Prover.SMT.t
  val zenon : Prover.SMT.t
  val of_name : string -> Prover.SMT.t
  val translate :
    'a * Format.formatter -> Prover.SMT.t -> Wpo.t -> string Task.task
  val whydp :
    'a * Format.formatter ->
    Prover.SMT.t -> string -> Prover.verdict Task.task
  val prove :
    string -> 'a * Format.formatter -> Wpo.t -> Prover.verdict Task.task
  val check : 'a * Format.formatter -> Wpo.t -> Prover.verdict Task.task
end