Illustration de la théorie des catégories : logique (2021)
(abuseofnotation.github.io)- La logique part de propositions atomiques tenues pour vraies, puis construit des propositions plus grandes avec des opérateurs comme
and,oretimplies, et, comme en théorie des catégories, la composition y est essentielle - La logique classique interprète les propositions comme des valeurs booléennes vrai/faux, les opérateurs logiques comme des fonctions booléennes, et traite négation, conjonction, disjonction, implication et équivalence à l’aide de tables de vérité
- L’interprétation BHK de la logique intuitionniste voit les propositions comme des objets munis de preuves ;
A ∧ Bs’interprète comme une paire de preuves, etA → Bcomme une fonction transformant une preuve deAen preuve deB - Dans certaines catégories, les objets correspondent aux propositions et les morphismes aux preuves ; dans un ordre,
A ≤ BreprésenteA → Bsous la forme d’un preorder ou d’un ordre partiel - La logique intuitionniste correspond, du point de vue de l’ordre, à une algèbre de Heyting, et, plus généralement en théorie des catégories, à une catégorie bicartésienne fermée ; conjonction, disjonction, vrai, faux et implication y correspondent respectivement à meet/join, objet terminal/initial et objet exponentiel
La logique à partir des propositions
- La logique traite de règles formelles cohérentes avec elles-mêmes, indépendamment de l’observation, et constitue un système permettant de conclure ou de prouver qu’une chose est vraie à partir d’une autre connue
- Une théorie mathématique peut être vue comme de la logique à laquelle on ajoute des définitions supplémentaires
- La théorie des ensembles peut être définie en ajoutant aux axiomes logiques standard le concept primitif de relation d’appartenance à un ensemble
- Pour démarrer la logique, il faut un ensemble initial de propositions admises comme vraies ou fausses
- On les appelle prémisses, propositions atomiques ou primary propositions
- Deux propositions ou plus deviennent une proposition composée à l’aide d’opérateurs logiques comme
and,oretimplies/entails∧signifieand∨signifieor→signifiefollows, ou l’implication
- Une proposition composée peut à son tour être recomposée avec d’autres propositions, comme une proposition atomique
Modus ponens et tautologies
- Le modus ponens est un ancien schéma logique selon lequel, si
Aest vrai etA → Best vrai, alorsBest aussi vrai- Sa forme est
(A ∧ (A ⇒ B)) → B - On peut l’exprimer avec un exemple comme : « Socrate est un homme, et si un homme est mortel, alors Socrate est mortel »
- Sa forme est
- La logique ne traite pas seulement d’opérations isolées, mais aussi de combinaisons de plusieurs opérateurs logiques et de leurs relations
- La relation entre
andetimpliesapparaît dans le modus ponens - La distributivité de
andetorest également un sujet majeur
- La relation entre
- Une tautologie est une proposition toujours vraie, quelle que soit la valeur de vérité de ses propositions constitutives
- Pour le modus ponens, que
AetBsoient vrais ou faux, la formule entière reste toujours vraie - Une proposition toujours fausse s’appelle une contradiction
- Si l’on applique
notà une tautologie, on obtient une contradiction ; si l’on appliquenotà une contradiction, on obtient une tautologie
- Pour le modus ponens, que
- Une proposition dont la vérité ou la fausseté dépend des valeurs prises s’appelle un contingent statement et sort du champ principal d’intérêt de la logique
- La tautologie la plus simple est le principe d’identité, selon lequel chaque proposition implique elle-même
Schémas d’axiomes et systèmes logiques
- Les tautologies servent de base aux schémas d’axiomes et aux règles d’inférence
- Un schéma d’axiome est une formule contenant des variables de position, que l’on peut remplacer par des propositions pour produire une proposition concrète
- Si l’on retire les couleurs ou les propositions concrètes du modus ponens, il en reste la structure générale
- On peut insérer dans cette structure des propositions atomiques ou composées pour obtenir un énoncé particulier de modus ponens
- Les règles d’inférence peuvent être écrites presque de la même façon que les schémas d’axiomes, et les schémas d’axiomes peuvent aussi s’appliquer comme des règles d’inférence
- Toute tautologie peut servir de schéma d’axiome
- Un système logique, ou système formel, est un ensemble de schémas d’axiomes et de règles d’inférence qui permet de générer toutes les propositions possibles
- Un exemple présente un système composé de cinq schémas d’axiomes et de la règle d’inférence du modus ponens
- Le fait qu’un tel système logique soit complet est lié au théorème de complétude de Gödel
Interprétation en fonctions de vérité de la logique classique
- La logique classique repose sur la dichotomie selon laquelle toute proposition est soit vraie, soit fausse
- Dans l’interprétation classique, les propositions et les opérateurs sont définis ainsi
- Les propositions sont des valeurs booléennes, vraies ou fausses
- Les opérateurs logiques sont des fonctions qui prennent une ou plusieurs valeurs booléennes et renvoient une valeur booléenne
- La négation
¬pest une opération unaire qui transforme le vrai en faux et le faux en vrai- On peut exprimer la même chose avec une table de vérité
- L’élimination de la double négation se démontre par le fait qu’appliquer deux fois la négation ramène à la valeur de départ
andprend deux valeurs booléennes et ne renvoie vrai que si les deux sont vraiesp ∧ q → pp ∧ q → q
orrenvoie vrai si au moins une des deux valeurs booléennes est vraiep → p ∨ qq → p ∨ q
implies, ou condition matérielle, s’écritp → qet n’est faux que lorsquepest vrai etqest faux- En logique classique,
p → qéquivaut au cas où¬p ∨ qest vrai
- En logique classique,
if and only if, ouiff, est vrai lorsque deux propositions ont la même valeurP ↔ Qest équivalent àP → Q ∧ Q → P
- On peut démontrer l’équivalence entre
p → qet¬p ∨ qnon seulement avec des tables de vérité, mais aussi avec des axiomes et des règles d’inférence- Une démonstration complète de l’équivalence exige une preuve dans les deux sens
Logique intuitionniste et interprétation BHK
- La logique intuitionniste considère la preuve non comme la découverte d’une vérité universelle, mais comme une construction
- Dans cette perspective, on ne peut pas utiliser la dichotomie selon laquelle toute proposition est nécessairement vraie ou fausse
- Une proposition peut être non démontrable non parce qu’elle est fausse, mais parce qu’elle se situe hors du champ du système logique donné
- La conjecture des nombres premiers jumeaux est souvent présentée comme un tel exemple
- Dans l’interprétation de Brouwer–Heyting–Kolmogorov (BHK), l’accent est mis sur les preuves plutôt que sur les propositions
- Une proposition est quelque chose qui possède une preuve
- Les opérateurs logiques sont des constructions qui fabriquent des preuves à partir d’autres preuves
- Une preuve de
A ∧ Best une paire constituée d’une preuve deAet d’une preuve deB, c’est-à-dire un product A → Bsignifie qu’il existe une fonction transformant une preuve deAen preuve deB- L’ensemble des preuves de
A → Bs’exprime comme l’ensemble des fonctions deAversB, c’est-à-dire un hom-set - Si cet ensemble est vide, il n’existe aucun moyen de transformer une preuve de
Aen preuve deB
- L’ensemble des preuves de
- L’interprétation BHK n’a pas d’opérateur iff distinct, mais elle a des flèches
- Lorsque des fonctions existent de
AversBet deBversA, les deux propositions sont traitées comme équivalentes - Du point de vue des ensembles, c’est le cas où les ensembles de preuves des deux propositions sont isomorphes
- Lorsque des fonctions existent de
- La négation ne signifie pas simplement l’absence de preuve ; il faut montrer que l’hypothèse de la vérité de
Amène à une contradiction⊥joue le rôle d’une preuve d’une formule sans preuve, c’est-à-dire de False ou de bottom value- En BHK,
¬Ase litA → ⊥ - En théorie des ensembles,
⊥est représenté par l’ensemble vide
Voir la logique comme une catégorie
- L’interprétation BHK fournit une perspective de haut niveau pour interpréter la logique via la théorie des catégories
- Certaines catégories peuvent être vues comme des systèmes logiques
- Les objets sont des propositions
- Les morphismes sont des preuves
- Toutes les catégories ne deviennent pas des systèmes logiques ; il faut des conditions garantissant qu’il existe des objets correspondant aux propositions logiquement valides, et pas d’objets correspondant aux propositions invalides
- Les catégories satisfaisant ces conditions sont appelées catégories bicartésiennes fermées
- Comme cas simple, si l’on considère d’abord un ordre, un système logique et un ensemble de propositions atomiques forment une catégorie
- S’il n’existe qu’une seule façon d’aller de
AàB, ou si l’on ignore leurs différences, on obtient un preorder - Si l’on identifie comme équivalentes les propositions qui s’impliquent mutuellement, on obtient un ordre partiel
A ≤ BsignifieA → B
- S’il n’existe qu’une seule façon d’aller de
- Dans un diagramme de Hasse, lorsque
Aest sousB, alorsA → Best vrai
Correspondances en théorie de l’ordre pour les opérateurs logiques
- Les opérateurs logiques
andetorapparaissent comme product et sum dans l’interprétation BHK, et correspondent, en théorie de l’ordre, à meet et join - Pour former un système logique, il faut pouvoir combiner n’importe quelles deux propositions avec
andouor, donc l’ordre doit posséder un meet et un join pour tous ses éléments- Un tel ordre s’appelle un lattice
- Une loi importante entre
andetorest la distributivité- Si, pour tous
A,B,C, on aA ∧ (B ∨ C) ≅ (A ∧ B) ∨ (A ∧ C), alors on a un distributive lattice
- Si, pour tous
- Pour représenter la logique intuitionniste, le lattice doit aussi contenir des éléments correspondant à
TrueetFalseFalses’écrit⊥et est lié au principe d’explosion, selon lequel, à partir d’une preuve de False, on peut démontrer n’importe quelle propositionTrues’écrit⊤; toute proposition l’implique, mais il ne permet pas à lui seul d’en tirer un contenu significatif
- Dans un ordre,
TrueetFalsesont respectivement le plus grand et le plus petit objet- En termes catégoriques, ils correspondent à l’objet terminal et à l’objet initial
- Un lattice possédant un plus petit et un plus grand élément est un bounded lattice
Objet d’implication et objet exponentiel
- Un lattice représentant un système logique doit disposer, pour chaque paire
A,B, d’un objet d’implication représentant la proposition selon laquelleAimpliqueB - Cet objet est défini à partir de la structure du modus ponens
- Il faut que
A ∧ (A ⇒ B) → Bsoit vrai
- Il faut que
- Cette seule condition ne suffit pas
- D’autres objets, comme
A ⇒ B ∧ CouA ⇒ B ∧ C ∧ D, pourraient aussi prendre cette place - Le véritable
A ⇒ Best le plus grand des objetsXsatisfaisantA ∧ X → B
- D’autres objets, comme
- En théorie de l’ordre,
A ⇒ Best appelé exponential element ou relative pseudo-complement- C’est le plus grand
Xtel queA ∧ X ≤ B
- C’est le plus grand
- Logiquement, le proposition d’implication
A ⇒ Best la propositionXla plus triviale satisfaisantA ∧ X → B - Catégoriquement, il se définit comme un objet exponentiel ou un objet d’homomorphismes internes
- Il doit exister un morphisme
A × X → B - Et pour tout autre objet candidat ayant la même propriété, il doit exister un morphisme unique vers le véritable objet exponentiel
- Il doit exister un morphisme
- Cette définition de l’objet d’implication correspond à la logique intuitionniste
- En logique classique, à cause du tiers exclu,
A ⇒ Bse simplifie en¬A ∨ B
- En logique classique, à cause du tiers exclu,
- Comme meet, join et l’objet d’implication,
A ⇒ Best défini de manière unique à isomorphisme près
Algèbre de Heyting et catégorie bicartésienne fermée
- La logique intuitionniste se compose de
True,False,and,oretimplies - Exprimée sous forme d’ordre, elle devient une algèbre de Heyting
- Elle possède join et meet
- Elle possède un plus grand et un plus petit objet
- Elle possède un objet d’implication
- Un système de logique intuitionniste peut être vu comme une algèbre de Heyting
andetorcorrespondent à meet et joinTrueetFalsecorrespondent au plus grand et au plus petit objetimpliescorrespond à l’objet exponentiel
- Si l’on adapte la même définition à une catégorie générale, on obtient une catégorie bicartésienne fermée
- Elle possède product et coproduct
- Elle possède un objet initial et un objet terminal
- Elle possède un objet exponentiel
- Un système de logique intuitionniste peut aussi être vu comme une catégorie bicartésienne fermée
andetorcorrespondent à product et coproductTrueetFalsecorrespondent à l’objet terminal et à l’objet initialimpliescorrespond à l’objet exponentiel
- Un lattice suivant la logique classique doit, en plus d’être borné et distributif, être complémenté
- Pour chaque proposition
A, il existe un¬Aunique satisfaisantA ∨ ¬A = 1etA ∧ ¬A = 0 - Un tel lattice s’appelle une algèbre booléenne
- Pour chaque proposition
Une preuve simple en logique catégorique
A ∨ ⊤ ≅ ⊤découle immédiatement de la définition de join- Le join est la plus petite borne supérieure supérieure ou égale aux deux objets
- Comme le seul objet supérieur ou égal à
⊤est⊤lui-même, le join de n’importe quelAavec⊤est⊤ - Logiquement, c’est la tautologie « n’importe quel
Aou True, c’est True »
- Si
A → B, alorsA ∨ B = B- Si l’un des deux objets est au-dessus de l’autre, le join est l’objet situé plus haut
- On peut voir cela comme une généralisation de
A ∨ ⊤ = ⊤ - Car pour tout objet
A, on a toujoursA → ⊤
- Le principe d’identité se démontre aussi à l’aide de l’objet d’implication
A ⇒ Aest le plus grandXsatisfaisantA ∧ X → A- Cette condition vaut pour tout
X, donc l’objet maximal est⊤ - Ainsi,
A → Aest toujours vrai
- Si
Aimplique sémantiquementBdans tous les modèles, c’est-à-direA ⊨ B, alorsA ⇒ Bcorrespond aussi à⊤- Puisque
Aimplique déjàB, on aA ∧ X → Bpour toutX - On appelle aussi cela le théorème de déduction
- Puisque
Construire la logique avec une algèbre de Heyting libre
- Pour raisonner logiquement, on commence par choisir les propositions atomiques à utiliser selon le domaine du problème
- Si le type de logique choisi est la logique intuitionniste, il faut dessiner, pour tous
AetB, un graphe contenant des propositions composées commeA ∧ BetA ∨ B - Comme il faut aussi inclure les compositions de propositions composées, la liste complète devient infinie
- Pour savoir si une proposition en implique une autre, on suit les chemins des flèches partant de la proposition de départ
- Faire de la logique consiste à trouver un chemin entre ce que l’on sait déjà et ce que l’on veut prouver, ou à construire une preuve en manipulant celles dont on dispose déjà
- En logique intuitionniste, il est généralement difficile de prouver qu’un fait est inaccessible à partir des axiomes, autrement dit qu’il n’est pas démontrable
1 commentaires
Commentaires sur Hacker News
Cette page est vraiment excellente, et je suis tombé dessus plusieurs fois en étudiant le sujet
Cela dit, je donnerais quand même ma préférence à l’apprentissage avec Milewski. Apprendre cela est un voyage, et l’auteur de ct-illustrated semble encore être au milieu du chemin
Milewski, lui, a déjà parcouru cette route plusieurs fois, donc son livre et son blog sont de bons points de départ
https://github.com/hmemcpy/milewski-ctfp-pdf Book
https://bartoszmilewski.com/2014/10/28/category-theory-for-p... Blog
Il semble penser qu’écrire dans une prose légère et imprécise rend forcément les choses plus faciles à comprendre, mais à cause de cela c’est presque inutilisable comme ouvrage de référence
Ce n’est absolument pas le cas¹
¹) https://news.ycombinator.com/item?id=41756286
En revanche, au travail, j’utilise la théorie des catégories sur l’ensemble de mon modèle de domaine
Cela avait déjà été discuté auparavant sous une autre URL
https://news.ycombinator.com/item?id=28660131 (2 commentaires)
https://news.ycombinator.com/item?id=28660157 (112 commentaires)
Au début du livre, en comparant les mathématiques à la science ou à l’ingénierie, je suis tombé sur cette belle phrase
« Pour cette raison, les mathématiciens se retrouvent dans la position étrange, voire singulière, de devoir toujours défendre ce qu’ils font du point de vue de sa valeur pour d’autres disciplines. Encore une fois, dans n’importe quel autre domaine académique, cela serait jugé absurde. »
C’est une idée à laquelle toute personne ayant étudié un domaine qui ne mène pas directement à des résultats rentables peut s’identifier, et il est réconfortant d’entendre que même les gens doués avec les nombres doivent lutter contre le rasoir de Milton Friedman
Aujourd’hui, l’ensemble des recherches en « postcolonialisme » n’est rien d’autre que le back-end du soft power américain, et en cas de guerre ce sera probablement aussi le back-end du hard power
Si les cercles intérieurs sont toujours centrés verticalement, les schémas de type cercle dans le cercle ne tiennent pas très bien à l’échelle
Existe-t-il des retours d’expérience où la théorie des catégories a permis de résoudre utilement un problème de CS/SWE qu’on n’aurait pas pu résoudre sans elle ? Les monades ne comptent pas, parce qu’on les inventerait naturellement si la situation l’exigeait
J’ai étudié cela pendant un an en master, puis j’ai fini par abandonner
L’un des théorèmes les plus fondamentaux de la théorie des catégories, le lemme de Yoneda, dit directement que tout problème exprimé dans le langage des catégories peut être traduit dans le langage des ensembles et des fonctions. Il en va de même pour tous les objets mathématiques définis à partir d’ensembles, donc on peut toujours remplacer un nom par sa définition
Ce que le langage catégorique apporte au cadre implicite d’une théorie ne peut pas dépasser la définition de « catégorie », et cette définition est très réduite. C’est un peu comme demander pourquoi on utilise les groupes plutôt que « une opération sur un ensemble munie de l’associativité, de la fermeture, d’un élément neutre et d’inverses », formulation pourtant plus accessible
L’algèbre abstraite repose sur une bibliothèque de définitions qui désignent des types d’opérations sur des ensembles assez simples pour être suffisamment fréquents. Les outils ou techniques ne sont pas le genre de choses qu’on trouve dans une définition
Les anneaux, espaces vectoriels et modules sont généralement acceptés immédiatement, alors que les catégories divisent entre croyants et non-croyants. Je me demande pourquoi
Quand j’ai interviewé Leland McInnes, il m’a expliqué en détail que la théorie des catégories avait joué un grand rôle pour relier de nombreux points, même si elle n’était pas strictement nécessaire dans le code réel du résultat final
Vu l’ampleur de l’amélioration relative par rapport à l’état de l’art précédent, t-SNE, c’est le seul exemple qui m’ait fait reconsidérer mes critiques sur la manière dont on parle de théorie des catégories en logiciel
https://arxiv.org/abs/1802.03426
La théorie des catégories est à la fois un langage et un outil, donc tout ce qu’on peut dire dans le langage de la théorie des catégories peut aussi être dit dans d’autres langages
Comme avec une voiture, une fois qu’on a appris à conduire — et la courbe d’apprentissage est ici très raide — on peut aller plus vite. En principe, il n’y a rien qu’on ne puisse atteindre à pied sans mentionner explicitement les concepts de théorie des catégories
D’après ma compréhension très limitée, une partie importante de la théorie des catégories consiste à caractériser les objets par des propriétés universelles
Une autre utilité pratique de la théorie des catégories est qu’elle fournit un langage commun pour les informaticiens, mathématiciens et physiciens. Si tout le monde parle des mêmes motifs avec des noms différents et des définitions légèrement incompatibles, collaborer n’est pas simple
La pré-alpha actuelle est surtout destinée à la modélisation de systèmes dynamiques, mais je pense que la portée du travail visé exige des fondations catégoriques. Je serais heureux d’entendre l’avis de quiconque
https://topos.site/blog/2024-10-02-introducing-catcolab/
Je pense que la théorie des catégories est utile, mais pas encore vraiment en informatique
Sans besoin réel, cela ne peut que sembler difficile. Faut-il vraiment comprendre les propriétés universelles, les foncteurs adjoints et le lemme de Yoneda ? Si ce n’est pas nécessaire, on peine forcément à apprendre ce que c’est
Fait intéressant, l’expérience en programmation fonctionnelle aide à comprendre la théorie des catégories, mais l’inverse beaucoup moins. Par exemple, le polymorphisme paramétrique donne une intuition des transformations naturelles, et les transformations naturelles sont au cœur de toutes les applications de la théorie des catégories
Les applications convaincantes de la théorie des catégories sont très mathématiques. On les trouve en topologie algébrique, en théorie des représentations, en géométrie algébrique et en logique non classique
https://en.m.wikipedia.org/wiki/ZX-calculus
https://zxcalculus.com/
https://www.reddit.com/r/quantum/s/2NzsJaDYwm
Il y a une erreur
« Le modus ponens est une proposition composée de deux autres propositions, ici notées A et B ; si la proposition A est vraie et que la proposition A --> B est également vraie, c’est-à-dire si A implique B, alors B est aussi vraie. Par exemple, si l’on sait que “Socrate est un homme” et que “les hommes sont mortels”, alors on sait aussi que “Socrate est mortel”. »
Cet exemple n’est pas un cas de modus ponens, qui est une règle de la logique propositionnelle, mais un syllogisme catégorique qui nécessite la logique des prédicats
Ici, on dit que « la logique est la science du possible », mais ne devrait-elle pas être la science du déterminé ?
Le point essentiel, à mon avis, est de pouvoir dire de manière déterminée ce qui est valide ou non
La notation diagrammatique est intéressante
L’auteur présente-t-il aussi des règles d’inférence pour des transformations préservant la vérité des diagrammes ?