0% ont trouvé ce document utile (0 vote)
206 vues19 pages

Introduction au λ-calcul et ses concepts clés

Le document présente une introduction au λ-calcul, en définissant la syntaxe des λ-termes, les notions de variables libres et liées, la substitution et la β-réduction. Il donne également des exemples de représentation de fonctions calculables et récursives dans le λ-calcul.

Transféré par

Hou Da
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
206 vues19 pages

Introduction au λ-calcul et ses concepts clés

Le document présente une introduction au λ-calcul, en définissant la syntaxe des λ-termes, les notions de variables libres et liées, la substitution et la β-réduction. Il donne également des exemples de représentation de fonctions calculables et récursives dans le λ-calcul.

Transféré par

Hou Da
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module THP Master1 2020/2021

Introduction au λ-calcul

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Définition des λ-termes

Syntaxe du langage du λ-calcul


L’alphabet du lambda-calcul (λC) se compose:
1. d’un ensemble de variables {x, y, z, ...}
2. de symboles auxilliaires λ, (, et ).
Les termes du lambda-calcul (λ-termes) sont définis inductivement
par:
1. chaque variable est un λ-terme,
2. si X et Y sont des λ-termes alors (XY) est un λ-terme,
3. si X est un λ-terme et x une variable alors (λx.X) est un
λ-terme.

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Exemples de λ-termes

λ-termes syntaxiquement corrects.


λx.x; (xy); (λxλy.(x(xy))); (λx.xy)(λxλy.(x(xy)))

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Convention d’écriture

Conventions

Associativité à gauche de l’application:

(((xy)z)t) − − − − − − − − − − − −− > (xyzt)

Associativité à droite de l’abstraction

λxλyλz.M − − − − − − − − − − − − − − − − − − > (λx(λy(λz.M)))

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Notion de Variable libre, variable liée

M ≡ λxyz.(xzt)y
1. Variables liées de M : x, y et z
2. Variable libre de M: t

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Notion de Substitution

Notion de Substitution
L’opération de substitution du λ-terme N à toutes les occurrences
libres de x dans M, notée [N/x]M, est définie par les clauses
suivantes:
1. ([N/x])x ≡ N
2. ([N/x])a ≡ a pour tout atome a̸=x
3. ([N/x])(PQ) ≡ ([N/x]P)([N/x]Q)
4. ([N/x])(λx.P) ≡ λx.P
5. ([N/x])(λy.P) ≡ λy.[N/x]P si y̸=x et y∈FV(N)
/ ou x∈FV(P)
/
6. ([N/x])(λy.P) ≡ λz.[N/x]([z/y]P) si y̸=x , y∈FV(N) ,
x∈FV(P) et z∈FV(NP)
/
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


β-réduction

Un λ-terme de la forme (λx.M)N est appelé β-redex, il lui


correspond le β-contractum [N/x]M. Le remplacement dans un
λ-terme d’un β-redex par son β-contractum définit la
β-contraction (élémentaire):

(β) (λx.M)N → [N/x]M

Une suite finie de β-contractions et de changements de variables


liées est appelée λβ-réduction. Si une telle λβ-réduction change le
λ-terme X en un λ-terme Y, nous dirons que X se β-réduit à Y,
noté:

X →λβ Y

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Exemples de β-réduction

1. (λx.x(xy))N →λβ [N/x](x(xy)) ≡ N(Ny).


2. (λx.y)N →λβ [N/x]y ≡ y.
3.
(λx.xx)(λy.y)N →λβ [λy.y/x](xx)N
≡ (λy.y)(λy.y)N
→ [λy.y/y]yN
≡ (λy.y)N
→ [N/y]y
≡ N.

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Définition: λβ-égalité

La β-réduction engendre la relation d’équivalence appelée β-égalité


ou β-conversion ( notée =λβ ):
λ-terme P est β-égal ou β-convertible au λ-terme Q (P =λβ Q) ssi:
∃ P0 , P1 ,...,Pn , λ-termes et (n ≥ 0) telle que:
P0 ≡ P
Pn ≡ Q et
Pi →λβ Pi+1 ou
Pi+1 →λβ Pi et (0 ≤ i < n).

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Propriétés λβ-réduction

