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
-
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
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
frama-c-27.1-Cobalt.tar.gz
sha256=5b13574a16a58971c27909bee94ae7f37b17d897852b40c768a3d4e2e09e39d2
doc/qed/Qed/Logic/index.html
Module Qed.Logic
Source
First Order Logic Definition
Source
type 'a operator = {
invertible : bool;
associative : bool;
commutative : bool;
idempotent : bool;
neutral : 'a element;
absorbant : 'a element;
}
Algebraic properties for user operators.
Source
type 'a category =
| Function
(*logic function
*)| Constructor
(*
*)f xs = g ys
ifff=g && xi=yi
| Injection
(*
*)f xs = f ys
iffxi=yi
| Operator of 'a operator
Algebraic properties for functions.
Quantifiers and Binders
Representation of Patterns, Functions and Terms
Source
type ('f, 'a, 'd, 'x, 'b, 'e) term_repr =
| True
| False
| Kint of Z.t
| Kreal of Q.t
| Times of Z.t * 'e
(*mult: k1 * e2
*)| Add of 'e list
(*add: e11 + ... + e1n
*)| Mul of 'e list
(*mult: e11 * ... * e1n
*)| Div of 'e * 'e
| Mod of 'e * 'e
| Eq of 'e * 'e
| Neq of 'e * 'e
| Leq of 'e * 'e
| Lt of 'e * 'e
| Aget of 'e * 'e
(*access: array1
*)idx2
| Aset of 'e * 'e * 'e
(*update: array1
*)idx2 -> elem3
| Acst of ('f, 'a) datatype * 'e
(*constant array
*)type -> value
| Rget of 'e * 'f
| Rdef of ('f * 'e) list
| And of 'e list
(*and: e11 && ... && e1n
*)| Or of 'e list
(*or: e11 || ... || e1n
*)| Not of 'e
| Imply of 'e list * 'e
(*imply: (e11 && ... && e1n) ==> e2
*)| If of 'e * 'e * 'e
(*ite: if c1 then e2 else e3
*)| Fun of 'd * 'e list
(*Complete call (no partial app.)
*)| Fvar of 'x
| Bvar of int * ('f, 'a) datatype
| Apply of 'e * 'e list
(*High-Order application (Cf. binder)
*)| Bind of binder * ('f, 'a) datatype * 'b
representation of terms. type arguments are the following:
- 'z: representation of integral constants
- 'f: representation of fields
- 'a: representation of abstract data types
- 'd: representation of functions
- 'x: representation of free variables
- 'b: representation of bound term (phantom type equal to 'e)
- 'e: sub-expression
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page