La théorie des catégories

publicité
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
Téléchargement