Introduction au λ-calcul

Transcription

Introduction au λ-calcul
Introduction au λ-calcul
Khelifa SABER
LAIC
&
LAMA
(Université de Savoie)
14 novembre 2006
1
Plan
1.
Quelques définitions
• Syntaxe
• Calcul et réduction
• Codage des entiers
2.
Principaux théorèmes
• Confluence
• Réductions parallèles
• Standardisation
3.
Typage du λ-calcul
• Le λ-calcul simplement typé
• Forte normalisation
• Extension au λµ-calcul
2
Un peu d’histoire
1. Inventé par le logicien américain Alonzo
Church dans les années 30. Pour fournir un
fondement au mathématiques plus simple
que la théorie des ensembles. Basé sur la
notion de fonction.
2. Cette initiative a échoué, le λ-calcul a un
pouvoir expressif plus faible que la théorie
des ensembles.
3. Par contre, il a le même pouvoir d’expression que les machines de Turing.
4. Ce qui fournit un bon outil pour fonder la
notion de fonction calculable (traitement
de la récursivité).
5. Explosion du λ-calcul dans les années 70
due à l’informatique, et grâce aussi à la
découverte de L’isomorphisme de CurryHoward.
3
La syntaxe...
Définition
1. Les variables : x, y, z,...
2. L’abstraction : si x est une variable et t un
terme, alors λx.t est un terme.
3. L’application : si t et u sont deux termes,
alors, t u est un terme.
T := X | λX .T | T T
4
...La syntaxe
Exemples
• I = λx.x
• ∆ = λx.x x
• Ω = (λx.x x) λx.x x = ∆ ∆
• V = λy.λz.y , F = λy.λz.z , N = λx.(x F ) V
La α-équivalence (α-renommage)
• λx.x et λy.y sont identifiés.
• λf.λx.x f , λx.λf.f x , λx.λy.y x et λy.λz.z y
sont identifiés.
5
La β-réduction...
(λx.u) v −→β u[x := v]
Définition
1. (λx.u) v −→β u[x := v]
2. Si u −→β u0, alors λx.u −→β λx.u0
3. Si u −→β u0, alors u v −→β u0 v
et v u −→β v u0
Exemples
• (I) t = (λx.x) t −→β x[x := t] = t
• (N ) V = (λx.(x F ) V ) V −→β (V F ) V −→β
F
• (N ) F = (λx.(x F ) V ) F −→β (F F ) V
V
−→β
• Ω = (λx.x x) λx.x x −→β (λx.x x) λx.x x −→β
...
6
... La β-réduction
Définition
u[x := v] est obtenu de u en remplaçant les
occurences libres de x par v.
Attention !
(λx.λy.x) y z −→β ((λy.x)[x := y])z
= (λy.y) z
−→β z
!!!
Solution Le α-renommage :
On renomme d’abord les variables liées de la
fonction qui sont libres dans l’argument.
D’où
(λx.λy.x) y z = (λx.λa.x) y z
−→β ((λa.x)[x := y]) z
= (λa.y) z
−→β y
7
Codage des entiers...
Définition
1. 0 = λf.λx.x
2. 1 = λf.λx.f x
3. n = λf.λx.(f
)...(f ) x
| {z }
n f ois
4. s = λn.λf.λx.(f ) ((n) f ) x
5. ± = λn.λm.λf.λx.((n) f ) ((m) f ) x
6. × = λn.λm.λf.(n) (m) f
Exemples
• (s) 2 = (λn.λf.λx.(f ) ((n) f ) x) 2
−→β λf.λx.(f ) ((2) f ) x
= λf.λx.(f ) ((λf.λx.(f ) (f ) x) f ) x
−→∗β λf.λx.(f ) (f ) (f ) x
=3
8
...Codage des entiers
• (±) 2 3 = (λn.λm.λf.λx.((n) f ) ((m) f )) 2 3
−→∗β λf.λx.((2) f ) ((3) f ) x
−→∗β λf.λx.(λx.(f ) (f ) x) (f ) (f ) (f ) x
−→β λf.λx.(f ) (f ) (f ) (f ) (f ) x = 5
Exercice
Trouver un autre terme pour coder la fonction
successeur s .
Trouver un terme pour coder l’exponentielle.
9
Combinateur de point fixe
Théorème
Tout λ- terme M a un point fixe N , M N =β N .
Mieux encore
Théorème
Il existe un terme Y appelé combinateur de
point fixe qui trouve le point fixe de chaque
terme M , Y M est le point fixe de M
Preuve
1. A = λz.λx.(x)((z) z) x, et Y = A A
On a Y M −→∗ M (Y M ).
2. Y = λf.(λx.f (x x)) (λx.f (x x))
10
Confluence
Théorème (Confluence locale)
Si u −→ u1 et u −→ u2, alors il existe u3 tel
que : u1 −→∗ u3 et u2 −→∗ u3.
Théorème (Confluence)
Si u −→∗ u1 et u −→∗ u2, alors il existe u3 tel
que : u1 −→∗ u3 et u2 −→∗ u3.
Corollaire (Unicité de la forme normale) Si
v et w sont deux formes normales de u, alors
v = w.
11
Réductions parallèles
Définition
1. u u
2. u u0, alors (λx.u) λx.u0
3. u u0 et v v 0, alors u v u0 v 0
4. u u0 et v v 0, alors (λx.u) v u0[x :=
v 0]
Lemme −→β ⊆ ⊆ −→∗β
Théorème (Confluence forte)
Si u u1 et u u2, alors il existe u3 tel que :
u1 u3 et u2 u3.
12
Réduction standard
Définition (u −→∗st u0)
1. si u = λx.t, alors u0 = λx.t0 où t −→∗st t0
2. si u =
ti −→∗st
(x) t1...tn, alors u0 = (x) t01...t0n où
t0i
3. si u = (λx.t) v v1...vn, alors ou bien :
0 où t −→∗ t0 , v −→∗
• u0 = (λx.t0) v 0 v10 ...vn
st
st
v 0 et vi −→∗st vi0
Ou bien
• u −→ (t[x := v]) v1...vn −→∗st u0
13
Standardisation et stratégies
de réduction
Théorème
Si u −→∗ u0, alors u −→∗st u0.
Définition
La réduction gauche d’un terme consiste à réduire
à chaque étape le redex le plus à gauche.
Corollaire
si u est faiblement normalisable alors la réduction
gauche de u aboutit à sa forme normale.
Exemple
(λz.y) (λx.x
x)
λx.x x} −→ y
|
{z
Ω
14
Le λ-calcul simplement typé
Définition
Les types : les formules de la logique proposionnelle implicative.
Un jugement Γ ` t : A
t un terme, A un type
et Γ = {xi : Ai / 1 ≤ i ≤ n} un contexte.
Γ, x : A ` x : A
Γ, x : A ` u : B
→i
Γ ` λx.u : A → B
ax
Γ`u:A→B Γ`v:A
→e
Γ`uv:B
15
La forte normalisation
Théorème
Le λ-calcul typé est fortement normalisable.
Preuve(Les candidats de réductibilités)
1. Associer à chaque type A un ensemble de
termes fortement normalisables |A| appelé
interprétation de A.
2. Montrer que chaque terme est dans l’interprétation de sont type.
16
Le λµ-calcul...
La syntaxe
X = {x, y, z, ...} variables intuitionnistes.
A = {a, b, c, ...} variables classiques.
T := x | λx.t | t u | µa.t | (a t)
Le typage
Γ, x : A ` x : A; ∆
ax
Γ, x : A ` u : B; ∆
→i
Γ ` λx.u : A → B; ∆
Γ ` u : A → B; ∆ Γ ` v : A; ∆
→e
Γ ` u v : B; ∆
Γ ` u : ⊥; ∆, a : A
⊥e
Γ ` µa.u : A; ∆
Γ ` u : A; ∆, a : A
⊥i
Γ ` (a u) : ⊥; ∆, a : A
17
Les réductions
1. (λx.u) v −→β u[x := v]
2. (µa.u) v −→µ µa.u[a :=∗ v]
Où u[a :=∗ v] est obtenu de u en remplaçant chaque sous terme de la forme (a t)
par (a (t v)).
Théorème
Le λµ-calcul est confluent.
Théorème
Le λµ-calcul typé est fortement normalisable.
18
Références
1.
H. Barendregt. The Lambda Calculus : its Syntax and Semantics. North-Holland, Amsterdam, Holland, 1984.
2.
R. David. A simple proof of basic results in λ calculus. Infomatique théorique/Computer Science, p.1401-1406, 1995.
3.
R. David et K.Nour. Notes de DEA 2002/2003 Université
de Savoie.
4.
J.-L. Krivine. Lambda calcul, types et modèles. Masson, Paris, 1990.
5.
M. Parigot. λµ-calculus : An algorithm interpretation of classical natural deduction. Lecture Notes in Artificial Intelligence
(624), pp. 190-201. Springer Verlag 1992.
6.
M. Parigot. Proofs of strong normalization for second order
classical natural deduction. Journal of Symbolic Logic, 62 (4),
pp. 1461-1479, 1997.
19

Documents pareils