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/Lang/index.html
Module Wp.Lang
Source
Low-Level Logic Terms and Predicates
Logic Language based on Qed
Library
Naming - Unique identifiers
Symbols
type adt = private
| Mtype of mdt
(*External type
*)| Mrecord of mdt * fields
(*External record-type
*)| Atype of Frama_c_kernel.Cil_types.logic_type_info
(*Logic Type
*)| Comp of Frama_c_kernel.Cil_types.compinfo * datakind
(*C-code struct or union
*)
A type is never registered in a Definition.t
type lfun = private
| ACSL of Frama_c_kernel.Cil_types.logic_info
(*Registered in Definition.t, only
*)| CTOR of Frama_c_kernel.Cil_types.logic_ctor_info
(*Not registered in Definition.t directly converted/printed
*)| FUN of lsymbol
(*External or Generated logic symbol
*)
and lsymbol = {
m_category : lfun Qed.Logic.category;
m_params : Qed.Logic.sort list;
m_result : Qed.Logic.sort;
m_typeof : tau option list -> tau;
m_source : source;
m_coloring : bool;
}
and source =
| Generated of WpContext.context option * string
| Extern of Qed.Engine.link extern
Must not be a builtin
val extern_s :
library:library ->
?link:Qed.Engine.link ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
?typecheck:(tau option list -> tau) ->
string ->
lfun
val extern_f :
library:library ->
?link:Qed.Engine.link ->
?balance:balance ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
?typecheck:(tau option list -> tau) ->
('a, Format.formatter, unit, lfun) format4 ->
'a
balance just give a default when link is not specified
val extern_p :
library:library ->
?bool:string ->
?prop:string ->
?link:Qed.Engine.link ->
?params:Qed.Logic.sort list ->
?coloring:bool ->
unit ->
lfun
val extern_fp :
library:library ->
?params:Qed.Logic.sort list ->
?link:string ->
?coloring:bool ->
string ->
lfun
val generated_f :
?context:bool ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
('a, Format.formatter, unit, lfun) format4 ->
'a
Sorting and Typing
type of pointers
type of floats
polymorphism
definitions
LFuns are unique by name and context
Logic Formulae
Fresh Variables and Constraints
Substitutions
Simplifiers
iter_consequence_literals assume_from_litteral hypothesis
applies the function assume_from_litteral
on literals that are a consequence of the hypothesis
(i.e. in the hypothesis not (A && (B || C) ==> D)
, only A
and not D
are considered as consequence literals).
For why3_api but circular dependency