string ->
object
  val mutable cmd : string
  val mutable once : bool
  val mutable param : string list
  val stderr : Buffer.t
  val stdout : Buffer.t
  val mutable timeout : int
  val mutable timers : (float -> unit) list
  val mutable validerr :
    (Str.regexp * bool * (ProverTask.pattern -> unit)) list
  val mutable validout :
    (Str.regexp * bool * (ProverTask.pattern -> unit)) 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 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