Le mathématicien et informaticien Bartosz Milewski a publié le 23 mai 2026 un nouvel article intitulé « Tabulation Tribulations » sur son blog consacré à la théorie des catégories, à Haskell, à la concurrence et au langage C++. Ce billet s’inscrit dans une série d’exposés techniques sur les catégories doubles et propose une analyse détaillée de la notion de tabulation d’un profoncteur.
Généralisation du graphe d’un profoncteur
Milewski rappelle que le graphe d’une fonction ou d’une relation est un ensemble de paires. Dans le cadre de la théorie des catégories, un profoncteur peut être vu comme une relation « proof-relevant », c’est-à-dire une relation où un témoin (ou preuve) atteste du lien entre deux objets. Le graphe d’un profoncteur J est alors un ensemble de triples (a, j, b) où j appartient à l’ensemble J(a, b). Ces triples forment une catégorie, appelée « catégorie des éléments » du profoncteur. Un morphisme entre deux tels triples (a, j, b) et (a', j', b') est une paire de flèches (u : a → a', v : b → b') telle qu’une condition de naturalité est vérifiée, garantissant que le témoin obtenu par relèvement (whiskering) est le même pour les deux chemins.
La tabulation dans une catégorie double
L’auteur introduit ensuite la notion de tabulation, qui est l’analogue du graphe d’un profoncteur mais dans le cadre plus général d’une catégorie double. Soit J : A → B une flèche horizontale dans une catégorie double. Une tabulation de J est une 0-cellule <J> munie de deux projections, qui jouent un rôle analogue à l’extraction des deux objets dans le graphe d’un profoncteur. Une 2-cellule relie ces projections à J, illustrant la correspondance entre les morphismes de la catégorie <J> et les éléments de J.
L’article montre en particulier comment cela fonctionne dans la catégorie double des profoncteurs, notée ℙrof. Dans ce cadre, la 2-cellule de la tabulation est une transformation naturelle qui envoie une paire de flèches (u, v) de la catégorie <J> vers un élément de J(a, b'). Cette transformation peut être obtenue soit en relevant u, soit en relevant v, les deux opérations menant au même résultat, ce qui traduit une condition de cohérence.
Propriété universelle
Milewski insiste sur le fait que, tout comme un produit catégorique est défini par sa propriété universelle basée sur les « flèches entrantes » (mapping-in condition), une tabulation est également définie par une propriété universelle. Cela permet de caractériser la tabulation comme une structure unique à isomorphisme près, satisfaisant une condition de factorisation. L’auteur renvoie implicitement à des notions développées dans des articles précédents de la série, notamment celles de pliage (bending), de traction (yanking) et de carrés cartésiens dans les catégories doubles.
Prolongement technique
Ce billet s’adresse à un public familier avec la théorie des catégories, les profoncteurs et les catégories doubles. Il constitue une pièce supplémentaire dans un édifice théorique visant à unifier des concepts issus de la programmation fonctionnelle et des mathématiques pures. Le blog de Bartosz Milewski est une référence reconnue dans ces domaines, notamment pour ses articles sur la théorie des catégories appliquée à la programmation.