package frama-c
Install
    
    dune-project
 Dependency
Authors
- 
  
    
    MMichele Alberti
- 
  
    
    TThibaud Antignac
- 
  
    
    GGergö Barany
- 
  
    
    PPatrick Baudin
- 
  
    
    TThibaut Benjamin
- 
  
    
    AAllan Blanchard
- 
  
    
    LLionel Blatter
- 
  
    
    FFrançois Bobot
- 
  
    
    RRichard Bonichon
- 
  
    
    QQuentin Bouillaguet
- 
  
    
    DDavid Bühler
- 
  
    
    ZZakaria Chihani
- 
  
    
    LLoïc Correnson
- 
  
    
    JJulien Crétin
- 
  
    
    PPascal Cuoq
- 
  
    
    ZZaynah Dargaye
- 
  
    
    BBasile Desloges
- 
  
    
    JJean-Christophe Filliâtre
- 
  
    
    PPhilippe Herrmann
- 
  
    
    MMaxime Jacquemin
- 
  
    
    FFlorent Kirchner
- 
  
    
    AAlexander Kogtenkov
- 
  
    
    TTristan Le Gall
- 
  
    
    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
- 
  
    
    JJulien Signoles
- 
  
    
    NNicolas Stouls
- 
  
    
    KKostyantyn Vorobyov
- 
  
    
    BBoris Yakobowski
Maintainers
Sources
sha256=29612882330ecb6eddd0b4ca3afc0492b70d0feb3379a1b8e893194c6e173983
    
    
  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