Introduction Les catégories La pratique Applications informatiques Conclusion L A THÉORIE DES CATÉGORIES Q U ’ EST- CE QUE C ’ EST ? Q UEL INTÉRÊT EN INFORMATIQUE ? Romuald T HION Liris – Équipe BD Vendredi 22 avril 2011 R. Thion Théorie des catégories 1 Introduction Les catégories La pratique Applications informatiques Conclusion Plan 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Théorie des catégories 2 Introduction Les catégories La pratique 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Applications informatiques Théorie des catégories Conclusion 3 Introduction Les catégories La pratique Applications informatiques Conclusion Disclaimer R. Thion Théorie des catégories 4 Introduction Les catégories La pratique Applications informatiques Conclusion Pourquoi cet exposé ? La théorie des catégories maths contemporaines (post Bourbaki) cadre assez peu connu, voire ésotérique intellectuellement séduisant Intérêt pour les informaticiens cadre fortement typé démarche constructive spécification versus implémentation Un outil majeur de l’informatique théorique. . . . . . Qui aurait sa place en bases de données ? R. Thion Théorie des catégories 5 Introduction Les catégories La pratique Applications informatiques Conclusion Pourquoi cet exposé ? La théorie des catégories maths contemporaines (post Bourbaki) cadre assez peu connu, voire ésotérique intellectuellement séduisant Intérêt pour les informaticiens cadre fortement typé démarche constructive spécification versus implémentation Un outil majeur de l’informatique théorique. . . . . . Qui aurait sa place en bases de données ? R. Thion Théorie des catégories 5 Introduction Les catégories La pratique Applications informatiques Conclusion Pourquoi cet exposé ? La théorie des catégories maths contemporaines (post Bourbaki) cadre assez peu connu, voire ésotérique intellectuellement séduisant Intérêt pour les informaticiens cadre fortement typé démarche constructive spécification versus implémentation Un outil majeur de l’informatique théorique. . . . . . Qui aurait sa place en bases de données ? R. Thion Théorie des catégories 5 Introduction Les catégories La pratique Applications informatiques Conclusion Présentation informelle Une catégorie comme. . . une structure algèbrique un cadre où faire des mathématiques une alternative aux ensembles Dana S. Scott – Relating theories of the λ-calculus (1980) What we are probably seeking is a “purer” view of functions : a theory of functions in themselves, not a theory of functions derived from sets. What, then, is a pure theory of functions ? Answer : category theory. R. Thion Théorie des catégories 6 Introduction Les catégories La pratique Applications informatiques Conclusion Présentation informelle Une catégorie comme. . . une structure algèbrique un cadre où faire des mathématiques une alternative aux ensembles Dana S. Scott – Relating theories of the λ-calculus (1980) What we are probably seeking is a “purer” view of functions : a theory of functions in themselves, not a theory of functions derived from sets. What, then, is a pure theory of functions ? Answer : category theory. R. Thion Théorie des catégories 6 Introduction Les catégories La pratique 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Applications informatiques Théorie des catégories Conclusion 7 Introduction Les catégories La pratique Applications informatiques Conclusion Une catégorie C d’une collection d’objets : A, B, C . . . d’une collection de morphismes (ou flèches) : f, g, h . . . pour chaque morphisme, un domaine (dom) et un codomaine (cod) : f : A → B (fortement typé) d’une opération de composition associant à chaque paire de morphismes f et g telles que cod(f ) = dom(g) un morphisme g ◦ f : dom(f ) → cod(g) Satisfaisant les deux conditions suivantes 1 la composition est associative : (h ◦ g) ◦ f = h ◦ (g ◦ f ) 2 pour chaque objet A, un morphisme identité idA : A → A t.q. pour tout f : A → B on ait idB ◦ f = f et f ◦ idA = f Et rien d’autre . . . R. Thion Théorie des catégories 8 Introduction Les catégories La pratique Applications informatiques Conclusion Une catégorie C d’une collection d’objets : A, B, C . . . d’une collection de morphismes (ou flèches) : f, g, h . . . pour chaque morphisme, un domaine (dom) et un codomaine (cod) : f : A → B (fortement typé) d’une opération de composition associant à chaque paire de morphismes f et g telles que cod(f ) = dom(g) un morphisme g ◦ f : dom(f ) → cod(g) Satisfaisant les deux conditions suivantes 1 la composition est associative : (h ◦ g) ◦ f = h ◦ (g ◦ f ) 2 pour chaque objet A, un morphisme identité idA : A → A t.q. pour tout f : A → B on ait idB ◦ f = f et f ◦ idA = f Et rien d’autre . . . R. Thion Théorie des catégories 8 Introduction Les catégories La pratique Applications informatiques Conclusion Exemples Bestiaire Catégorie Objets Morphismes Set Pfn Rel Mon Grp Ω-Alg Pos CPO ensembles ensembles ensembles monoïdes groupes Ω-algèbres posets posets complets fonctions totales fonctions partielles relations binaires homomorphismes de monoïdes homomorphismes de groupes Ω-homomorphismes fonctions de monotones fonctions continues Des implémentations de la définition de catégorie Toutes ces catégories sont concrètes : les objets sont des ensembles munis de structures. R. Thion Théorie des catégories 9 Introduction Les catégories La pratique Applications informatiques Conclusion Exemples Bestiaire Catégorie Objets Morphismes Set Pfn Rel Mon Grp Ω-Alg Pos CPO ensembles ensembles ensembles monoïdes groupes Ω-algèbres posets posets complets fonctions totales fonctions partielles relations binaires homomorphismes de monoïdes homomorphismes de groupes Ω-homomorphismes fonctions de monotones fonctions continues Des implémentations de la définition de catégorie Toutes ces catégories sont concrètes : les objets sont des ensembles munis de structures. R. Thion Théorie des catégories 9 Introduction Les catégories La pratique Applications informatiques Conclusion Pour ou contre ? En défaveur trop abstrait (abstract nonsense) poids notationnel accablant rien de plus que dans Set (fondamentalement) En faveur se débarasser des « détails » de Set « penser transformations » généraliser et réutiliser des constructions R. Thion Théorie des catégories 10 Introduction Les catégories La pratique Applications informatiques Conclusion Pour ou contre ? En défaveur trop abstrait (abstract nonsense) poids notationnel accablant rien de plus que dans Set (fondamentalement) En faveur se débarasser des « détails » de Set « penser transformations » généraliser et réutiliser des constructions R. Thion Théorie des catégories 10 Introduction Les catégories La pratique 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Applications informatiques Théorie des catégories Conclusion 11 Introduction Les catégories La pratique Applications informatiques Conclusion Pratique des catégories Particularités de la pratique 1 définition et raisonnement sur les morphismes 2 rôle de l’unicité (l’universalité, la canonicité, l’optimalité . . . ) 3 utilisation de diagrammes pour décrire les propriétés 4 abstraction de constructions ou propriétés sur des objets connus Processus de catégorisation Passer de = (en algèbre) à ∼ = (via morphismes) La construction est « réussie » si on retrouve les mêmes lois R. Thion Théorie des catégories 12 Introduction Les catégories La pratique Applications informatiques Conclusion 1. Raisonner sur les morphismes Démarche constructive On ne considère jamais l’égalité entre objets, seulement entre les morphismes. Objet terminal Un C-objet 1 est terminal si, pour tout C-objet A il existe un unique morphisme noté ! : A → 1 On caractérise un objet via ses morphismes. Isomorphisme f : A → B est un isomorphisme si il existe g : B → A tel que f ◦ g = idB et g ◦ f = idA . Intuitivement, une transformation réversible qui préserve la structure. R. Thion Théorie des catégories 13 Introduction Les catégories La pratique Applications informatiques Conclusion 1. Raisonner sur les morphismes Démarche constructive On ne considère jamais l’égalité entre objets, seulement entre les morphismes. Objet terminal Un C-objet 1 est terminal si, pour tout C-objet A il existe un unique morphisme noté ! : A → 1 On caractérise un objet via ses morphismes. Isomorphisme f : A → B est un isomorphisme si il existe g : B → A tel que f ◦ g = idB et g ◦ f = idA . Intuitivement, une transformation réversible qui préserve la structure. R. Thion Théorie des catégories 13 Introduction Les catégories La pratique Applications informatiques Conclusion 2. Rôle de l’unicité Proposition Les objets terminaux d’une catégorie sont isomorphes. (Preuve) Soient A et B terminaux, et !A : A → B et !B : B → A les uniques morphismes entre ces objets. !A et !B sont composables : !B ◦!A : A → A. Or idA : A → A existe (axiome) et est l’unique morphisme A → A, car A est terminal. Donc, !B ◦!A = idA . Similairement pour !A ◦!B = idB : A sont B isomorphes. Il n’y a (catégoriquement) aucun intérêt à distinguer les terminaux entre eux. R. Thion Théorie des catégories 14 Introduction Les catégories La pratique Applications informatiques Conclusion 3. Diagrammes commutatifs « Le carré commute » G(f ) ◦ ηA = ηB ◦ F (f ) R. Thion Théorie des catégories 15 Introduction Les catégories La pratique Applications informatiques Conclusion 3. Diagrammes commutatifs « Le carré commute » G(f ) ◦ ηA = ηB ◦ F (f ) R. Thion Théorie des catégories 15 Introduction Les catégories La pratique Applications informatiques Conclusion 4. Intuition dans Set Produit cartésien : A × B = {(a, b) | a ∈ A ∧ b ∈ B} Comment définir le produit sans faire intervenir ∈, en considérant uniquement des transformations (fonctions) entre objets (ensembles) ? première projection π1 : A × B → A seconde projection π2 : A × B → B la structure (A × B, π1 , π2 ) est optimale quelques soient f : C → A et g : C → B on peut construire hf, gi : C → A × B définie par hf, gi(x) = (f (x), g(x)) R. Thion Théorie des catégories 16 Introduction Les catégories La pratique 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Applications informatiques Théorie des catégories Conclusion 17 Introduction Les catégories La pratique Applications informatiques Conclusion Applications informatiques A categorical manifesto (Joseph Goguen) “This paper tries to explain why and how category theory is useful in computing science, by guiving guidelines for applying seven basic categorical concepts : category, functor, natural transformation, limit, adjoint, colimit and comma category. Somes examples, intuition, and references are given for each concept, but completeness is not attempted.” Utilisations théorie des graphes (catégorie ≈ algèbre des chemins) théorie des automates (systèmes et comportement, bisimulation) théorie des types (polymorphisme) programmation fonctionnelle (modèles du λ-calcul, effets) substitutions de variables et unification systèmes de réécriture R. Thion Théorie des catégories 18 Introduction Les catégories La pratique Applications informatiques Conclusion Applications informatiques A categorical manifesto (Joseph Goguen) “This paper tries to explain why and how category theory is useful in computing science, by guiving guidelines for applying seven basic categorical concepts : category, functor, natural transformation, limit, adjoint, colimit and comma category. Somes examples, intuition, and references are given for each concept, but completeness is not attempted.” Utilisations théorie des graphes (catégorie ≈ algèbre des chemins) théorie des automates (systèmes et comportement, bisimulation) théorie des types (polymorphisme) programmation fonctionnelle (modèles du λ-calcul, effets) substitutions de variables et unification systèmes de réécriture R. Thion Théorie des catégories 18 Introduction Les catégories La pratique Applications informatiques Conclusion Une application « grand public » Catégories et programmation fonctionnelle objet = type e.g., Bool, Int, U nit morphismes = fonctions e.g., not : Bool → Bool morphismes 1 → A = constantes de type A e.g., true, f alse : U nit → Bool équations = même fonctions d’après la sémantique du language e.g., f alse = not ◦ true endo-foncteurs = constructeurs de types e.g., List : C → C transformations naturelles = fonctions polymorphiques e.g., revA : List(A)→List(A) ˙ R. Thion Théorie des catégories 19 Introduction Les catégories La pratique Applications informatiques Conclusion Une application « grand public » Notions of computation and monads (Eugenio Moggi) monade : une construction catégorique < F : C → C, η : 1C →F, ˙ µ : F ◦ F →F ˙ > utilisé dans le langage Haskell un sucre spécifique, commun à toutes les instances Effets en programmation fonctionnelle partialité : F (A) = A + 1 exceptions : FE (A) = A + E non-déterminisme : F (A) = A? gestion d’états : FS (A) = (S × A)S lecteur : FE (A) = AE R. Thion Théorie des catégories 20 Introduction Les catégories La pratique Applications informatiques Conclusion Une application « grand public » Notions of computation and monads (Eugenio Moggi) monade : une construction catégorique < F : C → C, η : 1C →F, ˙ µ : F ◦ F →F ˙ > utilisé dans le langage Haskell un sucre spécifique, commun à toutes les instances Effets en programmation fonctionnelle partialité : F (A) = A + 1 exceptions : FE (A) = A + E non-déterminisme : F (A) = A? gestion d’états : FS (A) = (S × A)S lecteur : FE (A) = AE R. Thion Théorie des catégories 20 Introduction Les catégories La pratique 1 Introduction 2 Les catégories 3 La pratique 4 Applications informatiques 5 Conclusion R. Thion Applications informatiques Théorie des catégories Conclusion 21 Introduction Les catégories La pratique Applications informatiques Conclusion Quid des bases de données ? Data Base Mappings and Monads : (Co)Induction (Zoran Majkic) “Thus DB category, as a base category for the semantics of databases and mappings between them, is different from the Set category used dominantly for such issues, and needs the full investigation of its properties.” Simplicial Databases (David I. Spivak) “The theory of relational databases is generally formulated within mathematical logic. We provide a more modern and more flexible approach using methods from category theory and algebraic topology [. . . ] Using an inefficient language can hamper ones ability to implement, work with, and reason about a subject.” Un goût de catégorification . . . gratuite R. Thion Théorie des catégories 22 Introduction Les catégories La pratique Applications informatiques Conclusion Quid des bases de données ? Data Base Mappings and Monads : (Co)Induction (Zoran Majkic) “Thus DB category, as a base category for the semantics of databases and mappings between them, is different from the Set category used dominantly for such issues, and needs the full investigation of its properties.” Simplicial Databases (David I. Spivak) “The theory of relational databases is generally formulated within mathematical logic. We provide a more modern and more flexible approach using methods from category theory and algebraic topology [. . . ] Using an inefficient language can hamper ones ability to implement, work with, and reason about a subject.” Un goût de catégorification . . . gratuite R. Thion Théorie des catégories 22 Introduction Les catégories La pratique Applications informatiques Conclusion A calculus for collections and aggregates (Lellahi, Tannen) “This paper proposes a calculus for programming with collection data types and aggregate operations on such collections. From a philosophical perspective, such a calculus should play for database query languages the role that the lambda calculus plays for functional programming languages. From a practical perspective, such a calculus can form the foundation of an intermediate language : the surface syntax of queries can gets translated into terms of the calculus and the equational theory of the calculus derives program equivalences used in optimization.”’ Constructions catégoriques proposition d’un calcul sur les collections (cf. Nested Relational Calculus), dont la sémantique est donnée à l’aide de catégories, notion générale de collection : monades, notion générale d’aggrégats : algèbres sur un endo-foncteur, théorèmes vérifiés dans les structures : pour l’optimisation. R. Thion Théorie des catégories 23 Introduction Les catégories La pratique Applications informatiques Conclusion A calculus for collections and aggregates (Lellahi, Tannen) “This paper proposes a calculus for programming with collection data types and aggregate operations on such collections. From a philosophical perspective, such a calculus should play for database query languages the role that the lambda calculus plays for functional programming languages. From a practical perspective, such a calculus can form the foundation of an intermediate language : the surface syntax of queries can gets translated into terms of the calculus and the equational theory of the calculus derives program equivalences used in optimization.”’ Constructions catégoriques proposition d’un calcul sur les collections (cf. Nested Relational Calculus), dont la sémantique est donnée à l’aide de catégories, notion générale de collection : monades, notion générale d’aggrégats : algèbres sur un endo-foncteur, théorèmes vérifiés dans les structures : pour l’optimisation. R. Thion Théorie des catégories 23 Introduction Les catégories La pratique Applications informatiques Conclusion La théorie des catégories un vocabulaire de concepts et de constructions, une façon de penser morphismes, généraliser et transférer entre domaines. Intérêt des catégories en BD ? Abstraire les constructions/transformations classiques des bases de données relationnelles e.g., contraintes d’intégrité, chase, réécriture . . . Pour les appliquer/instancier sur de nouvelles structures e.g., graphes RDF, arbres XML, BD objets, NRC . . . R. Thion Théorie des catégories 24 Introduction Les catégories La pratique Applications informatiques Conclusion La théorie des catégories un vocabulaire de concepts et de constructions, une façon de penser morphismes, généraliser et transférer entre domaines. Intérêt des catégories en BD ? Abstraire les constructions/transformations classiques des bases de données relationnelles e.g., contraintes d’intégrité, chase, réécriture . . . Pour les appliquer/instancier sur de nouvelles structures e.g., graphes RDF, arbres XML, BD objets, NRC . . . R. Thion Théorie des catégories 24 Introduction Les catégories La pratique Applications informatiques Conclusion Ceci n’est pas une catégorie (R. Magritte) R. Thion Théorie des catégories 25 Introduction Les catégories La pratique Applications informatiques Conclusion Références Deutsch, A. ; Nash, A. & Remmel, J. B. The chase revisited. 2008. PODS sur l’universalité du chase Pierce, B. C. Basic Category Theory for Computer Scientists. 1991. Livre d’introduction de référence Lellahi, S. K. & Tannen, V. A Calculus for Collections and Aggregates. 1997. Un équivalent du λ-calcul pour les BD Rydeheard, D. E. & Burstall, R. M. A Categorical Unification Algorithm. 1986. Algo de Martelli & Montanari décrit catégoriquement Rutten, J. J. M. M. Universal coalgebra : a theory of systems. 2000. Transpositions de concepts algébriques aux automates Moggi, E. Notions of computation and monads. 1991. Formalisation de la notion d’effet Liang, S. & Hudak, P. Modular Monadic Semantics. 1998. Combiner modulairement les effets Goguen, J. A. A Categorical Manifesto. 1991. R. Thion Théorie des catégories 26