Notes de cours Cours introductif sur la théorie des domaines Paul-André Melliès Modèles des langages de programmation Master Parisien de Recherche en Informatique 1 Ensembles ordonnés Definition 1.1 (ensemble ordonné) Une relation d ordre sur un ensemble A est une relation binaire reflexive: a A, a a transitive: et antisymétrique: a, b, c A, (a b et b c) a c a, b A, (a b et b a) a b. Un ensemble A muni d une relation d ordre est appelé un ensemble ordonné. Definition 1.2 (fonction monotone) Une fonction monotone est une fonction f : (A, A ) (B, B ) f : A B entre les ensembles sous-jacents, telle que a 1, a 2 A, a 1 A a 2 f(a 1 ) B f(a 2 ). Exercice. Montrer que les ensembles ordonnés et les fonctions monotones définissent une catégorie. Exercice. Montrer que cette catégorie est cartésienne fermée. 1
2 Bornes supérieures Nous fixons ici un ensemble ordonné (A, ) et un sous-ensemble F de A. Definition 2.1 (majorant) On appelle majorant de F un élément m A tel que a F, a m. Notation. On écrit F m lorsque m est un majorant de F. Definition 2.2 (borne supérieure) On appelle borne supérieure de F tout élément m A qui vérifie les deux propriétés suivantes: m est un majorant de F tout majorant de F est supérieur à m. Exercice. Montrer que l ensemble F a au plus une borne supérieure. Notation. Lorsqu elle existe, on note cette borne supérieure F. Ainsi, lorsqu elle existe, la borne supérieure d un ensemble F est l unique élément F qui vérifie les deux propriétés suivantes: F F a A, F a F a. Propriété. Si F est un sous-ensemble de (A, A ) qui dispose d une borne supérieure, et f : (A, A ) (B, B ) est une fonction monotone, alors f(f) B f( F). En particulier, si f(f) dispose d une borne supérieure dans (B, B ), alors f(f) B f( F). 2
Démonstration. Soit un élément x f(f). Par définition de f(f), il existe a F tel que x f(a). Du fait que a F, on déduit que a A F. Du fait que la fonction f est monotone, on déduit que f(a) B f( F). De cela, on déduit que f(f) B f( F) puisque x f(a) a été choisi arbitrairement dans f(f). Pour obtenir la seconde propriété, il suffit de remarquer que la borne supérieure f(f) est le plus petit des majorants de f(f) lorsqu elle existe, et que f( F) est un majorant de f(f) par la propriété que nous venons d établir. 3 Flots Definition 3.1 Soit un ensemble ordonné (A, A ). On note Flot(A) N A l ensemble des fonctions totales des entiers naturels dans A. Cet ensemble est ordonné par la relation définie comme suit: f, g Flot(A), f g n N, f(n) A g(n). Definition 3.2 (ordre plat) Pour tout ensemble X, on définit l ensemble X X { } muni de la relation d ordre définie comme suit: x X, x x, y X, x y x y. Autrement dit, l élément est le plus petit élément de X et tous les éléments de X sont incomparables. Cet ensemble ordonné est appelé l ordre plat associé à l ensemble X. Exercice. Expliquer en quoi tout élément de Flot(N ) peut être vu comme une fonction partielle des entiers dans les entiers. Préciser quelle est la relation d ordre entre deux telles fonctions. Donner l exemple d un sousensemble F de l ensemble ordonné Flot(N ) tel que F a une borne supérieure F qui n appartient pas à l ensemble F. 4 Filtres On définit la notion de filtre sur un ensemble ordonné (A, A ). Definition 4.1 On appelle filtre de (A, A ) tout sous-ensemble F non vide de A tel que a, b F, c F, a c et b c. 3
Propriété. Si f : (A, A ) (B, B ) une fonction monotone et F est un filtre de l ensemble ordonné (A, A ), alors f(f) est un filtre de l ensemble ordonné (B, B ). Démonstration. Soient x, y deux éléments de f(f). Par définition de f(f), il existe deux éléments a, b de F tels que x f(a) et y f(b). Par définition de la notion de filtre, il existe un élément c F tel que a A c et b A c. Du fait que f est monotone, on déduit que f(a) B f(c) et f(b) B f(c). On conclut du fait que f(c) est un élément de f(f) qui majore les deux éléments x et y que nous avions choisis arbitrairement dans f(f). 5 Domaines Definition 5.1 Un domaine (D, ) est un ensemble ordonné tel que il existe un plus petit élément noté, tout filtre F de (D, ) dispose d une borne supérieure. Propriété. Supposons que (D, D ) est un domaine. Alors l ensemble ordonné Flot(D) est lui-même un domaine. Démonstration. Le plus petit élément de Flot(D) est donné par la fonction constante qui associe à tout entier l élément. Reste à montrer que tout filtre de (Flot(D), ) dispose d une borne supérieure. Une manière simple d établir la propriété est d utiliser la fonction de projection π n : Flot(D) D qui transporte toute suite (x n ) n N en son n-ième élément x n. Cette fonction π n est monotone et donc transporte tout filtre F de Flot(D) en un filtre que nous noterons F n du domaine de D. Ce filtre est défini de la sorte: F n { x n (x n ) n N F } Par hypothèse que (D, D ) est un domaine, ce filtre F n possède une borne supérieure F n. On peut ainsi définir le flot ϕ ( F 0,, F n, ). 4
défini par ces bornes supérieures. Par construction, cette suite ϕ majore tous les éléments de F. De plus, si ψ est un majorant de F, alors Fn π n (ψ) du fait que π n est monotone. La propriété étant vraie pour tout entier n, on déduit que φ ψ ce qui établit que φ est la borne supérieure du filtre F. Exercice. Utiliser la même démonstration pour établir que l ensemble ordonné A B est un domaine lorsque B est un domaine. Ici, l ensemble ordonné A B est défini pour des ensembles ordonnées (A, A ) et (B, B ) comme l ensemble des fonctions monotones ordonnés par f g a A, f(a) B g(a). Exercice. En déduire que la catégorie des domaines et des fonctions monotones est une catégorie cartésienne fermée. 6 Fonctions continues On définit la notion de fonction continue entre domaines. Definition 6.1 (fonctions continues) Soit une fonction monotone f : (D, D ) (E, E ) entre domaines. La fonction f est dite continue lorsque f(f) f( F) pour tout filtre F du domaine (D, ). Propriété. L ensemble D E des fonctions continues muni de l ordre définit un domaine. f g a D, f(a) E g(a) 5
Démonstration. Comme précédemment, le plus petit élément est défini comme la fonction constante qui associe à tout élément de D. Soit maintenant un filtre F de D E. On construit aisément une fonction définie par ϕ : D E ϕ : a F a où F a est le filtre obtenu en projetant le filtre F sur la composante a. On peut montrer que la fonction ϕ est monotone. En effet, a 1 D a 2 F a1 F a2 où F a1 F a2 signifie que x F a1 y F a2, x E y. De cela, on déduit que a 1 D a 2 F a1 E Fa2 ce qui établit que la fonction ϕ est monotone. Montrons maintenant que la fonction ϕ est continue. Soit G un filtre de D. Du fait que la fonction ϕ est monotone, on sait qu elle satisfait l inégalité suivante: ϕ(g) ϕ( G). Reste donc à montrer que autrement dit que ϕ( G) ϕ(g) ϕ( G) F G {f( G) f F} { f(g) f F} { } {f(x) x G} f F { } {f(x) f F} x G par définition de ϕ par définition de Fa par continuité de f F par définition par propriété de Fubini {φ(x) x G} φ(g) par définition de ϕ par définition. 6
Exercice. En déduire que la catégorie des domaines et des fonctions continues est cartésienne fermée. 7 Motivation informatique L intuition est que parmi toutes les fonctions f : Flot(N) Flot(N) seules les fonctions que l on peut étendre en une fonction ϕ : Flot(N ) Flot(N ) peuvent être implémentées par un algorithme. Typiquement, la fonction s étend en la fonction continue où y n f : (x n ) n N (x n + x n+1 ) n N ϕ : (x n ) n N (y n ) n N x n + x n+1 si x n N et x n+1 N. si x n si x n+1 Or, cette fonction f est calculable (au sens paresseux) par un algorithme qui pour chaque case n en sortie calcule y n x n + x n+1 et boucle si l une des valeurs n est pas disponible dans le flot d entrée. Par contre, il est impossible d implémenter la fonction f : (x n ) n N { (xn ) n N si (x n ) n N est bornée (0) n N sinon parce que celle-ci ne peut pas être étendue en une fonction continue ϕ : Flot(N ) Flot(N ) Remarque. Pour établir la propriété de manière formelle et rigoureuse, il faut interpréter tout programme d un langage de programmation spécifique en une fonction continue. De là, on en déduit qu une fonction non continue ne peut pas être implémentée dans le langage. 7