Wp.WpPropIdBeside the property identification, it can be found in different contexts depending on which part of the computation is involved. For instance, properties on loops are split in 2 parts : establishment and preservation.
val property_of_id : prop_id -> Frama_c_kernel.Property.treturns the annotation which lead to the given PO.
val doomed_if_valid : prop_id -> Frama_c_kernel.Property.t listProperties that are False-if-unreachable in case the PO is valid.
val unreachable_if_valid : prop_id -> Frama_c_kernel.Property.other_locStmt that is unreachable in case the PO is valid.
val source_of_id : prop_id -> Frama_c_kernel.Filepath.positionmodule PropId : Frama_c_kernel.Datatype.S with type t = prop_idval tactical : gid:string -> prop_idval is_check : prop_id -> boolval is_tactic : prop_id -> boolval is_assigns : prop_id -> boolval is_requires : Frama_c_kernel.Property.t -> boolval is_loop_preservation : prop_id -> Frama_c_kernel.Cil_types.stmt optionval is_smoke_test : prop_id -> boolval select_default : prop_id -> booltest if the prop_id does not have a no_wp: in its name(s).
val select_by_name : string list -> prop_id -> booltest if the prop_id has to be selected for the asked names.
val select_for_behaviors : string list -> prop_id -> booltest if the prop_id has to be selected for the asked behavior names.
val select_call_pre :
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Property.t option ->
prop_id ->
booltest if the prop_id has to be selected when we want to select the call.
From a list of names (of an identified terms), returns usable names.
val prop_id_keys : prop_id -> string list * string listval get_propid : prop_id -> stringUnique identifier of prop_id
val pp_propid : Stdlib.Format.formatter -> prop_id -> unitPrint unique id of prop_id
val user_pred_names :
Frama_c_kernel.Cil_types.toplevel_predicate ->
string listval user_bhv_names : Frama_c_kernel.Property.identified_property -> string listval user_prop_names :
Frama_c_kernel.Property.identified_property ->
string listare_selected_names asked names checks if names of a property are selected according to asked names.
val pretty : Stdlib.Format.formatter -> prop_id -> unitval pretty_context :
Frama_c_kernel.Description.kf ->
Stdlib.Format.formatter ->
prop_id ->
unitval pretty_local : Stdlib.Format.formatter -> prop_id -> unitval label_of_prop_id : prop_id -> stringShort description of the kind of PO
val string_of_termination_kind :
Frama_c_kernel.Cil_types.termination_kind ->
stringTODO: should probably be somewhere else
val num_of_bhv_from :
Frama_c_kernel.Cil_types.funbehavior ->
Frama_c_kernel.Cil_types.from ->
intval mk_smoke :
Frama_c_kernel.Cil_types.kernel_function ->
id:string ->
?doomed:Frama_c_kernel.Property.t list ->
?unreachable:Frama_c_kernel.Cil_types.stmt ->
unit ->
prop_idval mk_code_annot_ids :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_id listval mk_assert_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idval mk_loop_inv_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
established:bool ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idInvariant establishment and preservation
val mk_loop_inv :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_id * prop_idInvariant establishment and preservation, in this order
val mk_inv_hyp_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idInvariant used as hypothesis
val mk_var_decr_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idVariant decrease
val mk_var_pos_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idVariant positive
val mk_var_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
prop_idVariant for
val mk_loop_from_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
Frama_c_kernel.Cil_types.from ->
prop_id\from property of loop assigns. Must not be FromAny
val mk_bhv_from_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.kinstr ->
string list ->
Frama_c_kernel.Cil_types.funbehavior ->
Frama_c_kernel.Cil_types.from ->
prop_id\from property of function or statement behavior assigns. Must not be FromAny
val mk_fct_from_id :
Frama_c_kernel.Cil_types.kernel_function ->
bool ->
Frama_c_kernel.Cil_types.funbehavior ->
Frama_c_kernel.Cil_types.termination_kind ->
Frama_c_kernel.Cil_types.from ->
prop_id\from property of function behavior assigns. Must not be FromAny. The boolean indicate whether the function has exit node or not.
val mk_disj_bhv_id :
(Frama_c_kernel.Cil_types.kernel_function
* Frama_c_kernel.Cil_types.kinstr
* string list
* string list) ->
prop_iddisjoint behaviors property. See Property.ip_of_disjoint for more information
val mk_compl_bhv_id :
(Frama_c_kernel.Cil_types.kernel_function
* Frama_c_kernel.Cil_types.kinstr
* string list
* string list) ->
prop_idcomplete behaviors property. See Property.ip_of_complete for more information
val mk_decrease_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.kinstr ->
Frama_c_kernel.Cil_types.variant ->
prop_idval mk_lemma_id : LogicUsage.logic_lemma -> prop_idaxiom identification
val mk_stmt_assigns_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
string list ->
Frama_c_kernel.Cil_types.funbehavior ->
Frama_c_kernel.Cil_types.from list ->
prop_id optionval mk_loop_assigns_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.code_annotation ->
Frama_c_kernel.Cil_types.from list ->
prop_id optionval mk_fct_assigns_id :
Frama_c_kernel.Cil_types.kernel_function ->
bool ->
Frama_c_kernel.Cil_types.funbehavior ->
Frama_c_kernel.Cil_types.termination_kind ->
Frama_c_kernel.Cil_types.from list ->
prop_id optionfunction assigns The boolean indicate whether the function has exit node or not.
val mk_terminates_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.kinstr ->
Frama_c_kernel.Cil_types.identified_predicate ->
prop_idval mk_call_pre_id :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Property.t ->
Frama_c_kernel.Property.t ->
prop_idmk_call_pre_id called_kf s_call called_pre
val mk_property : Frama_c_kernel.Property.t -> prop_idval mk_check : Frama_c_kernel.Property.t -> prop_idtype assigns_desc = private {a_label : Clabels.c_label;a_stmt : Frama_c_kernel.Cil_types.stmt option;a_kind : a_kind;a_assigns : Frama_c_kernel.Cil_types.assigns;}val pp_assigns_desc : Stdlib.Format.formatter -> assigns_desc -> unittype assigns_info = prop_id * assigns_descval assigns_info_id : assigns_info -> prop_idtype assigns_full_info = private | AssignsLocations of assigns_info| AssignsAny of assigns_desc| NoAssignsInfoval empty_assigns_info : assigns_full_infoval mk_assigns_info : prop_id -> assigns_desc -> assigns_full_infoval mk_stmt_any_assigns_info :
Frama_c_kernel.Cil_types.stmt ->
assigns_full_infoval mk_kf_any_assigns_info : unit -> assigns_full_infoval mk_loop_any_assigns_info :
Frama_c_kernel.Cil_types.stmt ->
assigns_full_infoval pp_assign_info :
string ->
Stdlib.Format.formatter ->
assigns_full_info ->
unitval merge_assign_info :
assigns_full_info ->
assigns_full_info ->
assigns_full_infoval mk_loop_assigns_desc :
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.from list ->
assigns_descval mk_stmt_assigns_desc :
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.from list ->
assigns_descval mk_stmt_assigns_any_desc : Frama_c_kernel.Cil_types.stmt -> assigns_descval mk_asm_assigns_desc : Frama_c_kernel.Cil_types.stmt -> assigns_descval mk_kf_assigns_desc : Frama_c_kernel.Cil_types.from list -> assigns_descval mk_init_assigns : assigns_descval is_call_assigns : assigns_desc -> booltype axiom_info = prop_id * LogicUsage.logic_lemmaval mk_axiom_info : LogicUsage.logic_lemma -> axiom_infoval pp_axiom_info : Stdlib.Format.formatter -> axiom_info -> unittype pred_info = prop_id * Frama_c_kernel.Cil_types.predicatetype variant_info = prop_id * Frama_c_kernel.Cil_types.variantval mk_pred_info : prop_id -> Frama_c_kernel.Cil_types.predicate -> pred_infoval pp_pred_of_pred_info : Stdlib.Format.formatter -> pred_info -> unitval pp_pred_info : Stdlib.Format.formatter -> pred_info -> unitval split_bag :
(prop_id -> 'a -> unit) ->
prop_id ->
'a Frama_c_kernel.Bag.t ->
unitmk_part pid (k, n) build the identification for the k/n part of pid.
val parts_of_id : prop_id -> (int * int) optionget the 'part' information.
val subproofs : prop_id -> intHow many subproofs
val subproof_idx : prop_id -> intsubproof index of this propr_id
val get_induction : prop_id -> Frama_c_kernel.Cil_types.stmt optionval add_proof : proof -> prop_id -> Frama_c_kernel.Property.t list -> unitaccumulate in the proof the partial proof for this prop_id
val add_invalid_proof : proof -> unitadd an invalid proof result ; can not revert a complete proof
val is_composed : proof -> boolwhether a proof needs several lemma to be complete
val is_proved : proof -> boolwhether all partial proofs have been accumulated or not
val is_invalid : proof -> boolwhether an invalid proof result has been registered or not
val target : proof -> Frama_c_kernel.Property.tval dependencies : proof -> Frama_c_kernel.Property.t listval filter_status : prop_id -> bool