390 likes | 479 Views
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.
E N D
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.
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.
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.
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() (DD) • Environnement : (x)D, i.e. Env U(VD) [xa]pour aDest défini ainsi : 1. [xa] (x) = a 2. [xa] (y) = (y) pour y x -variablesx en normal, math-variables a en italique G. Berry, Collège de France.
Sémantique des termes [[M]] () Di.e. [M]] Env D [x]] () (x) [x.M]] () (a) [M]]([xa]) pour aD [M() N]] () ([M()]] ()) ([N]] ()) G. Berry, Collège de France.
Exemples • [x. x]] ()(a) [x]] ([xa]) • [x. x]] ()(x) ([xa]) (x) a • (x)[x. x]] () identité de DD • [x.y. x]] ()(a)(b) [x]] ([xa][yb]) • [x. x] ()(y) ([xa][yb])(x) a • (x)(y)[x.y. x]] () 1:DDD • (x)(y)[x.y. x]] () première projection • [g.f. f.g(f(x))]] ()(u)(v)(a) • [g(f(x))]] ([gu][fv] [xa]) • (x)(y)[ u(v(a)) G. Berry, Collège de France.
La réduction préserve la sémantique Théorème : siMNalors[[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.
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(ii), -1(ii) et 0? (ib) • Conditionnelles condbiiietcondbbbb • Un combinateur Y() pour chaque type G. Berry, Collège de France,
Fact(ii)Y(ii)(ii)(i i) (f(ii). 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,
Interprétation de PCF [ tt]] () tt [ff]] () ff [n]] () n [ +1]] () (n) n+1 [0?]] () (n) ttsin0 [0?]] () (n ) ffsi n0 [condb]] () (c) (b1) (b2) b1sictt [condi]] () (b) (b1) (b2) b2sicff [condi]] () (c) (n1) (n2) n1sictt [condi]] () (b) (b1) (b2) n2 si cff G. Berry, Collège de France,
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,
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.
Produit de domaines de Scott <D,,><D’,’,’> : (x,y) (x’,y’) ssixx’ et y’y’ tt, tt , tt ff, tt tt, , ff, OO BB tt,ff , ff ff, ff G. Berry, Collège de France.
Fonctions croissantes • Plus on en donne, plus on en récupère ! f : <D,,> <D’,’,’> croissante ssi x, y. xy f(x)’f(y) • Fonction constante : x, y. f(x)f(y) • Attention : • {tt, tttt, fftt} : BBconstante • {, tttt, fftt} : BB stricte, pas constante ! G. Berry, Collège de France.
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.
Limites de fonctions • Fact = Y(ii)(ii)(ii) (f(ii).xi.condi(0?x) 1(Mult x (f (-1 x)))) FACT [[f(ii). xi. condi(0?x) 1(Mult x (f (-1 x)))]] () FACT : ( )( ) Fact0 FACT() Fact1 FACT(Fact0) Fact2 FACT(Fact1) Fact3 FACT(Fact2) 01 11 1 22 2 3 36 4 5 ... G. Berry, Collège de France.
CPO = Complete Partial Order • cpo : <D,,> tel que toute suite croissante xn a une limite (borne supérieure) Unxn • <(DD’),,> : fonctionsfcroissantes et continues, i.e. tellesquef(Unxn) Unf(xn),ordonnées par fgssix.f(x) g(x) • Théorème : si D et D’ sont des cpos, alors • <(DD’),,> est un cpo, avec (Unfn) (x) Un(fn(x)) • pour toute suite croissante de fonctionsfn G. Berry, Collège de France.
Point fixe sémantique Théorème (Knaster-Tarski) : soit<D,,> un cpo, soit f : (DD)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.
Définition : pour <D,,> un cpo, soit YD : (DD)D la fonctionnelle définie parYD(f) Unfn(). Théorème : YDest croissante et continue G. Berry, Collège de France.
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.
Interprétation de PCF [tt]] () tt [ff]] () ff [n]] () n [ +1]] () (n) n+1 [0?]] () (n) ttsin0 [0?]] () (n ) ffsi n0 [condb]] () (c) (b1) (b2) b1sibtt [condi]] () (b) (b1) (b2) b2sibff [condi]] () (b) (n1) (n2) n1sibtt [condi]] () (b) (b1) (b2) n2 si bff [Y ()]] () YD G. Berry, Collège de France,
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]: Mmisdans 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 MopNssiC[M]* nC[N]* n pour toutC[]t.q. C[M]etC[N]sont bien typés et clos G. Berry, Collège de France.
Adéquation de la sémantique • Théorème : la sémantique dénotationnelle respecte l’équivalence opérationnelle [[M]] [[N]] MopN • 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 AddGopAddD G. Berry, Collège de France.
Passage au -calcul pur • Interpréter xx: domaine D tel que D(DD) ? • Impossible avec l’ensemble des fonctions diagonale de Cantor : cardinal(DD) > cardinal(D) • mais possible en se restreignant aux fonctions continues ex. réels : cardinal(Rc R)cardinal(R) • On utilise la continuité de Scott en construisant<D,,> isomorphe à <(DD ),,> i(a)(x) a j(f) f() j○i(a) a i○j(f) f j D (DD) i G. Berry, Collège de France,
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(D0D0) Dn Dn+1(DnDn) i0 in in+1 in(an) G. Berry, Collège de France,
D comme limite d’une suite de cpos f:D D in jn jn Dn Dn+1(DnDn) in fn+1 jn ○f ○in G. Berry, Collège de France,
Complète Adéquation • Question (Plotkin) : existe-t-il un modèlecomplètementadéquat, i.e., telque[[M]] [[N]] MopN ? • 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.
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.
Fonctions stables et ordre stable tt,tt ,tt OuP(tt,) tt OuP(,tt) tt OuP(, ) OuP(tt,)* tt OuP(,tt)* tt OuP(,)* tt, , xy si z. xz etyz OuP Définition :f stablesix,y. xy f(xy) f(x)f(y) Ordre stable :f gsif g et x,y. xy f(x)g(y) f(y)g(x) f g : f et g ont même causalité G. Berry, Collège de France,
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.
Le modèle stable • Bicpos <D,,,> avec les bons axiomes <(DD’),, ,> 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.
Structures de données concrètes • Kahn-Plotkin : dualitésconcret / KP-CPOs • (C, V, E, ) : Cellules, Valeurs, Evénements, ECV 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 B2 (1(12) x.x(y.yx) (-(-2)) x.(y. x) G. Berry, Collège de France.
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.
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.
Algorithmes CDS ! tt! ffC1? C2? { }C ! tt! ffC2? ! tt! ffC2? {C1ff}C {C1tt}C ! tt! ff ! tt! ff {C1tt,C2tt }C {C1tt,C2ff }C • Théorème : les algorithmes entre deux CDS • formentune CDS G. Berry, Collège de France.
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.
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.
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.
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.