sig
  type t = {
    mutable time : float;
    mutable simplified : bool;
    mutable sequent : Conditions.sequent;
    mutable obligation : Lang.F.pred;
  }
  val empty : Conditions.hypotheses
  val dummy : Wpo.GOAL.t
  val trivial : Wpo.GOAL.t
  val make : Conditions.sequent -> Wpo.GOAL.t
  val is_trivial : Wpo.GOAL.t -> bool
  val apply :
    (Conditions.sequent -> Conditions.sequent) -> Wpo.GOAL.t -> unit
  val preprocess : Wpo.GOAL.t -> unit
  val dkey : Log.category
  val compute : Wpo.GOAL.t -> unit
  val compute_proof : Wpo.GOAL.t -> Lang.F.pred
  val compute_descr : Wpo.GOAL.t -> Conditions.sequent
  val get_descr : Wpo.GOAL.t -> Conditions.sequent
  val qed_time : Wpo.GOAL.t -> float
end