1ème propriété de Church-Rosser. Si P →λβ M et P˙→λβ ˙N ,


alors il existe un λ-terme T tel que:

M →λβ T et N →λβ T.

2ème propriété de Church-Rosser. Si P =λβ Q, alors il existe un


λ-terme T tel que :

P →λβ T et Q →λβ T

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Propriétés λβ-réduction

Toute fonction possède un point fixe:

FX = X
Soit: Y = ((λx y.(y(x x y)))(λx y.(y(x x y)))) On obtient:

F(YF) = (YF)

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Propriétés λβ-réduction

Un λ-terme ne contenant aucun β-redex est sous β-forme normale .


Exemple:
- le terme (λx.(λy.xy)t)
- le terme (λx.(λy.xyt))
- le terme (λx.(λy.xyt))N

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions calculables

Représentation des entiers naturels dans le λ-calcul:


1. 0 ≡ λxy.y
2. 1 ≡ λxy.xy
3. 2 ≡ λxy.x(xy)
4. 3 ≡ λxy.x(x(xy))
...

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions calculables

Quelques exemples simples

1. successeur; S ≡ λxyz.y(xyz)
2. fonction Zéro; Z ≡ λx.0
3. fonction projection; Uni ≡ λx1 x2 . . . xi . . . xn .xi
4. addition; add ≡ λfgxy.fx(gxy)
5. multiplication; mult ≡ λxyz.x(yz)

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions récursives dans λ-calcul
Toute fonction primitive récursive f peut être définie dans le
λ-calcul.
La démonstration est par induction sur la définition de f. Le cas le
moins évident est celui où f est définie par itération.
Dans le cas où la fonction f est une fonction définie par
composition:

f(x1 , . . . , xm ) = g(h1 (x1 , . . . , xm ), . . . , hp (h1 (x1 , . . . , xm )))


la fonction f définissant f est donnée par :
f = λx1 . . . xm .g(h1 x1 . . . xm ) . . . (hp x1 . . . xm )).
Pour démontrer que le schéma de récursion primitive est
définissable supposons que l’on peut construire un terme R tel que
pour tout X, Y, k,
{
RXY0 = X,
RXYk + 1 = Yk(RXYk) .
.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions récursives dans λ-calcul

Soit f une fonction définie par récursion:


{
f(0, m1 , . . . , mn ) = g(m1 , . . . , mn )
f(k + 1, m1 , . . . , mn ) = h(k, f(k, m1 , . . . , mn ), m1 , . . . , mn )

Supposons donnés g, h les termes qui représentent les fonctions g


et h. Nous pouvons choisir le terme f qui représente f comme suit:

f = λux1 ...xm .(R(gx1 ...xm )(λuv.huvx1 ...xm )u)

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions récursives dans λ-calcul

f = λux1 ...xm .(R(gx1 ...xm )(λuv.huvx1 ...xm )u)

Un exemple d’application:
{
add(0, x) = U22 (0, x)
f(k + 1, x) = S(f(k, x))

add = λux.R(x)(λuv.Sv)(u)

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


Représentation des fonctions récursives dans λ-calcul

Exemples de fonctions calculables


true = λx y.x (Valeur booléenne Vraie)
false = λx y.y (Valeur booléenne Faux)
not = λzxy.zxy (négation booléenne)
ifzero = λx.(x(K faux)K) (Test à zero)
pred = λx y z.(x(λp q.(q(p y)))(K z)I) (prédecesseur)
diff = λx y.(y pred x) (Soustraction)
fix = ((λx y.(y(x x y)))(λx y.(y(x x y)))) (Point fixeur)
lessq = λx y.(diff x y(K faux)K) (Inferieur ou egal))
if = λxyz.xyz. (fonction de test)

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul


λ-calcul et calculabilité

Thèse de Church:

Toute fonction calculable est


λ-définissable

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

Pr. M. Mezghiche Introduction au λ-calcul

Vous aimerez peut-être aussi