1 / 39

Le  - calcul : sémantiques, information et points fixes

Le  - calcul : sémantiques, information et points fixes. Gérard Berry. Collège de France Chaire Informatique et sciences numériques Cours 3, 9 décembre 2009. Questions sémantiques.

beate
Download Presentation

Le  - calcul : sémantiques, information et points fixes

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Le -calcul : sémantiques, information et points fixes Gérard Berry Collège de France Chaire Informatique et sciences numériques Cours 3, 9 décembre 2009 G. Berry, Collège de France.

  2. Questions sémantiques • Quelles sont les fonctions calculées par un langage comme CAML ? Quel est le rapport entre syntaxe et modèle ? • Qu’est ce qu’un modèle du -calcul? • Quelle est la bonne théorie des fonctions partielles ? • Que signifient la stabilité et la séquentialité en sémantique ? G. Berry, Collège de France.

  3. Les idées de base • Interpréter un lambda-terme comme une fonction • classique d’ensemble dans ensemble. • D. Scott : rendre les fonctions totales par un • indéfini explicite; définir un ordre d’information; • requérir croissance et continuité, passerà l’infini • G. Plotkin : travailler sur PCF, un « vrai » langage • R. Milner : construire un modèle complètement • adéquat de PCF, i.e. reflétant exactement la syntaxe • G. Berry / P-L. Curien, et. al. : comprendre la • structure sémantique de ce modèle • causalité => stabilité, stratégie => séquentialité G. Berry, Collège de France.

  4. Domaines sémantiques • Types de base : b booléens, i  entiers • Domaine de base : Db  B  {tt,ff}, Di  N  {0,1,...,n...} • Domaine fonctionnels : D() (DD) • Environnement : (x)D, i.e. Env U(VD) [xa]pour aDest défini ainsi : 1. [xa] (x) = a 2. [xa] (y) = (y) pour y  x -variablesx en normal, math-variables a en italique G. Berry, Collège de France.

  5. Sémantique des termes [[M]] () Di.e. [M]]  Env D [x]] ()  (x) [x.M]] () (a)  [M]]([xa]) pour aD [M() N]] ()  ([M()]] ()) ([N]] ()) G. Berry, Collège de France.

  6. Exemples • [x. x]] ()(a) [x]] ([xa]) • [x. x]] ()(x)  ([xa]) (x)  a • (x)[x. x]] ()  identité de DD • [x.y. x]] ()(a)(b) [x]] ([xa][yb]) • [x. x] ()(y)  ([xa][yb])(x) a • (x)(y)[x.y. x]] ()  1:DDD • (x)(y)[x.y. x]] ()  première projection • [g.f. f.g(f(x))]] ()(u)(v)(a) •  [g(f(x))]] ([gu][fv] [xa]) • (x)(y)[ u(v(a)) G. Berry, Collège de France.

  7. La réduction préserve la sémantique Théorème : siMNalors[[M]]  [[N]] preuve: par récurrencestructurellesurM (i.e., par récurrencesur la taille de M) Remarque : la réduction ne change pas l’information, et même la réduit, maiselle la rend plus lisible 3+5 a valeur8maisest plus précis que8 puisque4+4a aussivaleur8 ! G. Berry, Collège de France.

  8. La langage PCF: vers la programmation Partir du lambda-calcul typé, ajouter les booléens, les entiers et les fonctions de base, ajouter Y • Types de base b pour les booléens, i pour les entiers • Constantes booléennes ttb et ffb • Constante entière ni pour tout entier n • Fonctions +1(ii), -1(ii) et 0? (ib) • Conditionnelles condbiiietcondbbbb • Un combinateur Y() pour chaque type  G. Berry, Collège de France,

  9. Fact(ii)Y(ii)(ii)(i i) (f(ii). xi. cond (0?x) 1Mult(x,f(-1x))) PCF est Turing-complet Il peut être vu comme la base de ML / CAML G. Berry, Collège de France,

  10. Interprétation de PCF [ tt]] ()  tt [ff]] ()  ff [n]] ()  n [ +1]] () (n)  n+1 [0?]] () (n)  ttsin0  [0?]] () (n )  ffsi n0 [condb]] () (c) (b1) (b2)  b1sictt [condi]] () (b) (b1) (b2)  b2sicff [condi]] () (c) (n1) (n2)  n1sictt [condi]] () (b) (b1) (b2)  n2 si cff G. Berry, Collège de France,

  11. Quid des programmes qui bouclent ? • Quid du combinateur de point fixe Y ? [Y ()]] ()  ??? D. Scott : rendre les fonctions totales ordre d’information point fixe sémantiqueYavec[[ Y ]] =Y G. Berry, Collège de France,

  12. Les domaines de Scott tt ff  • tt • ff     indéfini (cf. ) B : booléens de Scott O : espace de Sierpinski 0 1 2 … n …   : entiers de Scott G. Berry, Collège de France.

  13. Produit de domaines de Scott <D,,><D’,’,’> : (x,y)  (x’,y’) ssixx’ et y’y’ tt, tt , tt ff, tt       tt,  ,  ff,  OO BB   tt,ff , ff ff, ff G. Berry, Collège de France.

  14. Fonctions croissantes • Plus on en donne, plus on en récupère ! f : <D,,>  <D’,’,’> croissante ssi x, y. xy f(x)’f(y) • Fonction constante : x, y. f(x)f(y) • Attention : • {tt, tttt, fftt} : BBconstante • {, tttt, fftt} : BB stricte, pas constante ! G. Berry, Collège de France.

  15. Disjonction booléenne tt,tt tt,tt tt,tt tt,tt ,tt ,tt ,tt ,tt ff,tt ff,tt ff,tt ff,tt tt, tt, tt, tt, , , , , ff, ff, ff, ff,   tt,ff tt,ff tt,ff tt,ff ff,ff ff,ff ff,ff ff,ff ,ff ,ff ,ff ,ff OuG en C : e||e’ OuP OuD en C: e’||e    tt  ff OuS en C: e|e’ G. Berry, Collège de France.

  16. Limites de fonctions • Fact = Y(ii)(ii)(ii) (f(ii).xi.condi(0?x) 1(Mult x (f (-1 x)))) FACT  [[f(ii). xi. condi(0?x) 1(Mult x (f (-1 x)))]] () FACT : ( )( ) Fact0  FACT() Fact1  FACT(Fact0) Fact2  FACT(Fact1) Fact3  FACT(Fact2) 01 11 1 22 2 3 36 4 5 ...  G. Berry, Collège de France.

  17. CPO = Complete Partial Order • cpo : <D,,> tel que toute suite croissante xn a une limite (borne supérieure) Unxn • <(DD’),,> : fonctionsfcroissantes et continues, i.e. tellesquef(Unxn) Unf(xn),ordonnées par fgssix.f(x) g(x) • Théorème : si D et D’ sont des cpos, alors • <(DD’),,> est un cpo, avec (Unfn) (x) Un(fn(x)) • pour toute suite croissante de fonctionsfn G. Berry, Collège de France.

  18. Point fixe sémantique Théorème (Knaster-Tarski) : soit<D,,> un cpo, soit f : (DD)continue. Alors Y(f) Unfn() est le plus petit point fixe de f 1. f()  f()f2() f()  f2()f3() ... fn() ... Unfn() f(Unfn())  Unf(fn())  Unfn+1()  Unfn() doncY(f )  Unfn() est point fixe de f • Soita point fixe de f •  a f()f(a)  a • n. fn ()fn(a)  a Y(f )  Unfn()  a • CQFD G. Berry, Collège de France.

  19. Définition : pour <D,,> un cpo, soit YD : (DD)D la fonctionnelle définie parYD(f) Unfn(). Théorème : YDest croissante et continue G. Berry, Collège de France.

  20. Topologie semi-séparée • Base d’ouverts : x { y | y x } ouvert y x  semi-séparé, ou T0 G. Berry, Collège de France.

  21. Interprétation de PCF [tt]] ()  tt [ff]] ()  ff [n]] ()  n [ +1]] () (n)  n+1 [0?]] () (n)  ttsin0  [0?]] () (n )  ffsi n0 [condb]] () (c) (b1) (b2)  b1sibtt [condi]] () (b) (b1) (b2)  b2sibff [condi]] () (b) (n1) (n2)  n1sibtt [condi]] () (b) (b1) (b2)  n2 si bff [Y ()]] ()  YD G. Berry, Collège de France,

  22. Equivalence opérationnelle • Programme : terme de type i clos (sans variable libre) • Contexte programmeC[]: terme clos de type i avec trou de type  • C[M]: Mmisdans le trou deC [], doit rester clos • Exemple : C[(i i)] ([(i i)]n) • Exemple : C[xi. xi] ((xi. xi) n) • M et N sont opérationnellement équivalentsssi • interchangeables dans tout contexte programme MopNssiC[M]* nC[N]* n pour toutC[]t.q. C[M]etC[N]sont bien typés et clos G. Berry, Collège de France.

  23. Adéquation de la sémantique • Théorème : la sémantique dénotationnelle respecte l’équivalence opérationnelle [[M]]  [[N]]  MopN • Corollaire : toute preuve d’égalité sémantique est • opérationnellement valide. • Exemple : • AddG = Y (m.n. ... +1AddG(-1m, n)...) • AddD = Y (m.n. ... +1AddD(m, -1n)...) • Par récurrence sur m (resp. n), [[AddG]]()  [[AddD]]()  + • Donc [[AddG]]  [[AddD]], donc AddGopAddD G. Berry, Collège de France.

  24. Passage au -calcul pur • Interpréter xx: domaine D tel que D(DD) ? • Impossible avec l’ensemble des fonctions diagonale de Cantor : cardinal(DD) > cardinal(D) • mais possible en se restreignant aux fonctions continues ex. réels : cardinal(Rc R)cardinal(R) • On utilise la continuité de Scott en construisant<D,,> isomorphe à <(DD ),,> i(a)(x)  a j(f)  f() j○i(a)  a i○j(f) f j D (DD) i G. Berry, Collège de France,

  25. D comme limite d’une suite de cpos j0 j0 j0 j1 j1 j1 jn jn jn jn+1 a0 a1 ananan D { a0 a1 anan+1} jn ( a0 a1 anan+1)  an jn in                         j0 jn jn+1 B D0 D1(D0D0) Dn Dn+1(DnDn) i0 in in+1 in(an)  G. Berry, Collège de France,

  26. D comme limite d’une suite de cpos f:D D in jn jn Dn Dn+1(DnDn) in fn+1  jn ○f ○in G. Berry, Collège de France,

  27. Complète Adéquation • Question (Plotkin) : existe-t-il un modèlecomplètementadéquat, i.e., telque[[M]]  [[N]]  MopN ? • Théorème 1 (Milner) : ilexisteun et un seulmodèlecomplètementadéquat de PCF, caractérisé par le fait quetousseséléments(finis)sontdéfinissables par des termes • Théorème 2 (Plotkin / Berry) : le modèle de Scott n’est pas complètementadéquat • preuve : le ouparallèleOuPestcontinumais pas définissable (théorème de stabilité) G. Berry, Collège de France.

  28. Disjonction booléenne tt,tt tt,tt tt,tt tt,tt ,tt ,tt ,tt ,tt ff,tt ff,tt ff,tt ff,tt tt, tt, tt, tt, , , , , ff, ff, ff, ff, tt,ff tt,ff tt,ff tt,ff ff,ff ff,ff ff,ff ff,ff ,ff ,ff ,ff ,ff OuP OuG OuD OuS G. Berry, Collège de France.

  29. Fonctions stables et ordre stable tt,tt ,tt OuP(tt,) tt OuP(,tt) tt OuP(, )  OuP(tt,)* tt OuP(,tt)* tt OuP(,)*  tt, , xy si z. xz etyz OuP Définition :f stablesix,y. xy  f(xy)  f(x)f(y) Ordre stable :f  gsif g et x,y. xy  f(x)g(y)  f(y)g(x) f  g : f et g ont même causalité G. Berry, Collège de France,

  30. Disjonction booléenne tt,tt tt,tt tt,tt tt,tt ,tt ,tt ,tt ,tt ff,tt ff,tt ff,tt ff,tt tt, tt, tt, tt, , , , , ff, ff, ff, ff, tt,ff tt,ff tt,ff tt,ff ff,ff ff,ff ff,ff ff,ff ,ff ,ff ,ff ,ff OuP OuG OuD OuG OuD OuG OuS OuD   OuS < < OuS     G. Berry, Collège de France.

  31. Le modèle stable • Bicpos <D,,,> avec les bons axiomes <(DD’),,  ,> fonctions stables  point par point,  stable • J-Y Girard : le modèlenaturel de Système F • RejetteOuPmais pas complètementadéquat, car Gus est stable mais pas définissable (théorème de séquentialité) • Gus tt ff  tt • Gusff  tt  tt • Gustt ff   tt G. Berry, Collège de France.

  32. Structures de données concrètes • Kahn-Plotkin : dualitésconcret / KP-CPOs • (C, V, E, ) : Cellules, Valeurs, Evénements, ECV  tt ff n  0 1 2 ... C0 C C B N C00 n  C01 n  C010 C011 n  n  C1 tt ff C2 tt ff B2 (1(12)  x.x(y.yx) (-(-2))  x.(y. x) G. Berry, Collège de France.

  33. Algorithmes séquentiels C1 tt ff C2 tt ff C tt ff OuS : C  C1 ? tt C2 ? tt ! tt ff  ! tt ff  C2? tt ! tt ff  ! ff OuG : C  C1 ? tt ! tt ff  C2? tt ! tt ff  ! ff G. Berry, Collège de France.

  34. Plusieurs algorithmes par fonction C1 tt ff C2 tt ff C tt ff  OuS-1-2 : C  C1 ? tt C2 ? tt ! tt ff  ! tt ff  C2? tt ! tt ff  ! ff OuS-2-1 : C  C2 ? tt C1 ? tt ! tt ff  ! tt ff  C1? tt ! tt ff  ! ff G. Berry, Collège de France.

  35. Algorithmes  CDS ! tt! ffC1? C2? { }C ! tt! ffC2? ! tt! ffC2? {C1ff}C {C1tt}C ! tt! ff ! tt! ff {C1tt,C2tt }C {C1tt,C2ff }C • Théorème : les algorithmes entre deux CDS • formentune CDS G. Berry, Collège de France.

  36. Catégories et dualité • Concret : objets = CDS, morphismes = algorithmes • Abstrait : objets = KP-CPOs , morphismes = stratégies f f’ K K’ K’’ s s’ • Quotient par l’égalité des fonctions => modèle séquentiel de PCF <K,,, > algorithmes stable fonctions G. Berry, Collège de France.

  37. Complète adéquation pour PCF+ • Tristesse (Curien) : le modèle CDS + algorithmes (quotientés) n’est pas complètement adéquat pour PCF d’exceptions • Théorème (Curien) : le modèle CDS + algorithmesestcomplètementadéquatpour PCF augmenté par des opérateurs de levée et de traitementd’exceptions exception E1, E2 C[ ] =try [ b b  b ](raise E1) (raise E2) with E1  < gauche > | E2  < droit > G. Berry, Collège de France.

  38. Conclusion • La sémantique de Scott a introduit les notions fondamentales d’ordre d’information, de continuité et de point fixe • Le résultatd’existence et d’unicité de Milner a lancé la chasse aux modèles • Le modèle stableintègreune notion de causalité • Le modèle des algorithmesséquentielstraitebien la séquentialité, mais ne résout pas le problème • Maispeut-être le problèmeétait-il mal posé : • vive les exceptions ! G. Berry, Collège de France.

  39. Références • The next 700 Programming Languages. Peter .J. Landin Communications of the ACM, vol. 9, no 3, pp. 157-166 (1966) • Domains and Lambda-Calculi • Roberto Amadio et Pierre-Louis Curien • Cambridge University Press (1998) • Theory and Practice of Sequential Algorithms: the Kernel of • the Programming Language CDS • G. Berry et P-L. Curien • Dans Algebraic Methods in Semantics, • Cambridge University Press (1985) pp. 35-88. G. Berry, Collège de France.

More Related