package frama-c
Install
dune-project
Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
SSylvain Chiron
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
BBenjamin Jorge
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
KKilyan Le Gallic
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
CCécile Ruet-Cros
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=a94384f00d53791cbb4b4d83ab41607bc71962d42461f02d71116c4ff6dca567
doc/frama-c-wp.core/Wp/WpPropId/index.html
Module Wp.WpPropIdSource
Beside 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.
Property.t information and kind of PO (establishment, preservation, etc)
returns the annotation which lead to the given PO.
Properties that are False-if-unreachable in case the PO is valid.
Stmt that is unreachable in case the PO is valid.
test if the prop_id does not have a no_wp: in its name(s).
test if the prop_id has to be selected for the asked names.
test 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.
Print unique id of prop_id
are_selected_names asked names checks if names of a property are selected according to asked names.
TODO: 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_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
type 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;
}type assigns_full_info = private | AssignsLocations of assigns_info| AssignsAny of assigns_desc| NoAssignsInfo
val 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_descmk_part pid (k, n) build the identification for the k/n part of pid.
A proof accumulator for a set of related prop_id
accumulate in the proof the partial proof for this prop_id
add an invalid proof result ; can not revert a complete proof