Catégories

Je suis tombé sur ce sujet en m'intéressant à Grothendieck.
Inventée dans les années 1940, la théorie des catégories a peu à peu remplacé la théorie des ensembles comme outil de base pour construire les univers que les mathématiciens étudient. Comprendre ce qu'est une catégorie est très simple mais les utiliser est vraiment déroutant quand on a toujours travaillé avec les ensembles.
Pour résumer, avec les ensembles on travaille avec des éléments et avec les catégories on travaille avec des objets et surtout avec des flèches qui relient deux objets entre eux. Et on compose ces flèches pour arriver aux mêmes résultats qu'en travaillant avec les ensembles, et même beaucoup plus car la théorie des catégories contient plein de notions, d'outils et de résultats (foncteurs, transformations naturelles, lemme de Yoneda). Grâce à ça, les mathématiciens décrivent à la fois la syntaxe et la sémantique de leurs systèmes.
Ma grande surprise a été de réaliser que les catégories sont au coeur de l'informatique car un langage de programmation se représente très bien par une catégorie particulière, la catégorie des ensembles. Sur internet, tout le monde a l'air au courant. Dans la vraie vie, quand j'en parle aux informaticiens que je connais, presque tout le monde s'en fout.

Dans ce site :

Références sur les catégories

Pour débuter

J'ai trouvé plusieurs ressources particulièrement accessibles :
  • Unicité et multiplicité, de Stéphane Dugowson
    Cours (en vidéo) à destination d'étudiants en histoire des sciences. C'est un cours qu'on peut suivre sans connaissances préalables. J'ai trouvé particulièrement éclairant les exemples qu'il donne sur les catégories représentant des ensembles ordonnés, et comment les notions de somme ou de produit sont traduites dans ces catégories.
  • C'est un pdf qu'on trouve en accès libre. J'ai la version de 2013. Il y a de nombreux exemple et exercices.
  • Category Theory for programmers, de Bartosz Milewski
    Série de vidéos disponibles sur youtube (un livre est aussi disponible). Ce cours contient des explications compréhensibles, par exemple j'ai trouvé très bien expliqué les notions de monomorphisme ou d'épimorphisme. Il y a certains points qui m'ont laisssé un peu perplexe (par exemple les notions d'objet intial et terminal dans la catégorie des ensembles ; pour ça, le cours de Dugowson m'a semblé plus compréhensible).
  • Category Theory for Computing Science, de Michael Barr et Charles Wells
    Je ne l'ai pas lu, mais comme il a l'air abordable, je le mets ici pour ne pas l'oublier.

Autres ressources

  • J'ai acheté la version papier de ce livre. C'est concis, ça va à l'essentiel, le livre peut donc servir de référence pour retrouver rapidement une définition ou un exemple.
    Pour moi, l'intérêt de ce livre sont les exercices, qui sont faisables, ni trop difficiles ni trop faciles. Il y a aussi une bibliographie commentée très intéressante.
    Mais ce n'est pas un livre pour découvrir les catégories, car les notions sont décrites trop succintement. Par exemple les épimorphismes et monomorphismes sont introduits en quelques lignes, les explications progressives de Bartosz Milewski sont plus simples à comprendre.
  • C'est le livre de référence sur le sujet, écrit par un des créateurs de la théorie des catégories (j'ai le pdf). C'est écrit dans le titre, ça s'adresse à des mathématiciens, et je n'ai même pas cherché à le lire. Mais je trouve intéressant de l'avoir sous la main, pour regarder comment il traite un sujet, en commençant à comprendre de quoi ça parle.