package frama-c
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Platform dedicated to the analysis of source code written in 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
-
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.0-Cobalt.tar.gz
sha256=25885f89daa478aeafdd1e4205452c7a30695d4b3b3ee8fc98b4a9c5f83f79c2
doc/qed/Qed/Logic/index.html
Module Qed.LogicSource
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 ysifff=g && xi=yi| Injection(*
*)f xs = f ysiffxi=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