le lambda calcul r ductions causalit et d terminisme n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Le lambda-calcul : réductions, causalité et déterminisme PowerPoint Presentation
Download Presentation
Le lambda-calcul : réductions, causalité et déterminisme

Loading in 2 Seconds...

play fullscreen
1 / 52

Le lambda-calcul : réductions, causalité et déterminisme - PowerPoint PPT Presentation


  • 149 Views
  • Uploaded on

Le lambda-calcul : réductions, causalité et déterminisme. Gérard Berry. Collège de France Chaire Informatique et sciences numériques Cours 2, 2 décembre 2009. Le  -calcul pur. x , y , z ,... : variables  x . M : abstraction fonction de x de corps M

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Le lambda-calcul : réductions, causalité et déterminisme' - rumer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
le lambda calcul r ductions causalit et d terminisme

Le lambda-calcul : réductions, causalité et déterminisme

Gérard Berry

Collège de France

Chaire Informatique et sciences numériques

Cours 2, 2 décembre 2009

le calcul pur
Le -calcul pur
  • x, y, z,... : variables
  • x. M : abstraction fonction de x de corps M
  • (MN) : application d’une fonction à un argument
  • (x.M)N  M[N/x] : -réduction

0= f.x.x

1= f.x.fx

...

n= f.x.fn(x) = f(f(...f(x)...))

let recFactmsi m1 alors 1 sinon Mult(m, Fact(m1))

Fact = Y (FACT)

avec Y = (x. y.y(xxy)) (x. y.y(xxy))

Collège de France, G. Berry,

boucle r cursion ou point fixe
Boucle, récursion, ou point fixe

Fact(m)  if m1 then 1 elseMult(m, Fact(m1))

  • Récursion / point fixe

FactY (f. mif m1 then 1 elseMult(m, f(m1)))

  • Boucle

while e do p for (i=0; i<n; i++) p

  • Boucle récursion / point fixe : facile !

whilee do p  if e then { p; whilee do p }

Whilee p = if ethen { p; While e p }

While = Y (W. e. p. if ethen { p; W e p })

  • Récursion  boucle : dur !

La récursion est plus primitive que la boucle

G. Berry, Collège de France,

caml programmation fonctionnelle typ e
CAML : programmation fonctionnelle typée

En C / C++ : pointeurs, boucles, etc.

Bien mieux et plus sûr en CAML !

3

1

4

head

tail

A faire : [ 3; 1; 4 ]  [4; 2; 5 ]

# let rec mapf lst = match lst with

[] []

| head :: tail (f head) :: (map f tail);;

val map : ('a -> 'b) -> 'a list -> 'b list = <fun>

# let f n = n+1 in map f [3; 1; 4];;

: int list = [4; 2; 5]

Théorème : un programme bien typé ne peut pas

faire d’erreur non détectée à l’exécution

erreur de type
Erreur de type

oubli de “::”

# let recbadmapf lst= match lst with

[]-> []

| head :: tail -> (f head) (badmap f tail);;

