functor (W : Mcfg.S->
  sig
    type t_env = W.t_env
    val new_env :
      ?lvars:Cil_types.logic_var list -> Cil_types.kernel_function -> W.t_env
    type description = Cfgpropid.dnode
    type t_goal = {
      g_id : WpPropId.prop_id;
      g_prop : W.t_prop;
      g_descr : Cfgpropid.dnode;
    }
    type t_prop = Cfgpropid.Create.t_goal list
    val pp_goal :
      Format.formatter -> string -> Cfgpropid.Create.t_goal -> unit
    val pp_descr : Format.formatter -> Cfgpropid.Create.t_goal -> unit
    val iter_description :
      (Wpo.warning -> unit) ->
      (Property.t -> unit) -> Cfgpropid.dnode -> unit
    val pp_goalx : Format.formatter -> Cfgpropid.Create.t_goal -> unit
    val pretty : Format.formatter -> Cfgpropid.Create.t_goal list -> unit
    val empty : 'a list
    val dnode_cpt : int Pervasives.ref
    val make_goal :
      WpPropId.prop_id ->
      (unit -> W.t_prop) -> Cfgpropid.dnode list -> Cfgpropid.Create.t_goal
    val merge :
      Cfgpropid.Create.t_goal list ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val add_hyp :
      W.t_env ->
      WpPropId.pred_info ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val build_prop_of_from :
      W.t_env ->
      WpPropId.pred_info list ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val add_goal :
      W.t_env ->
      WpPropId.pred_info ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val add_axiom :
      WpPropId.prop_id ->
      string ->
      Cil_types.logic_label list ->
      Cil_types.predicate Cil_types.named -> unit
    val add_assigns :
      W.t_env ->
      WpPropId.assigns_info ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val assigns_method : unit -> Mcfg.assigns_method
    val init_value :
      W.t_env ->
      Cil_types.lval ->
      Cil_types.typ ->
      Cil_types.exp option ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val init_range :
      W.t_env ->
      Cil_types.lval ->
      Cil_types.typ ->
      int64 ->
      int64 -> Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val assign :
      W.t_env ->
      Cil_types.lval ->
      Cil_types.exp ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val return :
      W.t_env ->
      Cil_types.exp option ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val test :
      W.t_env ->
      Cil_types.exp ->
      Cfgpropid.Create.t_goal list ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val switch :
      W.t_env ->
      Cil_types.exp ->
      (Cil_types.exp list * Cfgpropid.Create.t_goal list) list ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val call_goal_precond :
      W.t_env ->
      Cil_types.stmt ->
      Cil_types.kernel_function ->
      Cil_types.exp list ->
      pre:WpPropId.pred_info list ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val call :
      W.t_env ->
      Cil_types.stmt ->
      Cil_types.lval option ->
      Cil_types.kernel_function ->
      Cil_types.exp list ->
      pre:WpPropId.pred_info list ->
      post:WpPropId.pred_info list ->
      pexit:WpPropId.pred_info list ->
      assigns:Cil_types.identified_term Cil_types.assigns ->
      p_post:Cfgpropid.Create.t_goal list ->
      p_exit:Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val use_assigns :
      W.t_env ->
      WpPropId.prop_id option ->
      WpPropId.assigns_desc ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val label :
      W.t_env ->
      Clabels.c_label ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val scope :
      W.t_env ->
      Cil_types.varinfo list ->
      Mcfg.scope ->
      Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val close :
      W.t_env -> Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
    val tag :
      string -> Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
  end