5.2.1 Logique Intuitionniste
Le λ-calcul peut encoder un système de preuves. C’est la correspondance de
Curry-Howard. Ce système de preuves est la Logique Intuitionniste, ou plus précisément la
Logique Implicative Minimale [Joh37]. Les formules sont données par
A, B
def=α|A →B
On la rappelle dans la Figure5.1 en déduction naturelle. Les jugements sont de la forme
Γ `
nA, où Γ est un ensemble de formules. Ce système de preuves capture les formules
de la Logique Intuitionniste (sans les opérateurs ∧ et ∨). Ce système est équivalent à la
version en calcul des séquents donnée dans la Figure 5.2 [GTL89].
Théorème 5.2.1. Le jugement Γ `
nA est dérivable si et seulement si le jugement
5.2. Interprétation logique : lambda-calcul simplement typé 55
Γ, A`
nA
Γ, A`
nB
Γ`
nA→B
Γ`
nA→B Γ`
nA
Γ`
nB
Figure 5.1 – Logique Implicative Minimale en déduction naturelle
A`
sA
Γ`
sA ∆, A`
sB
Γ,∆`
sB
Γ`
sA ∆, B `
sC
Γ,∆, A→B `
sC
Γ, A`
sB
Γ`
sA →B
Γ, A, A`sB
Γ, A`s B
Γ`s B
Γ, A`sB
Figure 5.2 – Logique Implicative Minimale en calcul des séquents
5.2.2 Syntaxe pour la Logique Intuitionniste
Leλ-calcul fait un bon terme de preuve pour la Logique Intuitionniste. Chaque formule
Adevient un type d’un terme, et chaque formule de l’environnement Γ est associée à une
variable libre de ce terme. On note Γ = x
1: A,· · ·, x
n: A
ncette association, où toutes
les variables λx
isont distinctes (on pourra s’en assurer par α-renommage). Un jugement
est de la forme Γ`
nt : A (resp. Γ `
st : A), le système de types en déduction naturelle
(resp. calcul des séquents) est donné par la Figure5.3(resp.5.4). Ces deux systèmes sont
encore équivalents
Théorème 5.2.2. Le jugement Γ `
nt : A est dérivable si et seulement si le jugement
Γ`
st:A l’est.
Par exemple, la dérivation
Γ`
nt
1:A→B Γ`
nt
2:A
Γ`
nt
1t
2:B
devient
Γ`
st
1:A→B
Γ`
st
2:A x:A `
sx:A
Γ, f :A→B `
sf t
2:B
Γ,Γ`
st
1t
2:B
Γ`
st
1t
2:B
On a donc associéà chaque preuve en Logique Intuitionnisteun terme enλ-calcul, dont
la preuve est sa dérivation de typage. L’ensemble des termes bien typés (ceux ayant une
56 Chapitre 5. Introduction : λ-calcul
Γ, x:A`
nx:A
Γ, x:A`
nt :B
Γ`
nλx.t :A→B
Γ`
nt
1:A →B Γ`
nt
2:A
Γ`
nt
1t
2:B
Figure 5.3 – Typage duλ-calcul en déduction naturelle
x:A`
sx:A
Γ`
st
0:A ∆, x:A`
st:B
Γ,∆`
st[x/t
0] :B
Γ`
st
0:A ∆, x:B `
st:C
Γ,∆, f :A→B `
st[x/f t
0] :C
Γ, x:A`
st :B
Γ`
sλx.t :A→B
Γ, y :A, z :A`st :B
Γ, x:A`
st[y/x][z/x] :B
Γ`s t:B
Γ, x:A`
st:B
Figure 5.4 – Typage duλ-calcul en calcul des séquents
dérivation de typage) est un sous-ensemble strict de l’ensemble des termes du λ-calcul.
Par exemple, le terme λx.xx n’est pas bien typé.
Cet ensemble est stable par réduction.
Théorème 5.2.3 (Réduction du sujet). Si t→t
0et Γ`t :A, alorsΓ`t
0:A.
5.3 Conclusion
Dans ce chapitre introductif, on a montré l’exemple original d’association d’un système
logique avec un langage de programmation. À partir de cet exemple, on a donné les
notations communes que nous utiliserons dans tous les langages de cette partie.
Chapitre 6
Logique linéaire
L’utilisation du cadre de la Logique Linéaire avec le langage Λ
Rdonne une nouvelle
interprétation de la modalité !, qui ne sera plus utilsée pour le contrôle des ressources, mais
pour la séparation des données et des programmes. D’autre part, certains phénomènes
observables en Logique Linéaire trouveront echo dans notre travail dans un contexte tout
autre. Le problème de la cohérence, par exemple, est lié aux problèmes de confluence dans
un langage avec des programmes gelés (sous forme de données) (voir Section7.3.2).
6.1 Introduction
6.1.1 Gestion des ressources
L’idée de la Logique Linéaire est de comptabiliser les ressources consommées dans la
preuve. Parconsommé on entend utilisé dans la règle de l’axiome :
Axiom
A`A
Par exemple, le séquentA, B `An’est a priori pas dérivable, car l’hypothèseB ne serait
pas utilisée. C’est pourquoi, les règles de contraction et d’affaiblissement sont interdites
dans le cas général.
D’autre part, le partage des ressources dans la dérivation d’une preuve est elle aussi
contrôlée : en logique classique, le connecteur∧ peut donner lieu à deux règles de
dériva-tion
Γ`A ∆`B
Γ,∆`A∧B ou
Γ`A Γ`B
Γ`A∧B
Dans la première version (dite multiplicative), les ressources sont partagées entre les deux
branches de la preuve, il n’y a donc pas de création de ressources, alors que dans la
deuxième (dite additive), on garde les mêmes ressources dans les deux branches :
cha-cune des ressources est donc dupliquée. Cette distinction donne lieu à deux connecteurs
conjonctifs : ⊗ (multiplicatif) et & (additif). De même la disjonction ∨ est également
découpée en deux connecteurs `(multiplicatif) et ⊕ (additif).
58 Chapitre 6. Logique linéaire
Axiom
A`A
Cut
Γ`B ∆, B `A
∆,Γ`A
Contraction
Γ,!A,!A`B
Γ,!A`B
Weakening
Γ`B
Γ,!A`B
(-Right
Γ, A`B
Γ`A(B
(-Left
Γ`A ∆, B `C
Γ,∆, A(B `C
Dereliction
Γ, A`B
Γ,!A`B
Promotion
!Γ`A
!Γ`!A
Figure 6.1 – Logique Linéaire Intuitionniste
6.1.2 Exponentielles
Afin d’encadrer les duplications structurelles des ressources (c’est à dire les
duplica-tions non liées à des connecteurs logiques), on utilise lesexponentielles ! et ?. La première
décrit une ressource que l’on peut utiliser à volonté (les duplications (contractions) sont
autorisées) ou supprimer (affaiblissement), et la deuxième est son dual : ¬!A = ?¬A et
¬?A= !¬A.
6.1.3 Logique Linéaire Intuitionniste
Nous nous limiterons dans ce travail à l’étude de la logique linéaire intuitionniste (ILL).
D’autre part nous n’étudierons pas le comportement calculatoire des opérateurs ⊗,⊕,&
et`. Nous ne nous intéresserons qu’à l’exponentielle ! de la logique linéaire, et aux types
fonctions (A(B). L’ensemble des formules est donné inductivement par
A, B
def=α|A(B|!A
oùαdésigne une formule atomique. On présente dans la Figure6.1les règles de la Logique
Linéaire Intuitionniste en calcul des séquents. Les règlesAxiom, Cut, (-Right et (
-Left sont les règles habituelles de la Logique Intuitionniste. Les règles Weakening et
Contractionsont adaptées à la logique linéaire, c’est à dire qu’on ne peut supprimer ou
dupliquer que les termes de la forme !A. Enfin, les règles Dereliction et Promotion
sont les règles d’introduction à gauche et à droite de l’exponentielle !.
6.1.4 Syntaxe pour la Logique Linéaire Intuitionniste
On souhaite associer à chaque preuve en Logique Linéaire Intuitionniste un terme
encodant l’arbre de la preuve. On utilise une version étendue du λ-calcul. On cherche à
établir une correspondance, à la Curry - Howard. Par rapport à sa syntaxe, on ajoute
les termes !t correspondant au type !A. On ajoute aussi le destructeur let!x=t int
t
def=x|λx.t|t t|!t|let!x=tint
On utilise ici le système dont Wadler [Wad93] se sert pour résoudre les problèmes de
Dans le document
Réflexion, calculs et logiques
(Page 70-75)