valbadmap : ('a -> 'b list -> 'b list) -> 'a list -> 'b list = <fun>

# let f n = n+1 in badmapf [1; 2; 3];;

Characters 24-25:

let f n = n+1 in badmap f [1; 2; 3];;

^

Error: This expression has type int -> int but is here used with type

int -> 'a list -> 'a list

G. Berry, Collège de France,

G. Berry, Collège de France,

5

02/12/2009

r cursion et ordre sup rieur en calcul num rique
Récursion et ordre supérieuren calcul numérique

M

M2

M3

M4

M1

F(f, x) T (F, f, x) U (F, f, x)

G. Berry, Collège de France,

agenda
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

agenda1
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

interconvertibilit et coh rence
Interconvertibilité et cohérence
  • Mais nous avons caché quelque chose : le -calcul est-il cohérent? Par exemple, les entiers sont ils bien tous différents? mnsimn?

3+4 7  5+2

3+4 se calcule en 7, forme normale

et 7 est aussi la valeur de 5+2

M N

M

Q

S

*

*

*

*

*

P

R

N

interconvertibles

Le calcul ne change pas la valeur, il la rend plus lisible

G. Berry, Collège de France,

confuence church rosser
Confuence (Church-Rosser)

M

M

N1

N2

N

Théorème de Church-Rosser

=> forme normale unique

=> résultat déterministe

G. Berry, Collège de France,

interconvertibilit et coh rence1
Interconvertibilité et cohérence

M

Q

S

*

*

*

*

*

M N

P

R

N

=> Met N confluent

*

*

*

*

*

*

T

=> cohérence : mnsimn

G. Berry, Collège de France,

confluence locale le cas simple
Confluence locale – le cas simple

(3+4)+(8-3)

(3+4)+(8-3)

7+(8-3)

(3+4)+5

résidu

7+5

G. Berry, Collège de France,

confluence locale du calcul
Confluence locale du -calcul

(M)  (x.xx) ((y.y)M)

((y.y)M) ((y.y)M)

(x.xx)M

résidus

résidu

M((y. y) M)

MM

Les résidus de redex non réduits sont les mêmes

G. Berry, Collège de France,

disparition de redex
Disparition de redex

(x.z) ((y.y)M)

M

(x.z) M

*

*

N

z

Dans une réduction, un redex non réduit a

0, 1 ou plusieurs résidus

Certains calculs peuvent être inutiles

G. Berry, Collège de France,

probl me de r currence
Problème de récurrence

M

*

*

Argl !

Carreaux pas carrés !

G. Berry, Collège de France,

d veloppements finis curry feys
Développements finis (Curry & Feys)

Théorème : Soient R1, R2, ..., Rn des redex de M. Les réductions qui réduisent tous les Ri et leurs résidus sont finies et conduisent au même terme

M

*

*

M

réduire un

paquet de redex en un coup

N

M

G. Berry, Collège de France,

solution 2 lemme de newman
Solution 2 : lemme de Newman

Soit M fortement normalisable (toutes les réductions terminent).

Soit p(M) la longueur de la plus longue réduction de M.

montrons la confluence par récurrence sur p(M)

M

N

P

1. p(N)  p(M)

*

2. p(P)  p(M)

3. CQFD

G. Berry, Collège de France,

agenda2
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

cr ation de redex le cas simple
Création de redex – le cas simple

(3+4)+(8-3)

(3+4)+(8-3)

7+(8-3)

(3+4)+5

résidu

7+5

7+5 créé

12

G. Berry, Collège de France,

causalit la cr ation de redex
Causalité : la création de redex

()  (x.xx) ((y.y))

((y.y)) ((y.y))

(x.xx)

((y. y) )



 (z.z)(z.z)

créé

(z.z)

G. Berry, Collège de France,

agenda3
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

d veloppements finis g n ralis s
Développements finis généralisés
  • Familles de redex d’un terme : les classes obtenues par fermeture réflexive, transitive et symétrique de résidu

()  (x.xx) ((y.y))

((y.y)) ((y.y))

(x.xx)

3 familles

((y. y) )



 (x.x)(y.y)

créé

Théorème (Lévy) : toute réduction qui réduit seulement

des redex d’un nombre fini de familles est finie

G. Berry, Collège de France,

corollaire imm diat la confluence
Corollaire immédiat : la confluence

M

*

La confluence locale n’introduit pas de nouvelles familles

le lemme de Newman s’applique aux réductions finies des familles de redex initiales

G. Berry, Collège de France,

slide24

si Mult(2, Fact(2))0 alors Fact(2)

sinon si Fact(2)0 alors Mult(2, Fact(2))

sinon (Add(Mult(2, Fact(2))1, Fact(2)1)1)1

si

• 0

si

Add(•1, •1)1)1

• 0

Mult(2, •)

Fact(2)

Calculer sur les arbres

en partageant les sous-arbres communs

G. Berry, Collège de France,

les r sidus peuvent s embo ter
Les résidus peuvent s’emboîter !

(x.xx) (y.(z.z)yy)

(y.(z.z)yy) (y.(z.z)yy)

(z.z)(y.(z.z)yy) (y.(z.z)yy)

Théorème de Lévy : partager les redex de même

famille donnerait des réductions optimales.

Abadi-Gonthier-Lévy : mais les structures de

données adaptées sont dures et chères!

G. Berry, Collège de France,

agenda4
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

le probl me du ou parall le
Le problème du ou parallèle
  • En C, trois disjonctions booléennes sont possibles
    • OuS(e, e’) e | e’ :boucle si e ou e’ boucle
    • OuG(e, e’) e || e’ :si e alors vrai sinon e’

rend vrai si erend vrai,

même si e’ boucle

    • OuD(e, e’)  e’ || e : symétrique
  • Le parallélismeest-il possible ?
    • existe-t-ilOuP(e, e’)qui rend vraisil’un de eoue’
    • rend vrai, même sil’autre boucle ?

Réponse : non !

G. Berry, Collège de France,

approximations de termes
Approximations de -termes
  • On ajoute un nouveau terme , sans réduction.

Un -terme est un terme avec des.

  • Pour un terme M, le terme M est obtenu par remplacement des redex externes de M par 
  • On écrit M  N si on peut obtenir N en remplaçant des de M par des -termes quelconques

x.x((y.y)x) (z ((u.u)x))

x.xP (z)

x.x (z)

G. Berry, Collège de France,

th or mes sur l approximation
Théorèmes sur l’approximation

