package frama-c
Platform dedicated to the analysis of source code written in C
Install
Dune 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
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
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
frama-c-29.0-Copper.tar.gz
sha256=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/frama-c-wp.core/Wp/CfgAnnot/index.html
Module Wp.CfgAnnot
Source
Normalization of Annotations.
Labels are renamed wrt NormAtLabels and reorganized for use/prove dispatching in CfgCalculus
.
Source
type behavior = {
bhv_assumes : WpPropId.pred_info list;
bhv_requires : WpPropId.pred_info list;
bhv_smokes : WpPropId.pred_info list;
bhv_ensures : WpPropId.pred_info list;
bhv_exits : WpPropId.pred_info list;
bhv_post_assigns : WpPropId.assigns_full_info;
bhv_exit_assigns : WpPropId.assigns_full_info;
}
Source
val get_requires :
goal:bool ->
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.funbehavior ->
WpPropId.pred_info list
Source
val get_preconditions :
goal:bool ->
Frama_c_kernel.Cil_types.kernel_function ->
WpPropId.pred_info list
Source
val get_behavior_goals :
Frama_c_kernel.Cil_types.kernel_function ->
?smoking:bool ->
?exits:bool ->
Frama_c_kernel.Cil_types.funbehavior ->
behavior
Source
val get_complete_behaviors :
Frama_c_kernel.Cil_types.kernel_function ->
WpPropId.pred_info list
Source
val get_disjoint_behaviors :
Frama_c_kernel.Cil_types.kernel_function ->
WpPropId.pred_info list
Source
val get_terminates_goal :
Frama_c_kernel.Cil_types.kernel_function ->
WpPropId.pred_info option
Source
val get_decreases_goal :
Frama_c_kernel.Cil_types.kernel_function ->
WpPropId.variant_info option
Source
type code_assertion = {
code_admitted : WpPropId.pred_info option;
code_verified : WpPropId.pred_info option;
}
Source
val get_code_assertions :
?smoking:bool ->
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
code_assertion list
Source
val get_unreachable :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
WpPropId.prop_id
Source
val get_stmt_assigns :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
WpPropId.assigns_full_info list
Source
type loop_invariant = {
loop_hyp : loop_hypothesis;
loop_est : WpPropId.prop_id option;
loop_ind : WpPropId.prop_id option;
loop_pred : Frama_c_kernel.Cil_types.predicate;
}
Source
type loop_contract = {
loop_terminates : Frama_c_kernel.Cil_types.predicate option;
loop_invariants : loop_invariant list;
(*to be proved after loop invariants
*)loop_smoke : WpPropId.pred_info list;
(*assigned by loop body
*)loop_assigns : WpPropId.assigns_full_info list;
}
Source
val get_loop_contract :
?smoking:bool ->
?terminates:Frama_c_kernel.Cil_types.predicate ->
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
loop_contract
Source
val mk_variant_properties :
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.term ->
WpPropId.pred_info * WpPropId.pred_info
Source
type contract = {
contract_cond : WpPropId.pred_info list;
contract_hpre : WpPropId.pred_info list;
contract_post : WpPropId.pred_info list;
contract_exit : WpPropId.pred_info list;
contract_smoke : WpPropId.pred_info list;
contract_assigns : Frama_c_kernel.Cil_types.assigns;
contract_terminates : bool * Frama_c_kernel.Cil_types.predicate;
contract_decreases : Frama_c_kernel.Cil_types.variant option;
}
Source
val get_call_contract :
?smoking:Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
contract
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>