(ProverWhy3.dp list option -> unit) ->
object
  val mutable dps : ProverWhy3.dp list
  method add : string list -> unit
  method add_float : name:string -> value:float -> unit
  method add_int : name:string -> value:int -> unit
  method add_list : name:string -> string list -> unit
  method add_parameter : name:string -> (unit -> bool) -> unit
  method add_positive : name:string -> value:int -> unit
  method detect : unit Task.task
  method prover : ProverTask.pattern -> unit
  method result : int -> unit
  method run :
    ?echo:bool -> ?logout:string -> ?logerr:string -> unit -> int Task.task
  method set_command : string -> unit
  method timeout : int -> unit
  method validate_pattern :
    ?logs:ProverTask.logs ->
    ?repeat:bool -> Str.regexp -> (ProverTask.pattern -> unit) -> unit
  method validate_time : (float -> unit) -> unit
end