Théorème de monotonie : siM  N et siM a uneformenormale sans, alors N a la même forme normale

Théorème de stabilité : siM1 M et M2 M et siM1 et M2 ontuneformenormaleN sans , alors

M1M2a la mêmeformenormale.

M

M1

M2

M2

M1M2

N

G. Berry, Collège de France,

l impossibilit du vrai parall lisme
L’impossibilité du vrai parallélisme

Corollaire : Il n’existe pas de terme « ou parallèle »

OuP tel que

M1  OuPvrai*vrai

M2  OuPvrai*vrai

M3  OuPfauxfaux*faux

Preuve : Si OuP existe, on pose MOuPvraivrai

On a M1 M et M2 M

stabilité : M1 *vrai et M2 *vraiM1  M2 Oup *vrai

monotonie : Oup *vraiOupfauxfaux *vrai

confluence : contredit Oupfauxfaux*faux, contradiction !

G. Berry, Collège de France,

la s quentialit
La séquentialité
  • Théorème de séquentialité : siMN, siMn’a pas de formenormalemaisN en a une, alorsilexiste un dansM qui doitdevenir non-dans toutP Mqui auneformenormale.

point critique

pour le calcul

M

G. Berry, Collège de France,

corollaire
Corollaire
  • Corollaire : lafonction de Gustavesuivanten’est pas définissable :

Gusvraifaux * vrai

Gusfauxvrai * vrai

Gusvraifaux * vrai

  • Preuve : le termeGus  n’a pas de  critique

G. Berry, Collège de France,

agenda5
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Approximations, stabilité, séquentialité
  • Le -calcul simplement typé
  • Les types d’ordre supérieur

G. Berry, Collège de France,

le calcul simplement typ
Le -calcul simplement typé

f : DE, x : D fx: E

g : EF

g○f: DF

○ : (EF)(DE)  (DF)

○  f.g.x.g(f(x))

○ : (EF)((DE)  (DF))

○ : (EF)(DE)DF

G. Berry, Collège de France,

slide35

Variables de type : , , , ...

  • Si  et sont des types, alors () est un type
  • Un terme bien typé Mdoit vérifier 4 conditions:
    • Tout sous-terme doit être bien typé
    • Toute abstraction doit avoir la forme
      • (x.M)()
    • Toute application doit avoir la forme
      • (M()N)
    • Toute les occurrences libres ou liées par le même lieur
      • doivent avoir le même type
      • ... x... x ...   
      • y. ... y... y...     

Un terme M est typable s’il existe des types pour lui

G. Berry, Collège de France,

exemples
Exemples

idD: (DD)   (x. x)()

○ : (EF)(DE)DF

○  (g().f().x.(g()(f() (x))))()()()

ouch! 

○  g().f().x. g(fx)

mieux 

2 f().x.(f(fx)) type ()()

x. x xdemanderait t.q.  ()

G. Berry, Collège de France,

la normalisation forte du calcul typ
La normalisation forte du -calcul typé

Proposition : Si M est typable de type et si M*N dans le calcul pur, alors N est typable de type 

Théorème : Si M est typable, alors toutes les réductions de M sont finies

Preuve : par morphisme des familles de Lévy

Corollaire : il n’existe pas de combinateur de point fixe Y() tel que YMM(YM)

Preuve : Y()(x.x)bouclerait !

G. Berry, Collège de France,

la limitation intrins que du calcul typ
La limitation intrinsèque du  -calcul typé

Théorème : sur les entiers de Church, seuls les polynômes étendus sont définissables

polynômes étendus : projections, constantes, test à 0, fermés par somme et produits

G. Berry, Collège de France,

augmenter la puissance en gardant la simplicit
Augmenter la puissanceen gardant la simplicité
  • Ajouterexplicitementce qui a disparu
    • PCF : booléens, entiers, Y()pour tout , cfcours 3
    • ML / CAML : types paramétriques, inférence de types, etc.
    • resteindécidable, maisraisonnablementdomestiqué
  • Rendre le système de types plus puissant
    • augmenterl’expressivité, préserver de la normalisation forte
    • Système T (Gödel)
    • Système F (Jean-Yves Girard, John Reynolds)
    • Théorie des constructions (G. Huet, T. Coquand)

G. Berry, Collège de France,

th orie des constructions
Théorie des constructions
  • On ne peut écrire que des programmes qui terminent, mais beaucoup de programmes qui terminent !
  • La preuve de terminaison doit faire partie du programme
  • On peut ensuite l’enlever et extraire automatiquement un programme CAML exécutable du terme source complet
  • On peut aussi faire des maths vraiment formelles
  • CompCert, compilateur C prouvé (Leroy et. al.)
  • Théorème des 4 couleurs (Gonthier – Werner)

G. Berry, Collège de France,

