functor (W : Mcfg.S) ->
sig
val do_labels : W.t_env -> Cil2cfg.edge -> W.t_prop -> W.t_prop
val add_hyp : W.t_env -> W.t_prop -> WpAnnot.t_id_pred -> W.t_prop
val add_goal : W.t_env -> W.t_prop -> WpAnnot.t_id_pred -> W.t_prop
val add_assigns_goal :
W.t_env -> WpAnnot.t_id_assigns -> W.t_prop -> W.t_prop
val add_inv_hyp : W.t_env -> W.t_prop -> W.t_prop -> W.t_prop
val add_inv_goal : W.t_env -> W.t_prop -> W.t_prop -> W.t_prop
module R :
sig
type t
val empty : keep:bool -> Cil2cfg.t -> Calculus.Cfg.??.t
val change_mode : Calculus.Cfg.??.t -> unit
val find : Calculus.Cfg.??.t -> Cil2cfg.edge -> W.t_prop
val set :
WpAnnot.strategy ->
W.t_env ->
Calculus.Cfg.??.t -> Cil2cfg.edge -> W.t_prop -> W.t_prop
val wp_loop :
Cil2cfg.t ->
WpAnnot.strategy ->
Calculus.Cfg.??.t ->
Cil2cfg.node ->
Cil2cfg.edge ->
(Cil2cfg.node -> W.t_prop) -> (W.t_prop -> W.t_prop) -> W.t_prop
val add_oblig :
Calculus.Cfg.??.t -> Cil_types.logic_label -> W.t_prop -> unit
end
val wp_call :
W.t_env ->
WpAnnot.strategy ->
Cil_types.stmt ->
Cil_types.lval option ->
Cil_types.exp -> Cil_types.exp list -> W.t_prop -> W.t_prop -> W.t_prop
val wp_stmt : W.t_env -> Cil_types.stmt -> W.t_prop -> W.t_prop
val wp_scope :
W.t_env -> Cil_types.varinfo list -> Mcfg.scope -> W.t_prop -> W.t_prop
val get_wp_edge :
Kernel_function.t * Cil2cfg.t * WpAnnot.strategy * Calculus.Cfg.R.t *
W.t_env -> Cil2cfg.edge -> W.t_prop
val get_only_succ :
Kernel_function.t * Cil2cfg.t * WpAnnot.strategy * Calculus.Cfg.R.t *
W.t_env -> Cil2cfg.t -> Cil2cfg.node -> W.t_prop
val compute_wp_edge :
Kernel_function.t * Cil2cfg.t * WpAnnot.strategy * Calculus.Cfg.R.t *
W.t_env -> Cil2cfg.edge -> W.t_prop
val process_global_init : W.t_env -> W.t_prop -> W.t_prop
val do_main_init_if_needed :
W.t_env -> Kernel_function.t -> W.t_prop -> W.t_prop
val get_weakest_precondition :
Cil2cfg.t ->
Kernel_function.t * Cil2cfg.t * WpAnnot.strategy * Calculus.Cfg.R.t *
W.t_env -> W.t_prop list
val add_axiom :
WpAnnot.prop_id *
(string * Cil_types.logic_label list *
Cil_types.predicate Cil_types.named) ->
unit
val compute :
Cil2cfg.t ->
WpAnnot.strategy ->
W.t_prop list * (Format.formatter -> Cil2cfg.edge -> unit)
end