package frama-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
sha256=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/frama-c-wp.core/Wp/Sigs/index.html
Module Wp.Sigs
Source
Common Types and Signatures
General Definitions
type equation =
| Set of Lang.F.term * Lang.F.term
(*
*)Set(a,b)
isa := b
.| Assert of Lang.F.pred
Oriented equality or arbitrary relation
Access conditions
Abstract location or concrete value
type 'a rloc =
| Rloc of Ctypes.c_object * 'a
| Rrange of 'a * Ctypes.c_object * Lang.F.term option * Lang.F.term option
Contiguous set of locations
type 'a sloc =
| Sloc of 'a
| Sarray of 'a * Ctypes.c_object * int
(*full sized range (optimized assigns)
*)| Srange of 'a * Ctypes.c_object * Lang.F.term option * Lang.F.term option
| Sdescr of Lang.F.var list * 'a * Lang.F.pred
Structured set of locations
Typed set of locations
type 'a logic =
| Vexp of Lang.F.term
| Vloc of 'a
| Vset of Wp__.Vset.vset list
| Lset of 'a sloc list
Logical values, locations, or sets of
Scope management for locals and formals
Container for the returned value of a function
Polarity of predicate compilation
Frame Conditions. Consider a function phi(m)
over memory m
, we want memories m1,m2
and condition p
such that p(m1,m2) -> phi(m1) = phi(m2)
.
name
used for generating lemmatriggers
for the lemmaconditions
for the frame lemma to holdmem1,mem2
to two memories for which the lemma holds
Reversing Models
It is sometimes possible to reverse memory models abstractions into ACSL left-values via the definitions below.
and s_host =
| Mvar of Frama_c_kernel.Cil_types.varinfo
(*Variable
*)| Mmem of Lang.F.term
(*Pointed value
*)| Mval of s_lval
(*Pointed value of another abstract left-value
*)
type mval =
| Mterm
(*Not a state-related value
*)| Maddr of s_lval
(*The value is the address of an l-value in current memory
*)| Mlval of s_lval * Lang.datakind
(*The value is the value of an l-value in current memory
*)| Mchunk of string * Lang.datakind
(*The value is an abstract memory chunk (description)
*)
Reversed abstract value
type update =
| Mstore of s_lval * Lang.F.term
(*An update of the ACSL left-value with the given value
*)
Reversed update
Memory Models
C and ACSL Compilers
Compiler for C expressions
Compiler for ACSL expressions
Compiler for Performing Assigns