agenda6
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Le -calcul simplement typé
  • Approximations, stabilité, séquentialité
  • Les types d’ordre supérieur

G. Berry, Collège de France,

types d ordre sup rieur
Types d’ordre supérieur
  • Système F (Jean-Yves Girard / John Reynolds) :
    • quantificateurs explicites pour les types
    • deux réductions, une pour les termes et une pour les types

. x.xde type.()

b xb.xb

b vrai (xb.xb) vrai vrai

Théorème : un terme typable dans Système F est

fortement normalisable

Preuve : dur !

Relations avec les familles de redex : inconnue

G. Berry, Collège de France,

avantages de syst me f
Avantages de Système F
  • Permet des définitions de types très riches

(record, listes, arbres, types récursifs, types existentiels, etc.)

  • Ne permet de coder que des fonctions qui terminent, mais permet de codertoutes les fonctions primitives récursives, plus d’autres
  • Mais la typabilité est indécidable et il n’y a pas d’inférence de types !

G. Berry, Collège de France,

exemple produit
Exemple : produit 
  • Lambda-calcul pur
    • x, y z.zxy
    • 1 p. p (x.y.x)
    • 2 p. p(x.y.y)
  • Système F
    •     . (  )
    • x, y . z  .z x y
    • 1 p. p (x.x.x)
    • 2 p.  (x.x.y)

G. Berry, Collège de France,

slide45

Entiers de Church, de typeint d  . ()()

  • 0intd. f ().x.x
  • +1intd. nint.f ().x.f (nu f x)
  • It : itération n fois d’une fonction f() sur y
  • It dnint . f().y. nf y
    • - It0f y 0 f y  (. f ().x.x) f y  y
    • - Itn+1f y  n+1 fy
    • It u f n+ 1 (. f ().x.f(nfx))  f y
    • It u f n+1  f(n y f)
    • It u f n+1  f(Itf n y)

G. Berry, Collège de France,

r cursion primitive
Récursion primitive
  • R df(int).nint. y.
  • 1(It n (x.f(1x) (2x), +12x)y,0)

R0f y  y

Rn+1f y  f(Rnf y)n

PreddR+1

Pred0 0

Predn+1n

Pred(+1(+1(+1(+1(0)))))

G. Berry, Collège de France,

agenda7
Agenda
  • Cohérence et confluence
  • Causalité
  • Normalisation relative
  • Le -calcul simplement typé
  • Approximations, stabilité, séquentialité
  • Les types d’ordre supérieur
  • Bonus: inférence de types en ML

G. Berry, Collège de France,

types polymorphes la ml
Types polymorphes à la ML

1. Factoriser les types identiques

au lieu d’une identité () x.x pour chaque , avoir une seule identité (’a’a)où’a est un type

générique, i.e. une variable de type quantifiée universellement.

2. Inférer les types pour ne pas les déclarer

G. Berry, Collège de France,

slide49

# let recappendx L <=

sinullLalorsconsxnil

sinoncons(hdL) (appendx (tlL))

append : ‘a’alist’alist

# let recappendx L <=

sinullLalorsconsxnil

sinoncons(tlL) (appendx (tlL))

 type-check error !

G. Berry, Collège de France,

conclusion
Conclusion
  • Le -calcul est apparemment hyper-simple mais il est hyper-expressif.
  • Les théorèmes syntaxiques sont fondamentaux mais durs.
  • Les types d’ordre supérieurs permettent de définir toutes les fonctions totales d’intérêt => fondamental pour la preuve de programme (CoQ).
  • Mais le -calcul reste strictement séquentiel.

G. Berry, Collège de France,

r f rences 1
Références (1)
  • http://worrydream.com/AlligatorEggs/
  • un très joli -calcul intuitif
  • Generalized Finite Developments
  • Jean-Jacques Lévy
  • From Semantics to Computer Science, in honor of Gilles Kahn
  • Cambridge University Press, 2009
  • The geometry of optimal lambda reduction

Georges Gonthier, Martin Abadi, Jean-Jacques Lévy

Proc. ACM POPL conf., 1992

  • Proofs and Types
  • Jean-Yves Girard, traduit par Yves Lafont et Paul Taylor
  • Cambridge University Press (1989).
  • http://www.paultaylor.eu/stable/Proofs%2BTypes.html

G. Berry, Collège de France,

r f rences 2
Références (2)
  • Interactive Theorem Proving And Program Development.

Coq'art: The Calculus Of Inductive Constructions

Yves Bertot, Pierre Castéran

Springer, 2004

  • Formal Proof – The Four-Color Theorem
  • Georges Gonthier.
  • Notices of the American Mathematical Society, 55(11), pp. 1382-1393
  • (Dec. 2008).

G. Berry, Collège de France,