Wp.LogicUsage
val basename : Frama_c_kernel.Cil_types.varinfo -> string
Trims the original name
type logic_lemma = {
lem_name : string; | |
lem_position : Frama_c_kernel.Filepath.position; | |
lem_types : string list; | |
lem_labels : Frama_c_kernel.Cil_types.logic_label list; | |
lem_predicate : Frama_c_kernel.Cil_types.toplevel_predicate; | |
lem_depends : logic_lemma list; | (* in reverse order *) |
lem_attrs : Frama_c_kernel.Cil_types.attributes; |
}
type axiomatic = {
ax_name : string; |
ax_position : Frama_c_kernel.Filepath.position; |
ax_property : Frama_c_kernel.Property.t; |
mutable ax_types : Frama_c_kernel.Cil_types.logic_type_info list; |
mutable ax_logics : Frama_c_kernel.Cil_types.logic_info list; |
mutable ax_lemmas : logic_lemma list; |
mutable ax_reads : Frama_c_kernel.Cil_datatype.Varinfo.Set.t; |
}
val ip_lemma : logic_lemma -> Frama_c_kernel.Property.t
val iter_lemmas : ( logic_lemma -> unit ) -> unit
val fold_lemmas : ( logic_lemma -> 'a -> 'a ) -> 'a -> 'a
val logic_lemma : string -> logic_lemma
val axiomatic : string -> axiomatic
val section_of_lemma : string -> logic_section
val section_of_type : Frama_c_kernel.Cil_types.logic_type_info -> logic_section
val section_of_logic : Frama_c_kernel.Cil_types.logic_info -> logic_section
val proof_context : unit -> logic_lemma list
Lemmas that are not in an axiomatic.
val is_recursive : Frama_c_kernel.Cil_types.logic_info -> bool
val get_induction_labels :
Frama_c_kernel.Cil_types.logic_info ->
string ->
Wp__.Clabels.LabelSet.t Wp__.Clabels.LabelMap.t
Given an inductive phi{...A...}
. Whenever in case C{...B...}
we have a call to phi{...B...}
, then A
belongs to (induction phi C).[B]
.
val get_name : Frama_c_kernel.Cil_types.logic_info -> string
val pp_profile :
Stdlib.Format.formatter ->
Frama_c_kernel.Cil_types.logic_info ->
unit