• Aucun résultat trouvé

Interprétation logique : lambda-calcul simplement typé

Dans le document Réflexion, calculs et logiques (Page 70-75)

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

=α|AB

On la rappelle dans la Figure5.1 en déduction naturelle. Les jugements sont de la forme

Γ `

n

A, 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 Γ `

n

A est dérivable si et seulement si le jugement

5.2. Interprétation logique : lambda-calcul simplement typé 55

Γ, A`

n

A

Γ, A`

n

B

Γ`

n

AB

Γ`

n

AB Γ`

n

A

Γ`

n

B

Figure 5.1 – Logique Implicative Minimale en déduction naturelle

A`

s

A

Γ`

s

A, A`

s

B

Γ,∆`

s

B

Γ`

s

A, B `

s

C

Γ,, AB `

s

C

Γ, A`

s

B

Γ`

s

AB

Γ, 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

n

cette association, où toutes

les variables λx

i

sont distinctes (on pourra s’en assurer par α-renommage). Un jugement

est de la forme Γ`

n

t : A (resp. Γ `

s

t : 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 Γ `

n

t : A est dérivable si et seulement si le jugement

Γ`

s

t:A l’est.

Par exemple, la dérivation

Γ`

n

t

1

:AB Γ`

n

t

2

:A

Γ`

n

t

1

t

2

:B

devient

Γ`

s

t

1

:AB

Γ`

s

t

2

:A x:A `

s

x:A

Γ, f :AB `

s

f t

2

:B

Γ,Γ`

s

t

1

t

2

:B

Γ`

s

t

1

t

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`

n

x:A

Γ, x:A`

n

t :B

Γ`

n

λx.t :AB

Γ`

n

t

1

:AB Γ`

n

t

2

:A

Γ`

n

t

1

t

2

:B

Figure 5.3 – Typage duλ-calcul en déduction naturelle

x:A`

s

x:A

Γ`

s

t

0

:A, x:A`

s

t:B

Γ,∆`

s

t[x/t

0

] :B

Γ`

s

t

0

:A, x:B `

s

t:C

Γ,, f :AB `

s

t[x/f t

0

] :C

Γ, x:A`

s

t :B

Γ`

s

λx.t :AB

Γ, y :A, z :A`st :B

Γ, x:A`

s

t[y/x][z/x] :B

Γ`s t:B

Γ, x:A`

s

t: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 tt

0

et Γ`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 Λ

R

donne 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

Γ,∆`AB ou

Γ`A Γ`B

Γ`AB

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

α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)