functor (W : Mcfg.S) ->
sig
type t_env = W.t_env
val new_env : Db_types.kernel_function -> W.t_env
type description = Cfgpropid.dnode
type t_goal = {
g_id : WpAnnot.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) ->
(Wpo.dependency -> 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 :
WpAnnot.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_as_hyp :
W.t_env ->
Cfgpropid.Create.t_goal list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val add_as_goal :
'a ->
Cfgpropid.Create.t_goal list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val add_hyp :
W.t_env ->
WpAnnot.prop_id ->
Cil_types.predicate Cil_types.named ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val build_prop_of_from :
W.t_env ->
WpAnnot.t_id_pred list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val add_goal :
W.t_env ->
WpAnnot.prop_id ->
Cil_types.predicate Cil_types.named ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val add_axiom :
WpAnnot.prop_id ->
string ->
Cil_types.logic_label list ->
Cil_types.predicate Cil_types.named -> unit
val add_assigns :
W.t_env ->
WpAnnot.prop_id ->
Cil_types.logic_label ->
WpAnnot.a_kind ->
Cil_types.identified_term Cil_types.assigns list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val assigns_method : unit -> Mcfg.assigns_method
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_normal :
W.t_env ->
get_pre:(Db_types.kernel_function ->
(WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
get_post:(Db_types.kernel_function ->
(WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
get_assigns:(Db_types.kernel_function ->
Cil_types.identified_term Cil_types.assigns list) ->
Cil_types.stmt ->
Cil_types.lval option ->
Cil_types.exp ->
Cil_types.exp list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val call_exit :
W.t_env ->
get_pre:(Db_types.kernel_function ->
(WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
get_exits:(Db_types.kernel_function ->
(WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
get_assigns:(Db_types.kernel_function ->
Cil_types.identified_term Cil_types.assigns list) ->
Cil_types.stmt ->
Cil_types.exp ->
Cil_types.exp list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val use_assigns :
W.t_env ->
WpAnnot.prop_id ->
WpAnnot.a_kind ->
Cil_types.identified_term Cil_types.assigns list ->
Cfgpropid.Create.t_goal list -> Cfgpropid.Create.t_goal list
val label :
W.t_env ->
Cil_types.logic_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
end