• Aucun résultat trouvé

Lambda Calcul Rappels du cours

N/A
N/A
Protected

Academic year: 2022

Partager "Lambda Calcul Rappels du cours"

Copied!
2
0
0

Texte intégral

(1)

Master Informatique FIIL 201516

Preuves Interactives et Applications 17 septembre 2015

\piaurl

Lambda Calcul Rappels du cours

La règle de β-réduction est : (λx.t)u−→βt[x←u]

La relation de β-réduction est étendue à l'ensemble des termes par congruence (le calcul peut avoir lieu n'importe où dans le terme)

sit−→βt0 alors

• t u−→β t0u

• u t−→β u t0

• λx.t−→βλx.t0

Par dénition ∆ def= (λx.(x x)) (λx.(x x))

on a vu que ∆se réduit en une étape en lui même∆−→β ∆.

Exercice 1

Explorer les diérentes réductions possibles à partir du termet def= (λx y.y) ∆, que constatez-vous ?

Correction : Le termets'écrit(λx.(λy.y) ∆)et donc une étape deβ-reduction donne le termeλy.yqui est en forme normale.

Mais on a aussi ∆−→β ∆donc par congruence(λx y.y) ∆−→β(λx y.y) ∆et donc t−→βt.

A partir du même terme on peut donc créer une réduction innie ou bien obtenir une forme normale suivant la stratégie adoptée dans le choix de l'endroit de la réduction.

Exercice 2

Soit le termeYf

def= (λx.f(x x))(λx.f(x x))

• montrer queYf se réduit enf Yf. On dit queYf est unpoint-xe def.

Correction : On noteδf le termeλx.f(x x)on a doncYffδf

En remplaçant δf par sa dénition on trouve (λx.f(x x))δf on peut appliquer une β-réduction et rem- placer xpar δf dansf(x x)on obtientf(δfδf)ce qui est exactementf Yf.

• le termeYf peut-il être typé dans leλ-calcul simplement typé ?

Correction : Dans le λ-calcul simplement typé, on ne peut pas typé le terme(x x) car il faut à la fois quexest un type de la forme α→β et un type de la forme α. or pour des raisons de taille on ne peut pas trouver de types αetβ tels que α→β =α

Exercice 3

1. Soit le termeλf x.f(n f x)

• dire quelles sont ses variables libres et liées

• donner son type le plus général

• ce terme est-il en forme normale ? Correction :

• n est une variable libre,f etxsont des variables liées

• le type le plus général est(α→β)→γ→β avecn: (α→β)→γ→α

1

(2)

2. On note N le type (α → α) → (α → α). Pour tout entier naturel, n ∈ N, on note n˜ le terme λf x.(f . . .(f

| {z }

nfois

x). . .).

• donner les termes correspondant à˜0,˜1et ˜2.

Correction : ˜0 def= λf x.x ˜1 def= λf x.f x ˜2 def= λf x.f(f x)

• montrer que pour tout entier n, on an˜:N

Correction : En appliquant les règles de typage on est ramené à montrer que f :α→α, x:α`(f . . .(f

| {z }

nfois

x). . .) :α

ce qui se fait par une simple récurrence sur n.

• montrer que le termeλn f x.f(n f x)a pour typeN →N (on construira la dérivation).

Dans la suite ce terme est notés

Correction : on note ρl'environnement de typagen:N, f:α→α, x:α

ρ`f :α→α

ρ`n: (α→α)→α→α ρ`f :α→α ρ`(n f) :α→α

ρ`(n f) :α→α ρ`x:α

ρ`(n f x) :α n:N, f :α→α, x:α`f(n f x) :α n:N, f :α→α`λx.f(n f x) :α→α

n:N`λf x.f(n f x) :N

`λn f x.f(n f x) :N →N

• quelle est la forme normale du termes˜n?

Correction : On a s˜n−→β n]+ 1 qui est en forme normale. En eet sn˜ −→β λf x.f(˜n f x)on a par ailleurs ˜n f x−→β .−→β(f . . .(f

| {z }

n fois

x). . .), on en déduitsn˜−→β λf x.(f . . .(f

| {z }

n+1 fois

x). . .)

3. utiliser Isabelle pour vérier vos résultats

Correction : voir le chier http: // www. lri. fr/ ~paulin/ PreuvesInteractives/ tp1/ Lambda. thy

2

Références

Documents relatifs

Pour tout réel k , il existe un unique nombre réel dont le cube est k.. Ce nombre est appelé racine cubique

Donner alors la représentation en escalier de la suite u , en indiquant au moins les quatre premiers

On a trois zones dans la mémoire: la zone des termes (où sont écrits les λ -termes à exécuter), la zone des environnements et la pile.. Dans la zone des environnements, on a des

Le premier paragraphe ci-dessous est une liste de petits exercices qui, sans faire le tour de la question, permet de se (re)familiariser avec le calcul matriciel. Dans le deuxième,

La différenciation pourra alors reposer sur des choix particuliers de variables didactiques (solutions entières, décimales ou fractionnaires, programmes de calcul réversibles ou

Le λ-calcul est un formalisme introduit par Church pour traduire l'aspect mécanique de l'évaluation dans les langages applicatifs (ou fonctionnels) notamment le traitement de

[r]

Pour rappel, un périphérique basse vitesse comporte seulement 3 endpoint (endpoint0 bidirectionnel IN/OUT, endpoint1 de sens IN et endpoint1 de sens OUT) tandis qu’un pleine ou