sig
type t_prop
val pretty : Format.formatter -> t_prop -> unit
val merge : t_prop -> t_prop -> t_prop
val empty : t_prop
type t_env
val new_env :
?lvars:Cil_types.logic_var list -> Cil_types.kernel_function -> t_env
val add_axiom :
WpPropId.prop_id ->
string ->
Cil_types.logic_label list -> Cil_types.predicate Cil_types.named -> unit
val add_hyp : t_env -> WpPropId.pred_info -> t_prop -> t_prop
val add_goal : t_env -> WpPropId.pred_info -> t_prop -> t_prop
val add_assigns : t_env -> WpPropId.assigns_info -> t_prop -> t_prop
val use_assigns :
t_env ->
WpPropId.prop_id option -> WpPropId.assigns_desc -> t_prop -> t_prop
val assigns_method : unit -> Mcfg.assigns_method
val label : t_env -> Clabels.c_label -> t_prop -> t_prop
val assign : t_env -> Cil_types.lval -> Cil_types.exp -> t_prop -> t_prop
val return : t_env -> Cil_types.exp option -> t_prop -> t_prop
val test : t_env -> Cil_types.exp -> t_prop -> t_prop -> t_prop
val switch :
t_env ->
Cil_types.exp -> (Cil_types.exp list * t_prop) list -> t_prop -> t_prop
val init_value :
t_env ->
Cil_types.lval ->
Cil_types.typ -> Cil_types.exp option -> t_prop -> t_prop
val init_range :
t_env ->
Cil_types.lval -> Cil_types.typ -> int64 -> int64 -> t_prop -> t_prop
val tag : string -> t_prop -> t_prop
val call_goal_precond :
t_env ->
Cil_types.stmt ->
Cil_types.kernel_function ->
Cil_types.exp list -> pre:WpPropId.pred_info list -> t_prop -> t_prop
val call :
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:t_prop -> p_exit:t_prop -> t_prop
val scope :
t_env -> Cil_types.varinfo list -> Mcfg.scope -> t_prop -> t_prop
val build_prop_of_from :
t_env -> WpPropId.pred_info list -> t_prop -> t_prop
val close : t_env -> t_prop -> t_prop
val zip : t_prop -> WpModel.F.pred
end