0% ont trouvé ce document utile (0 vote)
54 vues329 pages

Logique

Le document est un cours de logique écrit par Titouan Leclercq et Werner Mérian, couvrant divers sujets tels que l'induction, la logique propositionnelle, le calcul des prédicats, et la théorie des ensembles. Il présente des concepts fondamentaux et des théories mathématiques, ainsi que des définitions et des théorèmes associés. Ce cours est destiné à être utilisé au printemps 2024 et a été compilé en juin 2025.

Transféré par

morgan38clement
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues329 pages

Logique

Le document est un cours de logique écrit par Titouan Leclercq et Werner Mérian, couvrant divers sujets tels que l'induction, la logique propositionnelle, le calcul des prédicats, et la théorie des ensembles. Il présente des concepts fondamentaux et des théories mathématiques, ainsi que des définitions et des théorèmes associés. Ce cours est destiné à être utilisé au printemps 2024 et a été compilé en juin 2025.

Transféré par

morgan38clement
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours de Logique

Titouan Leclercq et Werner Mérian


Cours de logique

Titouan Leclercq Werner Mérian


[email protected] [email protected]

Printemps 2024
Version compilée le 29 juin 2025 à 21 h 05 min 15 s
Nanos gigantum umeris insidentes

Des nains sur des épaules de géants


Table des matières

Introduction générale ix

Sommaire xi

I Préliminaires 1

1 Induction 3
1.1 Ensemble inductif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Construction d’un ensemble inductif . . . . . . . . . . . . . . . . . . 3
1.1.2 Récursion et induction . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Relation inductive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Construction d’une relation inductive . . . . . . . . . . . . . . . . . 9
1.2.2 Dérivation d’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Logique propositionnelle 15
2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Séquents propositionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Théorème de compacité . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2 Calcul des séquents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Correction du calcul des séquents . . . . . . . . . . . . . . . . . . . . 22

3 Calcul des prédicats 27


3.1 Signatures, termes et formules . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.1 Définition d’une signature . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 Termes et formules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.3 Variables et substitution . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Bases de théorie des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Structure et interprétation . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Satisfaction, modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.3 Théories et conséquence logique . . . . . . . . . . . . . . . . . . . . . 36
3.2.4 Morphismes de modèles . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.5 Agrandir des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3 Syntaxe de preuves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.1 Déduction naturelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.2 Théorème de complétude . . . . . . . . . . . . . . . . . . . . . . . . 44

v
vi Table des matières

4 Théorie des ensembles ordonnés 55


4.1 Ensembles ordonnés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.2 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.3 Bornes et majorations . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.4 Ordre bien fondé et bon ordre . . . . . . . . . . . . . . . . . . . . . . 60
4.2 Treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.1 Demi-treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.2 Treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.3 Algèbre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.4 Algèbre de Heyting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.5 Treillis complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.3.1 Définitions et caractérisations . . . . . . . . . . . . . . . . . . . . . . 71
4.3.2 Ultrafiltre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.3 Filtre et morphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5 Topologie 79
5.1 Topologie générale et filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1 Définitions de topologie générale . . . . . . . . . . . . . . . . . . . . 80
5.1.2 Filtres, limites, séparation . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.3 Valeur d’adhérence, compacité . . . . . . . . . . . . . . . . . . . . . 85
5.1.4 Topologie induite et topologie produit . . . . . . . . . . . . . . . . . 88
5.2 Dualité de Stone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.1 Ouverts-fermés et espace de Stone . . . . . . . . . . . . . . . . . . . 92
5.2.2 Spectre d’une algèbre de Boole . . . . . . . . . . . . . . . . . . . . . 93
5.2.3 Dualité de Stone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3 Topologie métrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.1 Espace métrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.2 Caractérisations séquentielles . . . . . . . . . . . . . . . . . . . . . . 99
5.3.3 Complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

II Théorie des ensembles 109

6 Formaliser les mathématiques 111


6.1 Axiomes de ZFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.1.1 Premiers axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.1.2 Les schémas d’axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.1.3 L’axiome de l’infini et les entiers . . . . . . . . . . . . . . . . . . . . 115
6.1.4 Axiome du choix et fonctions . . . . . . . . . . . . . . . . . . . . . . 116
6.1.5 Axiome de fondation . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.1.6 Résumé : les fragments de ZFC . . . . . . . . . . . . . . . . . . . . . 122
6.2 Construction des autres ensembles de nombres . . . . . . . . . . . . . . . . 122
6.2.1 Les entiers naturels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.2.2 Les entiers relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.2.3 Les nombres rationnels . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.2.4 Les nombres réels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Table des matières vii

7 Ordinaux, cardinaux, cofinalité 139


7.1 Ordinaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.1.1 Description des ordinaux . . . . . . . . . . . . . . . . . . . . . . . . 140
7.1.2 Induction transfinie . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.1.3 Ordinal de Hartogs et axiome du choix . . . . . . . . . . . . . . . . . 153
7.2 Cardinaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.2.1 Axiome du choix et dichotomie cardinale . . . . . . . . . . . . . . . . 155
7.2.2 Nombre cardinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.2.3 Arithmétique cardinale . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.3 Cofinalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.3.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.3.2 Répartition des cofinalités . . . . . . . . . . . . . . . . . . . . . . . . 167
7.3.3 Théorème de König . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

8 Combinatoire dans les ordinaux 171


8.1 Clubs et ensembles stationnaires . . . . . . . . . . . . . . . . . . . . . . . . 171
8.1.1 Topologie des ordinaux . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.1.2 Filtre des clubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.1.3 Exemples importants . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.2 Lemme de Fodor et applications . . . . . . . . . . . . . . . . . . . . . . . . 178
8.2.1 Lemme de Fodor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.2.2 Théorème de Silver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

9 Modèles de ZFC 187


9.1 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.1.1 Relativisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.1.2 L’univers bien fondé de Von Neumann . . . . . . . . . . . . . . . . . 190
9.2 Vers le théorème de réflexion . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.2.1 Rang et parties héréditaires . . . . . . . . . . . . . . . . . . . . . . . 194
9.2.2 Absoluité et réflexion . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.3 L’univers constructible de Gödel . . . . . . . . . . . . . . . . . . . . . . . . 204
9.3.1 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.3.2 Les propriétés de l’univers constructible . . . . . . . . . . . . . . . . 209

10 Théorie descriptive des ensembles 213


10.1 Stabilité des espaces polonais . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10.1.1 Opérations élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . 214
10.1.2 La hiérarchie de Borel . . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.1.3 Compactification d’Alexandrov . . . . . . . . . . . . . . . . . . . . . 221
10.2 Espace de Cantor et de Baire . . . . . . . . . . . . . . . . . . . . . . . . . . 225
10.2.1 Schémas de Cantor et de Baire . . . . . . . . . . . . . . . . . . . . . 225
10.2.2 Caractérisation des espaces de Cantor et de Baire . . . . . . . . . . . 229

III Théorie des modèles 235

11 Langage, structures et théories 237


viii Table des matières

IV Calculabilité et incomplétude 239

12 Langages rationnels 241


12.1 Alphabet, mot, langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.1.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.1.2 Aspect algébrique des langages . . . . . . . . . . . . . . . . . . . . . 245
12.2 Automate fini et langage reconnaissable . . . . . . . . . . . . . . . . . . . . 246
12.2.1 Définition d’un automate . . . . . . . . . . . . . . . . . . . . . . . . 246
12.2.2 Langage rationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
12.2.3 Constructions d’automates . . . . . . . . . . . . . . . . . . . . . . . 249
12.2.4 Propriétés d’automates . . . . . . . . . . . . . . . . . . . . . . . . . 255
12.3 Vers le théorème de Myhill-Nérode . . . . . . . . . . . . . . . . . . . . . . . 259
12.3.1 Conditions de rationnalité d’un langage . . . . . . . . . . . . . . . . 260
12.3.2 Automate minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.3.3 Les langages reconnus par monoïde . . . . . . . . . . . . . . . . . . . 267

13 Langages algébriques 269


13.1 Grammaire hors contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
13.1.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
13.1.2 Grammaires sous formes particulières . . . . . . . . . . . . . . . . . 273
13.2 Arbres de dérivation, automates à pile . . . . . . . . . . . . . . . . . . . . . 277
13.2.1 Ambigüité et dérivations . . . . . . . . . . . . . . . . . . . . . . . . . 277
13.2.2 Automates à pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

14 Fonctions récursives, machines de Turing 283


14.1 Fonctions primitives récursives . . . . . . . . . . . . . . . . . . . . . . . . . 283
14.1.1 Définitions et premières fonctions . . . . . . . . . . . . . . . . . . . . 284
14.1.2 Codages primitifs récursifs . . . . . . . . . . . . . . . . . . . . . . . . 290
14.2 Machines de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
14.2.1 Premiers pas dans le formalisme des machines de Turing . . . . . . . 298
14.2.2 Équivalence de machines de Turing . . . . . . . . . . . . . . . . . . . 300
14.2.3 Équivalence avec les fonctions récursives . . . . . . . . . . . . . . . . 300

V Théorie de la démonstration 303

15 Calcul des séquents 305

Bibliographie 307
Introduction générale

Il est intéressant, en étudiant la logique, de voir combien ce domaine est difficile à situer :
à l’origine une part de la philosophie, puis devenue plus tard une branche mathématique,
elle est de nos jours omniprésente en informatique. Autant dire que ce livre est bien
trop court pour vous donner, cher lecteur, une vision réunissant tous ces domaines et se
voulant complète. Les auteurs étant principalement rodés à la logique mathématique et à
l’informatique, ce livre portera largement sur ces deux visions : la logique sera un outil
formel d’analyse du discours mathématique en premier lieu. Cependant, il est important de
rappeler que ce domaine n’est pas exempt de controverses, loin s’en faut. Ces controverses
sont rarement de nature mathématique, et encore moins de nature informatique : elles
appartiennent pleinement à la philosophie.
Il est donc nécessaire d’accepter dès le début de ce livre que, dans un objectif de péda-
gogie, et puisque les controverses peuvent nuire dans un premier temps à la compréhension
de certaines notions, des choix d’ordre philosophique seront régulièrement pris au long de
cet ouvrage. Lorsque cela arrivera, la position qui sera tenue sera argumentée si possible,
et le lecteur est libre de ne pas adhérer à l’interprétation qui sera donnée de certains
phénomènes. Le contenu du livre, lui, se trouve avant tout dans la compréhension des
objets étudiés et dans les résultats démontrés.
Pour commencer, qu’est-ce que la logique ? Au sens philosophique, cela désigne l’étude
du raisonnement, mais son utilisation sur les mathématiques permet d’être plus précis.
La logique est l’étude du langage mathématique. C’est donc la branche qui s’intéresse en
premier lieu à comment parler des mathématiques.
Cela mène à une première distinction importante : qu’est-ce que n’est pas la logique ?
Elle n’est pas, du moins dans le cadre donné dans ce livre, une recherche d’une vérité
pré-existante aux mathématiques. Au contraire, la logique mathématique commence par
l’acceptation des mathématiques, pour mieux les étudier. Cela peut apparaître comme un
raisonnement circulaire : quelle valeur prend une étude d’un système se basant sur le système
lui-même ? N’a-t-on pas un raisonnement erroné à partir du moment où nous utilisons
les mathématiques pour parler des mathématiques ? La réponse que nous adopterons ici
est la suivante : la logique mathématique, utilisant les mathématiques pour étudier le
langage mathématique, est un procédé empirique, et les conclusions qu’elle tire ne sont à
proprement parler que des résultats portant sur des objets mathématiques. Cependant, de
la même manière qu’une mesure d’intensité électrique fait penser à un électricien que des
électrons sont en mouvement alors que c’est la théorie électrique elle-même qui permet de
supposer la pertinence de cette mesure, nos résultats mathématiques nous donnent à croire
que quelque chose arrive, au-delà d’un simple fait mathématique.
Ainsi, quand nous prouvons qu’il ne peut exister de preuve, dans ZFC, que ZFC est
cohérente, où ZFC est la théorie des ensembles dans laquelle toutes les mathématiques
usuelles peuvent se faire, nous en extrapolons largement qu’il n’existe pas de preuve de la
cohérence de ZFC. Pourtant, les deux expressions ne signifient pas strictement la même

ix
x Introduction générale

chose, mais il est cette conviction forte chez nombre de logiciens que cette étude des
mathématiques par les mathématiques nous apprend des choses sur leur nature.
Beaucoup d’auteurs, pour distinguer ces mathématiques usuelles qui sont celles que
nous utilisons lorsque l’on fait de la logique des théories formelles utilisées au sein de la
logique pour représenter les mathématiques usuelles, utilisent l’expression « méta-théorie »
pour la première. Ainsi la logique se place dans une méta-théorie pour étudier des théories.
En utilisant ce terme, la thèse des paragraphes précédents est que l’étude des théories nous
renseigne sur la méta-théorie.
Notons particulièrement la différence de traitement entre les deux : nous étudierons
la théorie, tandis que la méta-théorie sera considérée comme acquise. Ainsi la théorie
ZFC permet d’imaginer un langage formel pour parler des ensembles, mais elle se formule
elle-même dans un univers que l’on considère comme pré-existant et vérifiant beaucoup de
propriétés qu’on ne saurait écrire au sein de ce même univers. Face au trilemme d’Agrippa,
le choix est donc fait de prendre une posture dogmatique initiale, en gardant l’esprit ouvert
sur ce que l’étude logique peut nous faire réviser sur cet univers mathématique.
Cet ouvrage est principalement basé sur un semestre de cours suivi par les deux auteurs,
qui couvrait les 4 thèmes principaux de la logique :
• la théorie des ensembles
• la théorie des modèles
• la calculabilité
• la théorie de la démonstration
C’est donc naturellement que ce cours sera structuré suivant ces quatres parties, mais en
ajoutant une partie préliminaire présentant les outils de base qui seront utilisés en logique :
l’induction, la logique propositionnelle, le calcul des prédicats, la théorie des ensembles
ordonnés et, enfin, la topologie. Nous pensons en effet que ces prérequis méritent d’être
traités à part, à la fois pour leur importance dans toutes les autres parties et pour pouvoir
s’attarder plus longuement sur des éléments qui ne sont pas toujours approfondis dans un
thème donné.
Nous remercions nos professeurs Arnaud Durand, Thomas Ibarlucia, Thierry Joly et
Alessandro Vignati, du master LMFI, ainsi que Daniel Hirschkoff, Pascal Koiran, Natacha
Portier et Colin Riba qui ont été nos professeurs à l’ÉNS de Lyon et dont les cours ont été
de magnifiques portes d’entrées vers le monde de la logique.
Nous remercions aussi Jean Caspar pour les nombreuses parties relues et Abdelrahman
Zighem pour les discussions enrichissantes à propos de la topologie qui ont nourri ce livre.
Le contenu de cet ouvrage est avant tout un mélange des cours de ces différents
professeurs, ainsi que de divers livres lus par leurs auteurs. Nous pouvons dès maintenant
citer ceux de René Cori et Daniel Lascar ([CLK03] et [CL93]), qui offrent une excellente
introduction à la logique mathématique sous tous ses aspects.
Sommaire

Cet ouvrage est constitué de 5 parties : la partie préliminaire et les parties fondamentales.
La partie préliminaire cherche à donner des bases suffisantes pour aborder sereinement la
logique en général, et les parties fondamentales du reste du livre en particulier. Les parties
fondamentales, elles, donnent un aperçu des domaines traités en logique, autour de 4 axes :
• la théorie des ensembles, qui étudie la théorie ZFC et ses implications.
• la théorie des modèles, qui étudie les propriétés des classes de structures et des
théories logiques du premier ordre.
• la calculabilité, qui ajoue aux mathématiques la notion de calcul et cherche à répondre
à des questions telles que « comment peut-on concrètement décider un problème ? »
• la théorie de la démonstration, qui formalise et étudie les propriétés des systèmes de
démonstration.
Mise à part la première partie, qui est supposée connue pour aborder les autres, toutes
les parties sont principalement indépendantes. On fera parfois référence à une autre partie
dans l’une d’elle, mais seulement pour des éléments sporadiques. Par exemple, la partie
sur la théorie des modèles utilisera la notion de cardinal, qui est définie dans la partie de
théorie des ensembles, mais n’utilisera pas de notion poussée à son propos (on n’aura pas
à maîtriser la cofinalité d’un cardinal ou à construire des ensembles stationnaires pour
apprendre la théorie des modèles).
Décrivons plus précisément les différentes parties.

Préliminaires La première partie contient ce qui est considéré par les auteurs comme
essentiel pour aborder sereinement la suite de l’ouvrage. Cette partie est un mélange de
différents cours : les cours que les auteurs ont suivi à l’ÉNS de Lyon et les cours de mise à
niveau proposés avant la rentrée au master LMFI. Elle naît justement de l’observation que
les cours de mise à niveau, cherchant à donner les bases de la logique du premier ordre
en deux semaines de cours, abordent parfois trop rapidement les sujets (faute de temps,
certainement pas faute d’investissement du professeur en charge). Au contraire, à l’ÉNS,
les cours proposés, particulièrement en L3, permettent d’aborder bien plus en détails les
structures les plus élémentaires qui sont utiles en logique. Ces chapitres sont ainsi une
tentative de synthèse des cours de l’ÉNS dans l’objectif d’être directement utilisables pour
aborder le reste de la logique, en suivant le plan proposé lors des cours de mise à niveau
du LMFI.
Les différents chapitres sont structurés de la façon suivante :
• Le chapitre 1 s’attarde sur les structures inductives. Celles-ci sont en quelque sorte
l’exemple paradigmatique des objets syntaxiques, c’est-à-dire des objets que l’on peut
traiter formellement. Il est en effet difficile d’imaginer sans autre information comment
traiter des ensembles infinis (et que dire des ensembles infinis indénombrables), là

xi
xii Sommaire

où l’idée de manipuler un arbre binaire, ou une suite de 0 et de 1, est intuitivement


acceptable.
L’approche que nous développons ici utilise des ensembles d’arbres étiquetés : pour
définir un ensemble inductif, la structure même de l’ensemble nous permet d’utiliser
nos objets sans ambigüité. Cette approche a l’avantage d’être plus intuitive, mais le
désavantage d’être moins convaincante d’un point de vue formel. L’autre possibilité,
que l’on peut retrouver chez différents auteurs, est de considérer les objets syntaxiques
comme des mots particuliers, c’est-à-dire comme des suites finies de lettres, sur un
alphabet spécifié par avance.
Nous voyons dans ce chapitre comment raisonner sur des structures inductives,
particulièrement comment définir des fonctions par récursion et prouver des propriétés
par induction. Les définitions par inductions et le théorème de Knaster-Tarski sont
en partie tirés de [WIN96].
• Le chapitre 2 décrit la logique propositionnelle comme une porte d’entrée vers la
logique du premier ordre. D’une certaine façon, cette logique peut être vue comme
une logique d’ordre 0, et nous pensons que l’étude de ce cas particulier et restreint
permet de faciliter l’étude qui suit, du calcul des prédicats. Cela nous permet de
montrer différentes propriétés dans un contexte où la technicité est réduite, pour
mieux en aborder l’essence.
La logique propositionnelle est abordée dans la plupart des ouvrages traitant de la
logique, puisque sujet incontournable : citons par exemple [CLK03] et [RDN04].
• Le chapitre 3 est la continuité du deuxième, et aborde le calcul des prédicats de la
logique du premier ordre. Il introduit aussi des thèmes majeurs de la suite de l’ouvrage :
les modèles et les systèmes de démonstration du premier ordre. Ce chapitre peut être
vu comme le plus indispensable de la partie préliminaire, puisque tous les chapitres
qui suivent ont besoin de celui-ci. Les formules du premier ordre constituent le cœur
de la logique mathématique, d’où le soin particulier apporté à leur introduction et à
leur traitement dans un chapitre dédié.
Comme pour le chapitre précédent, le sujet est abordé dans la majorité des ouvrages.
• Le chapitre 4 porte sur la théorie des ensembles ordonnés. Il permet d’introduire
deux notions essentielles : les structures ordonnées et les filtres. La première n’est
pas directement utile dans les parties fondamentales, mais offre un point de vue riche
pour étudier de nombreux phénomènes liés à la logique. Elle permet aussi, de façon
plus pragmatique, de démontrer une version forte du théorème de Knaster-Tarski,
déjà utilisé dans le premier chapitre. La deuxième notion, les filtres, est utile dans
la première moitié de l’ouvrage. Elle joue un rôle dès le chapitre qui suit et permet
d’interpréter de façon féconde certains aspects de théorie des ensembles, notamment
pour traiter les clubs, mais elle est avant tout vitale pour la théorie des modèles, où
les ultraproduits sont l’une des constructions les plus présentes.
Pour l’étude des treillis et des notions connexes, [CLK03] donne un point de vue
succinct mais suffisant pour étudier les bases de la logique, tandis que [Grä11] fournit
une étude approfondit de ces sujets. Citons aussi [Rut67] pour une introduction
dédiée aux treillis et structures ordonnées.
• Le chapitre 5 aborde la topologie. Le langage topologique est effectivement important
en logique, car il est éclairant voire directement utile. Un exemple est celui de la
topologie sur les ordinaux, dont l’importance se révèlera en théorie des ensembles,
mais qui est bien plus fluide en ayant déjà étudié les bases de la topologie générale.
Sommaire xiii

Nous y verrons les définitions élémentaires de topologie générale pour traiter de façon
abstraite les espaces topologiques, d’une façon proche de la théorie des ensembles.
Cela nous donnera l’occasion de voir le théorème de Tychonov, incontournable de
la topologie générale. Nous traiterons aussi de la dualité de Stone, dans une version
adaptée pour ne pas demander de connaissances en théorie des catégories : comme
pour la théorie des ordres, cette étude est une occasion de voir une correspondance
pour sa profondeur plus que pour un simple intérêt direct, car elle permet de montrer
que des phénomènes topologiques peuvent correspondre à des phénomènes logiques.
Enfin, ce chapitre comporte un rappel des notions de topologie métriques nécessaires
à la théorie descriptive des ensembles.
Relevons cependant que ce chapitre n’est en aucun cas un cours de topologie pour
un élève débutant, et cherche avant tout à fixer le vocabulaire et à offrir un point
de vue différent, plus algébrique, à un lecteur ayant vu de la topologie métrique
principalement, et sous un prisme plus analytique.
La référence principale sur la topologie générale et l’utilisation des filtres dans son
étude est [Bou71]. A propos de la dualité de Stone, le sujet est traité dans [AC98] (avec
une présentation des ensembles ordonnés qui peut aussi être utilisée pour approfondir
le chapitre 4). On peut aussi se référer à l’article original [Sto36]. A propos de la
topologie métrique, un cours de licence classique de topologie suffit, par exemple
[Has21] qui aborde aussi la topologie générale.

Théorie des ensembles La théorie des ensembles, née des travaux de Cantor, est connue
pour permettre d’y formaliser l’ensemble des mathématiques. Même la partie préliminaire,
donnée avant cette partie, peut en fait y être exprimée. En ce sens, elle introduit donc
des outils particulièrement généraux qui peuvent être utiles dans d’autres domaines. Nous
mettons donc, dans un premier temps, l’accent sur ces notions incontournables de la théorie
des ensembles qui peuvent être utilisées dans d’autres domaines, et donnons des bases pour
tout lecteur voulant acquérir un bagage minimal pour parler de théorie des ensembles.
La deuxième partie, plus spécialisée, décrit trois parties plus isolées de la théorie des
ensembles pour donner un panorama de ce que l’on peut étudier grâce à cette théorie. Les
livres utilisés comme références propres à cette partie sont [Kri98], [Deh17] et [Kun83] :
ceux-ci abordent des notions dépassant le cadre de notre ouvrage, décrivant en particulier
la méthode du forcing.
La structure des chapitres est la suivante :
• Le chapitre 6 se concentre sur l’aspect le plus pratique de la théorie des ensembles,
en montrant comment il est possible de reconstruire toutes les mathématiques en
utilisant la théorie ZFC. Le début de ce chapitre est donc une description des axiomes
de ZFC, pour pouvoir les manipuler. Plutôt que de simplement donner une liste
de ces axiomes, nous les introduisons les uns après les autres pour permettre au
lecteur de se familiariser avec chacun et avec ses quelques conséquences directes. Cela
nous permet de donner par exemple le lemme d’effondrement de Mostovski, résultat
important en théorie des ensembles. Le reste du chapitre est dédié à la construction
des ensembles les plus basiques que nous manipulons, des entiers jusqu’aux réels.
Les constructions ensemblistes sont considérées dès les ouvrages de Bourbaki, dans
[Bou07] par exemple. Cependant, la construction des entiers n’est pas celle utilisée
ici (qui est due à Von Neumann). La construction des nombres réels à travers la
complétion idéale est adaptée de la présentation faite dans [AC98].
• Le chapitre 7 décrit les ordinaux, les cardinaux et la cofinalité. Ces notions sont en
quelque sorte les points de départ de la théorie des ensembles à proprement parler.
xiv Sommaire

Nous y aborderons aussi l’intérêt de l’axiome du choix, qui est énoncé dans le chapitre
précédent mais dont l’importance apparait grâce au lemme de Zorn, se basant sur la
récursion transfinie. L’axiome du choix est ensuite utilisé dans l’ensemble du chapitre,
car celui-ci est nécessaire pour assurer un bon comportement à la hiérarchie cardinale.
Nous utilisons les cardinaux comme moyen d’aborder l’hypothèse du continu et le
problème de définir 2κ en tant que fonction cardinale, motivant l’étude de la cofinalité.
Le chapitre se conclut alors sur les conditions d’Easton pour définir une fonction
correspondant à l’exponentielle cardinale.
• Le chapitre 8 étudie la combinatoire des ordinaux. Le premier objectif est d’intro-
duire la notion d’ensemble stationnaire et d’offrir quelques applications élémentaires
permettant de comprendre leur fonctionnement. Nous y étudions en préliminaire la
topologie de l’ordre pour les ordinaux, puis voyons la notion de club ainsi que les
ensembles stationnaires et non stationnaires.
Une fois la notion de club introduite, les questions d’intérêt du chapitre sont de
chercher à quel point le filtre des clubs est stable par des intersections de grandes
familles et combien on peut construire d’ensembles stationnaires disjoints. L’étude
de ces questions est l’occasion d’introduire le lemme de Fodor sur les fonctions
régressives.
Nous voyons pour finir le chapitre une application du lemme de Fodor à un point
important du chapitre 7 : la détermination de l’exponentielle cardinale. Plus pré-
cisément, nous y voyons une démonstration combinatoire du théorème de Silver,
décrivant le comportement de la fonction κ 7→ 2κ pour des cardinaux singuliers.
• Le chapitre 9 est consacré à l’étude des modèles de ZFC. Comme la portée de la
partie de théorie des ensembles ne couvre pas la méthode du forcing, l’objectif est
surtout de donner une idée du fonctionnement des modèles internes de ZFC et des
premières preuves de cohérence relative qui en découlent.
Ce chapitre est aussi l’occasion de parler du schéma de théorèmes de réflexion,
qui est un résultat majeur. Pour pouvoir en parler au mieux, nous introduisons ce
théorème en décrivant la notion d’absoluité, qui nous est utile durant tout le chapitre.
L’absoluité est accompagnée d’une étude sommaire de la hiérarchie de Lévy, décrivant
comment on peut trouver efficacement des notions absolues.
Enfin, nous nous attardons sur l’univers constructible de Gödel, L, qui nous permet
de justifier que AC (sous une version particulièrement forte) ainsi que HC (là encore,
sous une version forte) sont relativement cohérents avec ZF.
• Le chapitre 10 se concentre sur la théorie descriptive des ensembles. Cette théorie, à
mi chemin entre la topologie générale et la théorie des ensembles, étudie les propriétés
des espaces polonais. Nous n’allons voir que les bases de cette théorie, en présentant
les propriétés essentielles des espaces polonais ainsi que l’étude de deux espaces
polonais parmi les plus importants : l’espace de Cantor et l’espace de Baire.
Nous abordons d’abord les propriétés de stabilité des espaces polonais : il existe
plusieurs opérations qui permettent, à partir d’espaces polonais déjà identifiés, d’en
construire de nouveaux. Cela nous offrira aussi l’occasion de définir la compactification
d’Alexandrov et quelques termes de topologie générale.
Le but de la deuxième partie du chapitre est de caractériser les espaces de Cantor et
de Baire (respectivement 2N et NN munis de leur topologie produit), ce qui passe par
la définition des schémas de Cantor et de Lusin.

Théorie des modèles A FAIRE


Sommaire xv

Calculabilité La calculabilité est un domaine riche, né directement de la crise des


fondements. L’objectif premier derrière ce domaine est de définir (puis étudier) la notion
de fonction que l’on peut effectivement calculer. Sa naissance découle directement du
programme de Hilbert, qui a mené au besoin de définir ce qu’est une méthode systématique
pour résoudre un problème. Cette idée de méthode systématique a donné naissance à notre
idée moderne d’algorithme, et dont un exemple typique est celui de la résolution d’équation
du second degré (d’où son nom, provenant de l’auteur Al Khawarizmi et en référence à son
traité d’algèbre dans lequel il introduit la première résolution systématique d’une équation
du second degré).
La notion de fonction calculable a été formalisée par trois formalismes importants :
par les fonctions récursives de Gödel en 1934, par les machines de Turing introduites par
Alan Turing dans son article [Tur36], et par le λ-calcul introduit par Alonzo Church dans
les années 1930. Ces trois formalismes sont ensuite prouvés équivalents en 1938 (d’après
[Kle79]), donnant ce qu’on appelle la thèse de Church-Turing.
Cette partie dédiée à la calculabilité est scindée en deux sous-parties principales : la mise
en place de la calculabilité, et son utilisation. Dans la première sous-partie (chapitre 12,
chapitre 13 et A ECRIRE), nous parlons de la hiérarchie de Chomsky qui décrit les
formalismes de langages plus faibles ou équivalents à celui des langages récursivement
énumérables. La volonté derrière ces premiers chapitres est de permettre au lecteur de
se familiariser progressivement avec les automates pour plus facilement comprendre les
machines de Turing, qui est un formalisme essentiel pour la calculabilité. Les références
principalement utilisées dans cette sous-partie sont [Car] et [Wol01]. La deuxième sous-
partie se concentre sur l’utilisation de la calculabilité, et son utilisation première dans
l’histoire : les théorèmes d’incomplétude de Gödel. Cette sous-partie se terminer avec
des versions générales des théorèmes d’incomplétude de Gödel et de l’indéfinissabilité de
Tarski, justifiant a posteriori les utilisations de ces théorèmes dans le chapitre 9. Pour cette
sous-partie, nous utilisons comme référence principale [MP22].
La structure des chapitres est la suivante :
• Le chapitre 12 présente les bases du formalisme lié à la calculabilité : la notion
de mot, de langage et de classe de langage, ainsi que la notion d’automate. Ce
chapitre s’attarde principalement sur les langages rationnels en en donnant différentes
caractérisations et en manipulant des automates finis. L’objectif principal de ce
chapitre est de montrer la richesse de la théorie des automates et les résultats
incontournables de cette théorie, et d’utiliser cette théorie pour donner une vision
concrète de la théorie des langages.
La première partie du chapitre est dédiée à cette présentation du formalisme, en
donnant les définitions de mot et de langage, et en profite pour donner un point de
vue algébrique à travers la propriété universelle du monoïde libre et la définition de
langage reconnu par un monoïde. On cherche dans ce chapitre à présenter avant tout
les notations et usages de base pour faciliter la lecture du reste du chapitre et des
chapitres suivants.
La deuxième partie présente la classe des langages rationnels à travers les expressions
rationnelles et les automates finis. Nous voyons ensuite l’équivalence entre les deux
formalismes, en montrant aussi l’équivalence entre plusieurs notions d’automates, et
des constructions sur les automates.
Enfin, la dernière partie du chapitre décrit des constructions plus abstraites et
plus fortes : le théorème de Myhill-Nérode et l’équivalence entre les automates et
les monoïdes. Le premier résultat présenté est le lemme de l’étoile, permettant de
montrer facilement que certains langages ne sont pas rationnels, pour ensuite présenter
xvi Sommaire

le théorème de Mihyll-Nérode en tant que théorème plus strict. Le théorème est


ensuite approfondi à travers la construction explicite de l’automate minimal et de la
congruence de Nérode. Enfin, le chapitre se termine en présentant la construction du
monoïde des transitions, montrant que les langages reconnus par des monoïdes finis
sont eux aussi des langages rationnels.
Remarquons que la théorie du λ-calcul n’est pas abordé dans cette partie. Elle l’est
dans la partie suivante, où l’ajout du typage apporte un sens plus profond aux programmes.

Théorie de la démonstration A FAIRE


Ce livre est un livre de cours se voulant autonome. Pour permettre au lecteur de
travailler et d’approfondir ce cours, nous proposons donc des exercices. Ces exercices sont
de deux types : les exercices au sein d’un chapitre et les exercices à la fin d’un chapitre.
Les exercices au sein d’un chapitre sont des exercices relativement simples, souvent
calculatoires, cherchant à faire pratiquer les bases des définitions. Certains résultats dont
la démonstration est en exercice sont utilisés pour des démonstrations dans la suite, mais
ce sont des résultats jugés suffisamment naturels pour ne pas être remis en question même
sans démonstration. Un lecteur n’ayant donc pas l’envie de faire ces exercices n’aura pas
de gros souci à suivre le reste, mais il n’aura moins l’occasion de vérifier qu’il maîtrise les
bases du cours.
Les exercices en fin de chapitre sont en général plus techniques. Certains sont même
des problèmes entiers. Ceux-ci sont tirés de différentes sources, en premier lieu de TD ou
de DM vus pendant le cursus des auteurs.
Cher lecteur, il ne nous reste qu’à vous souhaiter une bonne lecture.
Première partie

Préliminaires

1
Chapitre 1
Induction

Table des sous-matières


1.1 Ensemble inductif . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Construction d’un ensemble inductif . . . . . . . . . . . . . . . . 3
1.1.2 Récursion et induction . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Relation inductive . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Construction d’une relation inductive . . . . . . . . . . . . . . . 9
1.2.2 Dérivation d’arbre . . . . . . . . . . . . . . . . . . . . . . . . . . 13

’un des outils fondamentaux en logique est l’induction. Intuitivement, elle peut se
L voir comme une généralisation du principe de récurrence. Nous allons cependant
adopter un formalisme différent de celui utilisé pour faire une simple récurrence. Les
objets principaux sur lesquels nous utiliserons l’induction sont les ensembles inductifs et les
relations inductives, que nous présenterons. Ces deux objets sont associés à des formalismes
différents : le premier aux grammaire en forme de Backus-Naur, et le deuxième aux points
fixes et à la théorie des treillis. Comme la théorie des treillis sera étudiée plus tard dans
cette partie préliminaire, nous ne traiterons qu’un cas restreint suffisant pour le travail sur
l’induction.
L’objectif de ce chapitre est de donner une justification mathématique aux procédés
qui seront utilisés par la suite, et d’offrir un modèle mathématique derrière le formalisme
introduit, pour le lecteur qui en aurait besoin. Le point essentiel est avant tout de comprendre
comment fonctionne une preuve par induction et comment utiliser les objets inductifs,
puisqu’ils seront utilisés sans arrêt par la suite. Cependant, les justifications mathématiques
données sont partielles : tous les cas ne se ramènent pas à ceux traités de façon évidente.
Le lecteur le plus prudent devra trouver comment adapter le formalisme donné dans ce
chapitre aux multiples variantes qui seront utilisées sans le dire par la suite.

1.1 Ensemble inductif


1.1.1 Construction d’un ensemble inductif
Au niveau intuitif, les ensembles finis semblent avoir une réalité plus robuste que les
ensembles infinis. Il est en effet très facile de se convaincre à partir de règles simples qu’il
existe un ensemble à 3 éléments, ou à n éléments pour n aussi grand que l’on veut (bien
que se convaincre qu’il existe un ensemble à 300! éléments semble légèrement plus long).
Cette robustesse découle du fait qu’on peut explicitement les construire, et cette possibilité

3
4 Chapitre 1. Induction

n’existe que pour un ensemble fini. Pourtant, l’ensemble N tend aussi à être plus facilement
accepté qu’un ensemble tel que R/Q. Un point essentiel qui rend le premier ensemble
logiquement plus simple que le deuxième est qu’il est facile à engendrer : l’ensemble N est
constitué de l’élément 0 et de l’opération S définie par n 7→ n + 1, et tout autre élément de
N peut être construit à partir de ces deux éléments. Sa structure est donc fondamentalement
simple, et peut être décrite en des termes finis.
C’est exactement cette idée de structure générée par des termes finis qui est formalisée
par les ensembles inductifs. Un ensemble inductif va être un ensemble obtenu par une
liste de générateurs, chaque générateur ayant une arité (un nombre d’objets qu’il prend
en entrée). Dans cette définition d’ensemble inductif, l’exemple canonique est bien sûr N
lui-même, qu’on peut définir par :
• un constructeur sans argument, 0
• un constructeur à un argument, S
Avant de donner la définition d’ensemble inductif, nous allons donner un formalisme
pour parler des constructeurs.
Définition 1.1.1.1 (Signature). Une signature est un couple C, α tel que α : C → N.
On appelle C l’ensemble des constructeurs et, pour c ∈ C, α(c) est appelé l’arité de c.
On appelle en général signature la donnée des symboles qui constituent une structure
munis d’une forme de sens (ici leur arité). La présentation qui en est faite ici est assez
aride dans son formalisme : l’important est d’accepter que l’on peut spécifier correctement
un ensemble inductif par certaines données. Pour une description plus systématique, mais
utilisant le langage catégorique, on peut par exemple se référer à [Jac99].
Une signature sera généralement donnée sous forme dite de Backus-Naur. Cette présen-
tation se décompose de la façon suivante :

a, b, . . . ::= cas 1 | cas 2 | . . .

où a, b, . . . représentent les éléments que les constructeurs définissent, et où chaque cas est
la définition d’un nouveau constructeur (ou d’une famille de constructeurs). Par exemple
pour le cas de N, nous avons :
n ::= 0 | S n
Il est fréquent d’employer des variables qui seront quantifiées hors de la définition à
proprement parler, comme
ℓ ::= nil | cons(a, ℓ)
où a ∈ A et A est certain ensemble fixé au préalable. Cette définition doit se lire comme
l’ensemble ({nil} ∪ A, α) où α est défini par :

α : C −→ N
nil 7−→ 0
a(∈ A) 7−→ 1

Ainsi, plutôt que de considérer un constructeur à deux arguments ayant un argument


extérieur à la signature, on définit formellement un famille de constructeurs à un seul
argument.
Voyons maintenant comment associer à une signature un ensemble généré par les
constructeurs donnés dans la signature. L’ensemble généré doit être un ensemble X
contenant, pour chaque x1 , . . . , xn ∈ X et c ∈ C d’arité n, l’objet c(x1 , . . . , xn ), et ne
doit contenir que les objets de cette forme. Nous procédons alors par le bas : un premier
1.1. Ensemble inductif 5

ensemble est construit par l’ensemble C0 = {c ∈ C | α(c) = 0}, puis l’ensemble C1 est
construit par C1 = C0 ∪ {c(x1 , . . . , xn ) | c ∈ C, x1 , . . . , xn ∈ C0 , α(c) = n} et ainsi de suite.
Comme c est simplement un élément dans notre cas, écrire c(x1 , . . . , xn ) n’a pas de sens,
c’est pourquoi l’on va utiliser à la place (c, x1 , . . . , xn ).

Définition 1.1.1.2 (Ensemble inductif sur une signature). Soit (C, α) une signature,
on définit la suite d’ensembles (Xi )i∈N par :
• X0 = ∅
• Xn+1 = {(c, x1 , . . . , xp ) | c ∈ C, (x1 , . . . , xp ) ∈ (Xn )p , α(c) = p}
L’ensemble inductif engendré par (C, α) est alors l’ensemble
[
X= Xn
n∈N

La définition donnée n’est pas exactement celle décrite plus haut, mais la proposition
suivante assure que l’union finale génère bien le même ensemble avec les deux méthodes.

Proposition 1.1.1.3. Soit (C, α) une signature, X l’ensemble inductif engendré par cette
signature et (Xn ) la suite précédemment construite. Alors

∀n, m ∈ N, n ≤ m =⇒ Xn ⊆ Xm

Démonstration. On procède par récurrence sur n :


• comme X0 = ∅, il est évident que ∅ ⊆ Xm pour tout m ∈ N.
• supposons que Xn ⊆ Xm pour tout m ≥ n. Alors

Xn+1 = {(c, x1 , . . . , xp ) | c ∈ C, (x1 , . . . , xp ) ∈ (Xn )p , α(c) = p}

mais par inclusion, comme (x1 , . . . , xp ) ∈ (Xn )p , on en déduit que (x1 , . . . , xp ) est
aussi dans (Xm )p , pour tout m ≥ n. Ainsi (c, x1 , . . . , xp ) ∈ Xm+1 pour tout m ≥ n,
donc Xn+1 ⊆ Xm pour tout m ≥ n + 1.

Le lemme suivant est un outil de base pour étudier des ensembles inductifs.

Lemme 1.1.1.4 (Lecture unique). Soit une signature (C, α) et l’ensemble X engendré
par cette signature. Alors pour tout élément x ∈ X, il existe c ∈ C et x1 , . . . , xp ∈ X
(possiblement une famille vide si α(c) = 0) telle que p = α(c) et x = (c, x1 , . . . , xp ).

Démonstration. Soit (Xn ) la suite d’ensemble définie précédemment telle que X en est
l’union. Si x ∈ X, alors on trouve n ∈ N tel que x ∈ Xn . Par disjonction de cas sur ce n,
on prouve le résultat :
• si n = 0 alors l’hypothèse x ∈ X0 signifie qu’on a x ∈ ∅ : par absurdité de la prémisse,
la conclusion est vraie.
• si n = m + 1, alors x ∈ Xn signifie que x ∈ {(c, x1 , . . . , xp ) | c ∈ C, (x1 , . . . , xp ) ∈
(Xm )p , α(c) = p} d’où le résultat par définition.
6 Chapitre 1. Induction

Remarque 1.1.1.5. Nous le verrons dans le chapitre 13, mais une BNF peut aussi se lire
comme engendrant un langage, c’est-à-dire un ensemble de suites finies sur un ensemble
fixé à l’avance. On peut par exemple décider de lire l’entier SSS0 comme une simple
suite de symboles, ici la suite (S, S, S, 0). Dans ce cas, le lemme de lecture unique est non
trivial et parfois faux, selon la forme de notre grammaire, et la structure stratifiée d’union
dénombrable n’est plus inhérente à l’ensemble construit. Cette autre approche, qui est celle
utilisée dans [CLK03], a le mérite d’être la plus syntaxique possible (il n’y a aucune forme
d’interprétation des symboles), mais elle nous semble à la fois moins systématique et moins
intuitive, c’est pourquoi nous lui préférons cette structure stratifiée. Cette structure est
plus facilement décrite de façon catégorique par des F -algèbres initiales, comme on peut le
voir présenté dans [Jac99] et qui donne un sens plus profond au théorème 1.1.2.1.

1.1.2 Récursion et induction


Maintenant qu’une construction a été donnée d’un ensemble inductif, il faut vérifier que
le comportement que l’on a décrit est en accord avec le comportement réel de l’ensemble que
l’on a construit. Nous avons dit que l’ensemble engendré par (C, α) doit contenir exactement
les éléments de la forme c(x1 , . . . , xn ) où xi ∈ X pour tout i ∈ {1, . . . , n}, mais une autre
façon de penser le fait que l’ensemble ne contient que des applications de constructeurs
est le fait qu’une fonction partant d’un ensemble inductif est exactement spécifiée par son
comportement sur les constructeurs. De telle fonctions sont appelées récursives, car elles
peuvent faire appel à elles-mêmes pour s’appliquer sur les arguments d’un constructeurs,
comme nous le verrons en pratique. Nous verrons ensuite que ce principe de définition
récursive peut se modifier pour donner le principe d’induction, un analogue à la preuve
par récurrence pour un ensemble inductif quelconque.

Théorème 1.1.2.1 (Propriété universelle des ensembles inductifs). Soit (C, α)


une signature, et X l’ensemble associé à cette signature. Soit un ensemble Y quelconque.
Soit une famille de fonctions {fc }c∈C telles que pour tout c ∈ C, fc : Y α(c) → Y (avec la
convention que Y 0 = {∗} est un singleton quelconque). Alors il existe une unique fonction
f : X → Y telle que

∀c ∈ C, ∀(x1 , . . . , xp ) ∈ X α(c) , f ((c, x1 , . . . , xp )) = fc (f (x1 ), . . . , f (xp ))

On peut représenter l’équation précédente par le diagramme suivant, où l’égalité signifie


que le diagramme commute, c’est-à-dire que les deux chemins possibles pour aller d’un
coin à l’autre du carré sont égaux.

f α(c)
X α(c) Y α(c)
c fc
f
X Y

Démonstration. Soit (Xn ) la suite d’ensemble construite précédemment pour définir X.


On va prouver par récurrence sur n la proposition suivante :

∀n ∈ N, ∃!f : Xn → Y, ∀c ∈ C,
∀(x1 , . . . , xp ) ∈ (Xn )α(c) , f ((c, x1 , . . . , xp )) = fc (fn (x1 ), . . . , fn (xp ))

• Si n = 0, il existe une unique fonction f0 : ∅ → Y et elle vérifie la propriété par


vacuité.
1.1. Ensemble inductif 7

• Soit n ∈ N. Supposons qu’il existe une unique fonction fn : Xn → Y telle que

∀c ∈ C, ∀(x1 , . . . , xp ) ∈ (Xn )α(c) , f ((c, x1 , . . . , xp )) = fc (f (x1 ), . . . , f (xp ))

On définit alors
fn+1 : Xn+1 −→ Y
(c, x1 , . . . , xp ) 7−→ fc (fn (x1 ), . . . , fn (xp ))

On remarque que cette fonction vérifie bien la propriété. De plus, si une autre fonction
g vérifie la propriété, alors pour x ∈ Xn+1 , on trouve c ∈ C et x1 , . . . , xp ∈ Xn tels
que x = (c, x1 , . . . , xp ), on a alors

fn+1 (x) = f ((c, x1 , . . . , xp ))


= fc (fn (x1 ), . . . , fn (xn ))
= g((c, x1 , . . . , xp ))
= g(x)

Donc pour tout x ∈ Xn+1 , fn+1 = g(x), ce qui signifie que fn+1 = g, d’où l’unicité
de fn+1 .
Soit x ∈ X, par définition on trouve n ∈ N tel que x ∈ Xn , et on peut donc définir
f (x) = fn (x). Pour montrer que la fonction est unique, il suffit de remarquer que toute
fonction X → Y vérifiant les prémisses du théorème induit une fonction sur chaque Xn , et
doit donc coïncider avec chaque fn sur Xn .

Remarque 1.1.2.2. Pour une signature (C, α) et un ensemble associé X, chaque c ∈ C peut
maintenant s’interpréter comme une fonction c : X α(c) → X. Nous confondrons dorénavant
le constructeur et la fonction associée, et écrirons donc sans distinction (c, x1 , . . . , xp ) et
c(x1 , . . . , xp ) pour un constructeur c ∈ C.

Remarque 1.1.2.3. On peut trouver plus de détails sur les définitions par induction dans
[WIN96], au chapitre 3.

Cet outil nous permet maintenant de définir des fonctions dont le domaine est un
ensemble inductif en utilisant sa structure.

Exemple. Donnons un premier exemple de fonction récursive : la fonction d : n 7→ 2n,


définie de N dans N. En effet, on peut la décrire par
• d(0) = 0
• d(S n) = S S d(n)
nous donnant alors une définition de d grâce au théorème précédent.

Exemple. Un exemple à la fois d’ensemble inductif et de fonction récursive est le suivant.


Soit A un ensemble quelconque, on définit la signature des listes sur A par la grammaire
suivante :
ℓ ::= nil | cons(a, ℓ)
où a ∈ A. L’ensemble List(A) est alors l’ensemble inductif associé. On définit alors la
fonction | − | donnant la longueur d’une liste :
• | nil | = 0
• | cons(a, ℓ)| = 1 + |ℓ|
8 Chapitre 1. Induction

Exercice 1.1.2.4. Soit A un ensemble. Donner une signature définissant l’ensemble


BinTree(A) des arbres binaires étiquetés par A, constitué d’un objet arbre vide et d’un
constructeur binaire node prenant en argument un élément a de A et deux arbres g et d et
retournant un nouvel arbre binaire, d’étiquette a et dont les deux sous-arbres sont g et d.
Définir une fonction h : BinTree(A) → N donnant la hauteur d’un arbre, c’est-à-dire
la longueur du plus long chemin entre la racine de l’arbre (la première étiquette) et une
feuille (un arbre vide qui est sous-arbre). On prend comme convention que h(nil) = 0.
Définir une fonction | − | : BinTree(A) → N donnant le nombre d’étiquettes d’un arbre.
Exercice 1.1.2.5. En utilisant la structure inductive de N, définir la fonction + : N×N → N.
On pourra pour cela définir la fonction n 7→ (m 7→ n + m) et faire une fonction récursive
sur l’argument n.
Un procédé similaire est celui d’induction. Là où la récursion nous permet de définir
une fonction depuis un ensemble inductif, l’induction va nous permettre de faire une preuve
sur un ensemble inductif. Il s’agit donc, au lieu de donner une fonction X → Y , de donner
un prédicat P ⊆ X et de montrer que P = X. On peut trouver plus de précisions sur
l’induction dans le chapitre 3 de [WIN96], qui parle d’induction structurelle.
Théorème 1.1.2.6 (Principe d’induction). Soit (C, α) une signature et X l’ensemble
inductif associé. Soit P ⊆ X un prédicat sur X. Si pour tous c ∈ C et x1 , . . . , xp ∈ X α(c) ,
la propriété

x1 ∈ P et x2 ∈ P et . . . et xp ∈ P =⇒ c(x1 , . . . , xp ) ∈ P

est vérifiée, alors P = X.


Démonstration. Pour prouver ce résultat, il suffit de montrer que pour tout n ∈ N, Xn ⊆ P
pour (Xn ) la suite d’ensembles construisant X. En effectuant une récurrences sur n :
• Si n = 0, alors ∅ ⊆ P .
• Supposons que Xn ⊆ P pour n ∈ N. Soit x ∈ Xn+1 . Par définition de Xn+1 , on trouve
c ∈ C et x1 , . . . , xp ∈ Xn tels que x = c(x1 , . . . , xp ). Par hypothèse de récurrence, on
en déduit que pour tout i ∈ {1, . . . , p}, xi ∈ P . Il vient donc, avec l’hypothèse du
théorème sur P , que c(x1 , . . . , xp ) ∈ P .
On en déduit que Xn+1 ⊆ P .
Ainsi, par récurrence, pour tout n ∈ N, Xn ⊆ P . Cela montre alors que
[
Xn ⊆ P
n∈N

ce qu’il fallait démontrer.

On peut affiner ce résultat en distinguant deux sortes de constructeurs : d’un côté


les constructeurs d’arité 0, qui sont des constantes, et de l’autre les constructeurs d’arité
supérieure à 1. Le théorème précédent nous dit que pour prouver une proposition P sur un
ensemble inductif, il suffit de prouver qu’il contient les constantes et qu’il est stable par
chaque constructeur. On remarque que dans le cas de N, engendré par 0 et S, ce principe
nous dit qu’une partie P contenant 0 et telle que ∀n ∈ N, n ∈ P =⇒ n + 1 ∈ P est
exactement N : c’est le principe de récurrence.
Ainsi, puisque nous prouvons le principe d’induction à partir du principe de récurrence,
et puisque le principe de récurrence est un cas particulier du principe d’induction, les
deux sont logiquement équivalents. L’induction, cependant, est conceptuellement plus
intéressante puisqu’elle peut s’utiliser dans plus de cas.
1.2. Relation inductive 9

Exercice 1.1.2.7. On considère N comme un ensemble inductif, et la fonction d définie


dans un exemple précédent. Montrer que pour tout n ∈ N, d(n) est pair. On prendra
comme définition de pair le prédicat pair(n) ≜ ∃m ∈ N, n = 2 × m.

Exercice 1.1.2.8. Soit un ensemble A. On définit ⊕ : List(A) × List(A) → List(A) par


induction sur le premier argument :
• Pour tout ℓ ∈ List(A), nil ⊕ ℓ = ℓ.
• Pour tous ℓ, ℓ′ ∈ List(A), a ∈ A, cons(a, ℓ) ⊕ ℓ′ = cons(a, ℓ ⊕ ℓ′ ).
Montrer que
∀ℓ, ℓ′ ∈ List(A), |ℓ ⊕ ℓ′ | = |ℓ| + |ℓ′ |

1.2 Relation inductive


1.2.1 Construction d’une relation inductive
Une façon de considérer les ensembles inductif est, étant donnée une signature, de
prendre le plus petit ensemble stable par les constructeurs de cette signature. Le problème,
pour faire cela, est que nous n’avons pas d’ensemble sur lequel travailler a priori, au sens
où l’ensemble inductif que l’on a construit précédemment n’est pas un élément ou une
partie d’un ensemble déjà construit en amont. C’est pourquoi la construction précédente
définissait chaque ensemble intermédiaire pour en prendre l’union : l’existence de chaque
ensemble de l’union est à spécifier. Au contraire, pour définir les relations inductives,
nous avons un ensemble ambiant et nous pouvons donc travailler sur la notion de plus
petit ensemble stable puisqu’une relation, au sens d’une partie d’un ensemble X donné
(souvent X est un produit cartésien), vit naturellement dans P(X). La notion de stabilité
mérite un traitement systématique et une syntaxe appropriée, puisque nous construirons
très souvent des relations par induction. Nous allons donc commencer par donner une
description formelle de la syntaxe des règles d’inférence. Mais avant, rappelons la définition
d’une relation.

Définition 1.2.1.1 (Relation). Soit X un ensemble. On appelle relation sur X une partie
R ⊆ X n où n ∈ N est appelé l’arité de la relation R.

Une règle d’inférence, elle, va relier des relations.

Définition 1.2.1.2 (Règle d’inférence). On appelle règle d’inférence une présentation


de la forme suivante :
P1 P2 ··· Pn
r
P
Où P1 , . . . , Pn sont appelées les prémisses de la règle, et P est appelée la conclusion de la
règle. On dit que la règle est juste si, lorsque toutes les prémisses de la règle sont vérifiées,
alors la conclusion est aussi vérifiée.
Une règle peut contenir plusieurs paramètres, par exemple

a=b P (a)
P (b)
auquel cas la règle est juste lorsqu’elle est juste pour chaque instance possible de ces
paramètres. Dans l’exemple, on suppose que a et b sont quantifiés sur un certain ensemble
A, et la règle est donc juste lorsque ∀a, b ∈ A, ((a = b) et P (a)) =⇒ P (b). On dira
10 Chapitre 1. Induction

que la règle est juste aussi lorsque l’on fixe un paramètre, mais on dira alors « la règle r
est juste pour X = R », dans le cas où l’on fixe le paramètre X comme valant R. Pour
signifier qu’une assignation des variables xi à des objets ai vérifie un énoncé P , on notera
(xi 7→ ai ) |= P .
Supposons donnée une règle de la forme

P1 (R, x1 , . . . , xk ) P2 (R, x1 , . . . , xk ) ··· Pn (R, x1 , . . . , xk )


r
P (R, x1 , . . . , xk )
dont les paramètres sont R, une partie de E p , p ∈ N et les variables xi , des éléments de
E. Vérifier que la règle est valide signifie que pour toute instance des xi vérifiant tous
les Pi , la proposition P est valide aussi. En supposant que la conclusion est de la forme
R(t1 , . . . , tp ), où t1 , . . . , tp sont des termes définis en fonction de x1 , . . . , xk , alors la validité
de r signifie que, si l’on définit l’ensemble X des (x1 , . . . , xk ) vérifiant Pi (R, x1 , . . . , xk ),
alors l’ensemble des termes t1 , . . . , tp est inclus dans R.
Dans la suite de ce chapitre, on considérera toujours des règles se finissant par une
clause de la forme R(f1 (x1 , . . . , xk ), . . . , fp (x1 , . . . , xk )). Une règle r définit alors la fonction
suivante, qui considère l’ensemble des R(t1 , . . . , tk ) :

X 7−→ {(f1 (a1 , . . . , ak ), . . . , fp (a1 , . . . , ak )) |


a1 , . . . , ak ∈ E, ∀i ∈ {1, . . . , n}, (R 7→ X, x1 7→ a1 , . . . , xk 7→ ak ) |= Pi }

On note cette fonction fr . On suppose maintenant une hypothèse qui, en pratique, sera
toujours vérifiée : la fonction fr est croissante. Le cas le plus fréquent est celui où les
prémisses de la règle sont directement des instances de la forme R(t1 , . . . , tn ), auquel cas il
est clair que notre fonction est croissante.
La validité de r pour une relation R revient à l’inclusion fr (R) ⊆ R, que l’on peut aussi
exprimer par fr (R) ∪ R = R. Cela nous pousse à définir la fonction suivante, qui nous sera
essentielle pour les prochaines constructions.

r : P(E p ) −→ P(E p )
X 7−→ X ∪ fr (X)
Donnons quelques exemples du résultat de r pour des règles simples.

Exemple. Prenons la règle


refl
R(x, x)
exprimant que R est réflexive. La fonction associée à refl est alors R 7→ R ∪ {(x, x) | x ∈ E}.
Remarquons que l’absence de prémisse signifie que la conclusion est toujours valide.

Exemple. La règle précédente n’utilisait pas R dans ses prémisses, un exemple l’utilisant
est la règle exprimant la transitivité :
R(x, y) R(y, z)
trans
R(x, z)
Dans ce cas, l’image de R par trans est l’ensemble

R ∪ {(x, z) ∈ E 2 | ∃y ∈ E, R(x, y) et R(y, z)}

En effet, même si y n’apparaît pas dans la conclusion, il est nécessaire qu’un tel y existe
pour que le triplet (x, y, z) vérifie la condition de fr .
1.2. Relation inductive 11

Supposons maintenant que nous ayons une relation R et une règle r, R ne vérifiant pas
forcément r. Nous cherchons alors à construire à partir de R une relation vérifiant r. Une
remarque essentielle : si R vérifie r, alors R est un point fixe de la fonction r associée. On
va ainsi chercher à créer un point fixe de la fonction associée. Pour cela, nous allons donner
un théorème essentiel en logique : le théorème de Knaster-Tarski.

Théorème 1.2.1.3 (Knaster-Tarski (faible)[Kna28]). Soit un ensemble E quelconque,


et une fonction f : P(E) → P(E) croissante pour ⊆, c’est-à-dire telle que

∀A, B ∈ P(E), A ⊆ B =⇒ f (A) ⊆ f (B)

Alors il existe un plus petit point fixe de f pour ⊆, ou de façon équivalente il existe un
élément A ∈ P(E) tel que f (A) = A et tel que pour tout B ∈ P(E) tel que f (B) = B,
A ⊆ B.

Démonstration. Pour commencer, définissons l’ensemble des pré-points fixes de f , qui est

prefix(f ) = {A ∈ P(E) | f (A) ⊆ A}


T
Cet ensemble est non vide, puisqu’il contient E. Soit α = prefix(f ), montrons que α est
dans prefix(f ) :
Pour cela, il suffit de montrer que f (α) ⊆ α, mais comme α est une intersection, il
suffit de montrer que pour tout A ∈ prefix(f ), f (α) ⊆ A. Pour montrer cela, on remarque
par transitivité de ⊆ qu’il suffit de montrer que f (α) ⊆ f (A) pour tout A ∈ prefix(f ),
mais cela est direct en utilisant le fait que f est croissante et que pour tout A ∈ prefix(f ),
α ⊆ A. Ainsi f (α) ⊆ α.
De plus, comme f (α) ⊆ α, on en déduit par croissance de f que f (f (α)) ⊆ f (α),
c’est-à-dire que f (α) est lui aussi un élément de prefix(f ) : comme α en est l’intersection,
cela signifie que α ⊆ f (α), d’où en utilisant l’inclusion précédente, f (α) = α.
De plus, si B est un point fixe de f , alors f (B) ⊆ B donc par définition de α, α ⊆ B.

Exercice 1.2.1.4. Soit E un ensemble quelconque, f : P(E) → P(E) une fonction


croissante pour l’inclusion et A ∈ P(E) tel que A ⊆ f (A). Montrer que l’on peut étendre
le théorème 1.2.1.3 pour trouver un plus petit point fixe α tel que A ⊆ α.

Exercice 1.2.1.5. Soit E un ensemble quelconque, et f : P(E) → P(E) une fonction


croissante pour l’inclusion. On définit

gf : P(E) −→ P(E)
X 7−→ X ∪ f (X)

Montrer que gf est croissante pour l’inclusion et que pour tout X ∈ P(E), X ⊆ f (X).

Des deux exercices précédents, on peut déduire le résultat suivant :

Corollaire 1.2.1.6 (Définition d’une relation inductive). Soit une règle r sur un
ensemble E et une relation R. Alors il existe une plus petite relation Rr contenant R et
stable par r. On dit alors que cette relation Rr est la relation définie par r sur R. Si R = ∅,
on dira seulement que la relation est définie par r.

Cela nous permet alors de définir le principe d’induction sur les relations, qui est très
proche de celui sur les ensembles inductifs.
12 Chapitre 1. Induction

Théorème 1.2.1.7 (Induction sur une relation). Soit E un ensemble, R une relation
n-aire sur E et r une règle d’inférence incluant comme paramètre X. Soit P ∈ P(E n ) un
prédicat d’arité n sur E. Supposons que R ⊆ P et que (X 7→ P ) |= r. Alors Rr ⊆ P .

Démonstration. Il suffit de remarquer que P est un point fixe de r puisque (X 7→ P ) |= r.


Ainsi, comme P est un point fixe de r contenant R, on en déduit que P contient le plus
petit point fixe de r contenant R, qui est exactement Rr .

Ce résultat est essentiel pour prouver beaucoup de résultats : étant donnée une re-
lation R construite par induction, pour montrer un résultat de la forme ∀x1 , . . . , xn ∈
E, R(x1 , . . . , xn ) =⇒ P (x1 , . . . , xn ) pour un certain prédicat P , il suffit de montrer que
ce prédicat est stable par la règle définissant R.

Exercice 1.2.1.8. Soient désormais n règles r1 , . . . , rn incluant toutes un paramètre R


d’arité p. Montrer qu’on peut leur associer une fonction r1,...,n : P(E p ) → P(E p ) croissante.
En déduire un analogue des propositions précédentes pour un nombre fini de règles.

Remarque 1.2.1.9. La plupart des relations inductives que nous construirons utilisent
plusieurs règles, mais l’idée de la construction pour une seule règle suffit. L’exercice
précédent sert principalement à justifier au lecteur le plus dubitatif que le procédé fonctionne
effectivement aussi pour plusieurs règles.

Exercice 1.2.1.10. Soit une relation R et une règle r. On définit la relation R′ comme la
relation inductive définie par r sur R, et R′′ la relation inductive définie par les règles r et

R(x1 , . . . , xn )
R′′ (x1 , . . . , xn )

Montrer que ces deux relations coïncident.

Remarque 1.2.1.11. On définira dorénavant des relations inductives seulement par des
règles.

Exercice 1.2.1.12. Soit A un ensemble quelconque. On définit sur List(A) le prédicat


pair par induction avec les règles suivantes :

pair(ℓ)
pair(nil)
pair(cons(a, cons(b, ℓ)))

Montrer l’assertion suivante :

∀ℓ ∈ List(A), pair(ℓ) =⇒ pair(|ℓ|)

avec le prédicat pair sur les entiers défini précédemment.

Remarque 1.2.1.13. Comme les notions précédentes, l’induction sur les relations est
abordée dans [WIN96], mais notre présentation s’en éloigne en cherchant à être plus
formelle. La présentation qui y est faite dans [WIN96] est, au contraire, plus intuitive à
suivre, avec plus d’exemples et moins de généralité.
1.2. Relation inductive 13

1.2.2 Dérivation d’arbre


Une autre utilité de ce formalisme des règles d’inférences est de permettre de définir une
dérivation, qui est une preuve purement syntaxique qu’une certaine relation est vérifiée.
Définition 1.2.2.1 (Dérivation). Soit une relation R définie par des règles r1 , . . . , rn .
Une dérivation de R(x1 , . . . , xp ) est un arbre dont la racine est R(x1 , . . . , xp ) et tel que
chaque nœud de l’arbre est une règle parmi r1 , . . . , rn et contient autant de sous-arbres
que l’arité de la règle présente.
Exemple. Soit A = {0}, dérivons pair([0, 0, 0, 0]) où [0, 0, 0, 0] est une abréviation pour
cons(0, cons(0, cons(0, cons(0, nil)))) :

pair(nil)
pair([0, 0])
pair([0, 0, 0, 0])
Remarque 1.2.2.2. La notion de dérivation dépend uniquement des règles utilisées : on
n’a donc pas besoin de préciser la relation dans laquelle on travaille. Comme on travaille
en général dans le cas d’une relation définie par les règles, la question de si la dérivation
dépend des règles ou de la relation en elle-même est sans importance.
Par construction, comme une relation définie par des règles vérifie ces règles, et étant
donnée la définition de « vérifier une règle », il ne fait aucun doute que si l’on peut dériver
R(x1 , . . . , xn ), alors R(x1 , . . . , xn ) est vraie.
En logique, nous formalisons les preuves mathématiques comme de tels arbres, car leur
structure simple permet de faciliter l’étude du langage mathématique. Si, dans la réalité, on
n’écrit pas une preuve comme une dérivation (nous le verrons, cette pratique est beaucoup
trop laborieuse), il est communément admis qu’une preuve satisfaisante permet de savoir
écrire un tel arbre mentalement.
Étudions maintenant la notion de règle admissible et dérivable, correspondant respecti-
vement à une règle vérifiée par une relation et à une règle dont on peut syntaxiquement
prouver la correspondance avec la règle.
Définition 1.2.2.3 (Règle admissible). Une règle r est admissible pour une relation R
si R |= r. La règle est admissible pour un ensemble de règles r1 , . . . , rn si la relation définie
par ces règles vérifie la règle r.
Définition 1.2.2.4 (Règle dérivable). Soit un ensemble de règles r1 , . . . , rn et une règle r.
r est dite dérivable s’il existe une dérivation de la conclusion de r utilisant (potentiellement)
les règles r1 , . . . , rn et (potentiellement) les prémisses de r.
Exercice 1.2.2.5. Montrer qu’une règle dérivable est admissible et que si une règle est
admissible pour une relation R, alors la relation définie par cette règle sur R est exactement
R.
Exercice 1.2.2.6. Avec les définitions précédentes, montrer que la règle

pair(ℓ)
pair([a, b, c, d] ⊕ ℓ)
est dérivable. Montrer que la règle

pair(cons(a, cons(b, ℓ)))


pair(ℓ)
14 Chapitre 1. Induction

est admissible. Est-elle dérivable ?

Exercice 1.2.2.7. Construire un ensemble inductif correspondant aux arbres de dérivations.


Montrer alors que pour l’ensemble Tr1 ,...,rn des arbres construits sur les règles r1 , . . . , rn et
R la relation engendrée par ces règles, une instance R(x1 , . . . , xp ) est vraie si et seulement
s’il existe un élément de Tr1 ,...,rn dont la racine est R(x1 , . . . , xp ).

Remarque 1.2.2.8. On a donc une correspondance entre les relations inductives et les
ensembles inductifs. Cependant, on remarque qu’on perd de l’information dans le cas des
relation inductives : dire simplement R(x1 , . . . , xp ) ne dit pas comment on a dérivé cette
instance.

Enfin, donnons le lemme d’inversion, que l’on peut voir comme un affaiblissement de
l’induction sur une relation, pour une seule étape.

Théorème 1.2.2.9 (Inversion). Soient des règles r1 , . . . , rn , un ensemble E et R la


relation définie sur R par ces règles. Si R(x1 , . . . , xp ) pour un tuple (x1 , . . . , xp ) ∈ E, alors
il existe i ∈ {1, . . . , n} et des instances P1 , . . . , Pk des prémisses de ri tels que

P1 ··· Pk
ri
R(x1 , . . . , xp )
est vérifiée.

Démonstration. Pour prouver ce résultat, il suffit de le prouver par induction sur la relation
R. Mais alors, pour chaque cas de la règle à vérifier, le résultat est vrai par hypothèse.

Ce résultat permet de travailler par disjonction de cas lorsque l’on étudie une relation
inductive. On peut l’assimiler au lemme de lecture unique. Par exemple, il permet de dire
à partir de pair(ℓ) que ℓ est soit la liste vide, soit cons(a, cons(b, ℓ)) pour deux éléments
a, b ∈ A, en prenant les conventions de l’exercice 1.2.2.6.
Chapitre 2
Logique propositionnelle

Table des sous-matières


2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Séquents propositionnels . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Théorème de compacité . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2 Calcul des séquents . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Correction du calcul des séquents . . . . . . . . . . . . . . . . . . 22

our commencer l’étude de la logique, nous allons étudier sa forme la plus élémentaire :
P la logique propositionnelle. Lorsque l’on écrit une phrase mathématique, disons par
exemple
∀n ∈ N, (∃m ∈ N, n = 2 × m) ou (∃m ∈ N, n = 2 × m + 1)
on peut séparer plusieurs parties :
• les quantificateurs.
• les connecteurs logiques, comme « et », « ou » ou « non ».
• les propositions atomiques, comme n = 2 × m ci-dessus.
La logique propositionnelle est une simplification de cette grammaire, dans laquelle les
propositions atomiques sont remplacées par de simples variables, pouvant prendre la valeur
Vrai ou Faux, et où l’on supprime les quantificateurs. L’étude de la logique propositionnelle,
beaucoup plus simple que le calcul des prédicats, permet de donner une première idée des
propriétés qui nous intéressent dans la logique.

2.1 Définitions
Fixons tout d’abord un ensemble Var dénombrable de variables propositionnelles. Nous
allons construire l’ensemble des propositions comme un ensemble inductif, en ajoutant les
connecteurs logiques usuels.

Définition 2.1.0.1 (Propositions). On définit l’ensemble Prop des propositions du calcul


propositionnel par la grammaire suivante :

P, Q ::= x | ⊤ | ⊥ | ¬P | P ∨ Q | P ∧ Q | P → Q

où x ∈ Var est une variable propositionnelle.

15
16 Chapitre 2. Logique propositionnelle

Le sens des différents symboles est le suivant :


• ⊤ représente la proposition vraie.
• ⊥ représente la proposition fausse.
• ¬ représente la négation logique.
• ∨ représente la disjonction logique.
• ∧ représente la conjonction logique.
• → représente l’implication logique.
Par convention, nous donnons l’ordre de priorité (du plus prioritaire au moins prioritaire)
suivant : ¬ > ∧ > ∨ >→. Cette convention évite ainsi d’écrire certaines parenthèses. De
plus, comme ∧ et ∨ seront montrés associatifs, nous ne parenthèserons pas P ∨ Q ∨ R
par exemple. Pour →, nous associons à droite, c’est-à-dire que P → Q → R signifie
P → (Q → R). Par exemple la proposition

(P → Q) ∧ (R → Q) → P ∨ R → Q

doit se lire
((P → Q) ∧ (R → Q)) → ((P ∨ R) → Q)
L’objectif d’une proposition est bien sûr de lui attribuer une valeur de vérité. Évidem-
ment, la valeur de vérité d’une proposition dépend de celle des variables. Par exemple,
(x ∨ ¬y) ∧ z n’aura pas la même valeur de vérité suivant si z est vrai ou faux.
Pour manipuler les variables d’une propositions, il est important de définir l’ensemble
des variables impliquées dans la construction d’une proposition.

Définition 2.1.0.2 (Variables libres). Par induction sur la structure inductive de Prop,
on définit pour P l’ensemble VL(P ) des variables libres de P :
• si P = x et x ∈ Var, alors VL(P ) = {x}.
• si P = ¬Q alors VL(P ) = VL(Q).
• si P = Q ∨ R ou P = Q ∧ R ou P = Q → R, alors VL(P ) = VL(Q) ∪ VL(R).

Remarque 2.1.0.3. La dénomination de variable « libre » prendra son sens dans le


prochain chapitre. L’intérêt de définir VL et non juste l’ensemble des variables est d’ignorer
les variables muettes, mais dans le calcul propositionnel aucune variable n’est muette.

Une attribution de valeurs de vérité aux variables propositionnelles est appelée un


environnement. On utilisera l’ensemble {0, 1} pour signifier {Faux, Vrai}.

Définition 2.1.0.4 (Environnement). Un environnement est une fonction partielle


ρ : Var → {0, 1} dont le domaine (l’ensemble des valeurs x ∈ Var sur lesquelles ρ est défini)
est fini.

Un environnement permet ensuite de définir la notion de valuation, qui est la valeur de


vérité d’une proposition dans un environnement donné. On peut voir la valuation comme
le prolongement d’un environnement par les règles inductives naturelles pour donner le
sens voulu aux propositions.

Définition 2.1.0.5 (Valuation). Soit ρ un environnement. On définit par induction sur


Prop la fonction partielle Valρ : Prop → {0, 1} :
• Valρ (⊤) = 1.
• Valρ (⊥) = 0.
2.1. Définitions 17

• pour x ∈ Var, si x ∈ Dom(ρ) alors Valρ (x) = ρ(x), si x ∈


/ Dom(ρ) alors Valρ (x) n’est
pas défini.
• soit P une proposition, alors Valρ (¬P ) = 1 − Valρ (P ).
• soient P et Q deux propositions, alors Valρ (P ∨ Q) = max(Valρ (P ), Valρ (Q))
• soient P et Q deux propositions, alors Valρ (P ∧ Q) = min(Valρ (P ), Valρ (Q))
• soient P et Q deux propositions, alors Valρ (P → Q) = max(1 − Valρ (P ), Valρ (Q))

Exercice 2.1.0.6. Soit ρ un environnement et P une proposition, montrer que Valρ (P )


est définie si et seulement si VL(P ) ⊆ Dom(ρ).

Exercice 2.1.0.7. Soit P une proposition. Soient ρ et ρ′ deux environnements tels que
ρ| VL(P ) = ρ′| VL(P ) . Montrer que Valρ (P ) = Valρ′ (P ).

On peut donc définir la relation de vérité, dans un environnement donné, pour une
proposition.

Définition 2.1.0.8 (Satisfaction). Soit ρ un environnement et P ∈ Prop. On définit la


relation ρ |= P par
(ρ |= P ) ≜ (Valρ (P ) = 1)
On dit alors que ρ satisfait P .
Si pour tout environnement ρ tel que VL(P ) ⊆ Dom(ρ), ρ |= P , alors on dit que P est
une tautologie, et on le note |= P . Si aucun environnement ne satisfait P , on dit alors que
P est une antilogie.

Exercice 2.1.0.9. Montrer que P est une antilogie si et seulement si ¬P est une tautologie.
En déduire que P est une tautologie si et seulement si ¬P est une antilogie.

Donnons un premier outil pour traiter des vérités du calcul des propositions : les tables
de vérité.

Définition 2.1.0.10 (Table de vérité). Une table de vérité pour une proposition P
de variables libres x1 , . . . , xn est un tableau contenant 2n lignes et n + 1 colonnes, où
chaque ligne énumère un environnement différent, où la ième colonne représente la valeur
des environnement en xi et où la dernière colonne représente la valuation de P pour
l’environnement donné.

Exemple. Voici une table de vérité pour les expressions x0 ∨ x1 , ¬(x0 ∨ x1 ), ¬x0 ∧ ¬x1 et
¬(x0 ∨ x1 ) → ¬x0 ∧ ¬x1 :
x0 x1 x0 ∨ x1 ¬(x0 ∨ x1 ) ¬x0 ∧ ¬x1 ¬(x0 ∨ x1 ) → ¬x0 ∧ ¬x1
0 0 0 1 1 1
1 0 1 0 0 1
0 1 1 0 0 1
1 1 1 0 0 1

Une table de vérité permet de vérifier qu’une proposition est bien une tautologie puisque,
grâce à l’exercice 2.1.0.7, nous savons que tout environnement ρ contenant les variable
libres d’une proposition P donnée ne définit Valρ (P ) que sur les variables libres listées
dans la table de vérité. Ainsi, une proposition est une tautologie si et seulement si toute la
dernière colonne est remplie de 1.

Exercice 2.1.0.11. Montrer que ¬x0 ∧ ¬x1 → ¬(x0 ∨ x1 ) est une tautologie.
18 Chapitre 2. Logique propositionnelle

La notion de tautologie peut être considérée comme la bonne notion de vérité dans
le cadre du calcul propositionnel : une proposition vraie est une proposition qui s’évalue
toujours en une formule vraie. Comme → sert à signifier l’implication logique, dire que
A → B est une tautologie revient à dire que chaque fois que A est vraie, B l’est aussi.
Ainsi, en notant A ↔ B pour (A → B) ∧ (B → A), dire que A ↔ B est une tautologie
revient à dire que A et B prennent toujours la même valeur de vérité. Cette relation est
l’équivalence logique : elle traduit que deux propositions ont la même valeur.

Définition 2.1.0.12 (Équivalence logique). Pour tous P, Q ∈ Prop, on dit que P et Q


sont logiquement équivalents, ce que l’on écrit P ≡ Q, si |= P ↔ Q.

Un affaiblissement est la relation de conséquence logique.

Définition 2.1.0.13 (Conséquence logique). Pour tous P, Q ∈ Prop, on dit que Q est
conséquence logique de P , ce que l’on note P ⊨ Q, si |= P → Q.

Exercice 2.1.0.14. Vérifier à l’aide de tables de vérités les équivalences suivantes (appelées
lois de De Morgan) :

¬¬x ≡ x
¬(x ∧ y) ≡ ¬x ∨ ¬y
¬(x ∨ y) ≡ ¬x ∧ ¬y

2.2 Calcul des séquents propositionnels et complétude


Maintenant que nous avons défini une notion satisfaisante de vérité pour une proposition,
il convient de se demander quels outils permettent de l’établir. Pour l’instant, pour prouver
qu’une proposition est une tautologie, la seule façon de procéder est d’en construire la table
de vérité. C’est une façon largement inefficace, puisqu’elle prend une taille exponentielle en
le nombre de variables libres d’une proposition, et la preuve qu’une proposition est une
tautologie est assez vide de sens : dans l’exercice précédent, il n’a été question que de calcul
et pas de considérations logiques.

2.2.1 Théorème de compacité


Cette sous-section se concentre sur un théorème important de la logique : le théorème
de compacité. Son principe est de permettre de passer d’ensembles finis à des ensembles
infinis. Si son utilité est relativement anecdotique dans le cas de la logique propositionnelle,
il sera un élément essentiel en logique du premier ordre. Pour pouvoir établir ce théorème,
nous devons tout d’abord généraliser la relation de satisfaction ⊨ au cas d’un ensemble
infini de propositions.

Définition 2.2.1.1 (Environnement infini). On définit l’ensemble E des environnement


potentiellement infinis comme l’ensemble des fonctions partielles Var → {0, 1}. On définit
la fonction Val : E × Prop → {0, 1}, pour tout ρ ∈ E, par :

Valρ (P ) = Valρ| VL(P ) (P )

où le deuxième Val correspond à la définition sur les environnements finis.


On définit ρ |= P de façon analogue à précédemment :

ρ |= P ≜ Valρ (P ) = 1
2.2. Séquents propositionnels 19

Exercice 2.2.1.2. Montrer que si ρ est un environnement fini, alors les deux définitions
de Valρ coïncident.

Définition 2.2.1.3 (Satisfaction infinie). Soit P un ensemble (potentiellement infini)


de propositions et P ∈ Prop. On définit P ⊨ P par

∀ρ ∈ E, (∀Q ∈ P, ρ |= Q) =⇒ ρ |= P

Le théorème de compacité possède plusieurs expressions différentes. Pour les donner,


nous allons introduire le vocabulaire nécessaire sur les ensembles (potentiellement infinis)
de propositions.

Définition 2.2.1.4 (Satisfiabilité). On dit qu’un ensemble P ⊆ Prop est satisfiable s’il
existe ρ ∈ E telle que ∀P ∈ P, ρ |= P . On dit qu’un ensemble P ⊆ Prop est finiment
satisfiable si toutes ses parties finies sont satisfiables.

Définition 2.2.1.5 (Contradiction). On dit qu’un ensemble P ⊆ Prop est contradictoire


s’il n’existe pas d’environnement ρ ∈ E tel que ∀P ∈ P, ρ |= P . Un ensemble P ⊆ Prop est
finiment contradictoire si l’une de ses parties finies est contradictoire.

Le théorème de compacité énonce alors l’équivalence entre la version finie et la version


infinie des deux caractères, et de façon équivalente, l’équivalence de la relation ⊨ pour un
ensemble infini et pour ses parties finies. Montrons d’abord que ces trois principes sont
bien équivalents.

Proposition 2.2.1.6. Les trois propriétés suivantes sont équivalentes :


(i) pour tout P ⊆ Prop, P est satisfiable si et seulement s’il est finiment satisfiable.
(ii) pour tout P ⊆ Prop, P est contradictoire si et seulement s’il est finiment contradic-
toire.
(iii) pour tout P ⊆ Prop et P ∈ Prop, P ⊨ P si et seulement s’il existe F ⊆fin P tel que
F ⊨ P.

Démonstration. Pour commencer, remarquons qu’un ensemble satisfiable est finiment


satisfiable, qu’un ensemble finiment contradictoire est contradictoire, et que s’il existe
F ⊆fin P tel que F ⊨ P , alors pour tout environnement ρ tel que ρ |= P, on a en particulier
ρ |= F et donc ρ |= P . Il nous suffit donc de travailler sur un seul sens de l’équivalence à
chaque fois. Nous allons maintenant montrer (i) =⇒ (ii) =⇒ (iii) =⇒ (i) :
• Supposons (i) et montrons (ii). Soit P ⊂ Prop contradictoire, montrons que P est
finiment contradictoire. Par l’absurde, supposons que P n’est pas finiment contra-
dictoire : toute partie finie F ⊆ P possède donc une valuation ρF telle que ρF |= F .
Mais alors, en utilisant (i), on en déduit qu’il existe une valuation ρ |= P. Pourtant
P est contradictoire : c’est une absurdité. Ainsi, par l’absurde, on en déduit que P
est finiment contradictoire.
• Supposons (ii) et montrons (iii). Soient P ⊆ Prop, P ∈ Prop tels que P ⊨ P . Montrons
qu’il existe F ⊆fin P, tel que F ⊨ P . Comme P ⊨ P , on en déduit que P ∪ {¬P } est
contradictoire. Ainsi, par (ii), on trouve un ensemble F ⊆fin P ∪ {¬P } contradictoire.
Deux choix se présentent alors :
◦ si F ne contient pas ¬P , alors F ⊆fin P, donc il n’existe pas de valuation telle
que ρ |= F , ce qui signifie que toute valuation ρ telle que ρ |= F vérifie ρ |= P ,
donc F ⊨ P .
20 Chapitre 2. Logique propositionnelle

◦ si F contient ¬P , alors on peut réécrire F comme F = F ′ ⊔ {¬P }, où F ′ ⊆fin P.


Comme cet ensemble est contradictoire, cela signifie que pour toute valuation ρ
telle que ρ |= F ′ , on a ρ ̸|= ¬P (car sinon cette valuation serait une valuation
de F , ce qui n’existe pas). Or, ρ ̸|= ¬P signifie que ρ |= P , donc toute valuation
ρ |= F ′ vérifie ρ |= P . On a donc trouvé F ′ ⊆fin P telle que F ′ ⊨ P .
Dans les deux cas, on a trouvé F ⊆fin P telle que F ⊨ P .
• Supposons (iii) et montrons (i). Soit P ⊆ Prop un ensemble finiment satisfiable,
montrons que P est satisfiable. Par l’absurde, supposons que P n’est pas satisfiable.
Cela signifie que P ⊨ ⊥ : par (iii) on trouve donc F ⊆fin P tel que F ⊨ ⊥, F est donc
finiment contradictoire, ce qui contredit le fait que P est finiment satisfiable. Par
l’absurde, on en déduit que P est satisfiable.
Les propositions sont ainsi toutes équivalentes.

Il ne nous reste plus qu’à prouver le résultat en lui-même.

Théorème 2.2.1.7 (Compacité de la logique propositionnelle). Pour tout P ⊆ Prop,


si P est finiment satisfiable alors P est satisfiable.

Démonstration. Soit P ⊆ Prop finiment satisfiable, prouvons que P est satisfiable. Pour
construire une valuation satisfaisant P entièrement, nous allons construire des valuations
partielles sur les premières variables seulement. On construit donc une suite de valuations
partielles (ρn )n∈N chacune définie uniquement sur les variables 0 à n − 1, de telle sorte
que pour tous i ≤ j, ρj (k) = ρi (k) pour tout k < i. De plus, on veut vérifier qu’à chaque
ρn , il existe une infinité de valuations partielles ρ′ définies sur k > n premières variables,
étendant ρn et pouvant s’étendre en une valuation totale ρ′′ telle que ρ′′ |= P0 , . . . , Pk . On
raisonne donc par récursion :
• à 0, on considère simplement la fonction vide, définie nulle part. Pour vérifier la
condition sur les extensions, on considère k ∈ N. Comme P est finiment satisfiable,
alors on peut trouver une valuation ρ |= P0 , . . . , Pk−1 : on a donc une infinité de
telles valuations partielles.
• supposons construite la valuation ρn , vérifiant les hypothèses énoncées plus haut. Dans
l’infinité de ρ′ étendant ρn , il y en a une infinité valant 0 en n, ou une infinité valant
1 en n. Dans le premier cas, on peut construire ρn+1 en valant ρn sur {0, . . . , n − 1}
et 0 en n. Dans le second cas, on étend ρn+1 en associant 1 à n. Dans les deux cas,
l’hypothèse est encore vérifiée.
On a donc construit une valuation ρ comme la limite de ces valuations partielles (une
version plus formelle de cet argument serait de considérer pour chaque ρn l’ensemble
{ρ : Var → {0, 1} | ∀i < n, ρ(i) = ρn (i)} et de prendre ρ dans l’intersection de tous ces
ensembles). Soit P ∈ P, par définition P n’utilise qu’un nombre fini de variables, dont un
indice maximal qu’on notera i : pour toute valuation ρ′ coïncidant avec ρ jusqu’à i, ρ′ |= P
si et seulement si ρ |= P . Disons que P = Pj dans notre énumération, et soit n = max(i, j) :
alors il existe une valuation étendant ρn et vérifiant P , et toute autre valuation coïncidant
avec elle jusqu’à n vérifie P . C’est le cas de ρ, qui coïncide jusqu’à n avec ρn et donc avec
toute extension de ρn , donc ρ |= P .
Ainsi on a construit ρ telle que

∀P ∈ P, ρ |= P

donc P est satisfiable.


2.2. Séquents propositionnels 21

2.2.2 Calcul des séquents


Ce qui manque à notre système, c’est une syntaxe : un système simple qui va nous
permettre de justifier des tautologies. Cette syntaxe se base sur la notion de séquent :
un séquent est une paire de listes de propositions, que l’on écrira Γ ⊢ ∆, exprimant que
Γ → ∆ est une tautologie. L’intérêt de la relation ⊢ à définir est de donner un système
V W

facile de preuve : pour prouver que P est une tautologie, il suffit de prouver nil ⊢ cons(P, nil)
en suivant les règles de base définissant ⊢.

Notation 2.2.2.1. Dorénavant, pour utiliser des listes, nous écrirons a, ℓ pour signifie
cons(a, ℓ) et nous n’écrirons pas nil lorsque le contexte permet clairement de comprendre
qu’il s’agit d’une liste. Par exemple, on confondra la simple proposition P et la liste
cons(P, nil). La notation Γ, ∆ correspond à la concaténation, qui serait notée avec les
conventions précédentes Γ ⊕ ∆.

Définition 2.2.2.2 (Calcul des séquents). On définit la relation ⊢⊆ List(Prop)2 par


les règles suivantes :

P ∈ Γ ax Γ, P ⊢ ∆ Θ ⊢ Ξ, P
cut
Γ⊢P Γ, Θ ⊢ ∆, Ξ

Γ, P, Q, Γ′ ⊢ ∆ Γ ⊢ ∆, P, Q, ∆′
le re
Γ, Q, P, Γ′ ⊢ ∆ Γ ⊢ ∆, Q, P, ∆′

Γ, P, P ⊢ ∆ Γ ⊢ ∆, P, P
lc rc
Γ, P ⊢ ∆ Γ ⊢ ∆, P

Γ⊢∆ Γ ⊢ ∆ rw
lw
Γ, P ⊢ ∆ Γ ⊢ ∆, P

Γ, ⊤ ⊢ ∆ Γ ⊢ ∆, ⊥
⊤ ⊥
Γ⊢∆ Γ⊢∆

Γ ⊢ ∆, P Γ, P ⊢ ∆
l¬ r¬
Γ, ¬P ⊢ ∆ Γ ⊢ ∆, ¬P

Γ, P ⊢ ∆ Γ, Q ⊢ ∆ Γ ⊢ ∆, P, Q
l∨ r∨
Γ, P ∨ Q ⊢ ∆ Γ ⊢ ∆, P ∨ Q

Γ, P, Q ⊢ ∆ Γ ⊢ ∆, P Γ ⊢ ∆, Q
l∧ r∧
Γ, P ∧ Q ⊢ ∆ Γ ⊢ ∆, P ∧ Q

Γ, Q ⊢ ∆ Γ ⊢ ∆, P Γ, P ⊢ Q, ∆
l→ r→
Γ, P → Q ⊢ ∆ Γ ⊢ ∆, P → Q

On dit qu’une proposition P est prouvable si ⊢ P est dérivable.

L’objectif de la suite de cette section est de prouver que ⊢ définit en fait exactement
les tautologies, au sens suivant : pour toutes propositions P et Q, P ⊨ Q si et seulement si
P ⊢ Q (ainsi, en prenant par exemple P = ⊤, on peut montrer que ⊨ P si et seulement si
⊢ P ).
22 Chapitre 2. Logique propositionnelle

2.2.3 Correction du calcul des séquents


La première étape, qui est la plus simple, est de montrer que le calcul des séquents
est correct, c’est-à-dire que si l’on arrive à dériver Γ ⊢ ∆, alors Γ → ∆ est une
V W

tautologie. La preuve est simplement une induction sur la relation ⊢. Comme c’est la
première longue preuve par induction, nous allons la rédiger complètement, mais il est
d’usage pour prouver une induction dont les cas se ressemblent de ne prouver que quelques
cas les plus significatifs.
Pour commencer, introduisons un lemme permettant de plus facilement travailler sur le
résultat à prouver.

Lemme 2.2.3.1. Soient Γ, ∆ ∈ List(Prop) et ρ un environnement, on a l’équivalence


suivante : ^ _
Valρ ( Γ → ∆) = 1 ⇐⇒ min(Valρ (P )) ≤ max(P )
P ∈Γ P ∈∆

Démonstration. Calculons d’abord Valρ ( Γ →


V W
∆) :
^ _ ^ _
Valρ ( Γ→ ∆) = max(1 − Valρ ( Γ), Valρ ( ∆))
= max(1 − min(Valρ (P )), max(Valρ (P )))
P ∈Γ P ∈∆

Si cette valeur est 1, alors deux cas se présentent :


• max(Valρ (P )) = 1, ce cas signifiant forcément que maxP ∈∆ (P ) ≥ minP ∈Γ (Valρ (P ))
P ∈∆
puisque Val est à valeurs dans {0, 1}.
• 1 − minP ∈Γ (Valρ (P )) = 1, ou, de façon équivalente, minP ∈Γ (Valρ (P )) = 0, ce cas
impliquant encore l’inégalité puisque Val est à valeurs dans {0, 1}.
Réciproquement, si l’inégalité est vérifiée, alors on raisonne par disjonction de cas sur la
valeur de minP ∈Γ (Valρ (P )) :
• si sa valeur est 0, alors on sait déjà que 1 − minP ∈Γ (Valρ (P )) = 1, donc Valρ ( Γ →
V
W
∆) = 1.
• si sa valeur est 1, alors par notre inégalité on sait que maxP ∈∆ (Valρ (P )) = 1, donc
Valρ ( Γ → ∆) = 1.
V W

D’où l’équivalence souhaitée.

Théorème 2.2.3.2 (Correction du calcul des séquents). Soient Γ, ∆ ∈ List(Prop). Si


Γ ⊢ ∆, alors |= Γ → ∆.
V W

Démonstration. Soient Γ, ∆ ∈ List(Prop) et ρ un environnement, le résultat à montrer est


que Valρ ( Γ → ∆) = 1 sachant que Γ ⊢ ∆. Pour cela, on procède par induction sur
V W

⊢, en utilisant le lemme 2.2.3.1 pour avoir à prouver l’inégalité de valuations. Comme les
W V
opérateurs et sont commutatifs et idempotents, on déduit directement la validité des
règles d’échange et de contraction. Pour alléger le nombre de cas, on ne montrera que les
règles de la colonne de gauche dans les règles définissant ⊢, le lecteur pouvant facilement
inférer comment prouver les règles de la colonne de droite à partir de celles-ci (sauf pour
cut, que nous traitons), et on laissera le cas de → en exercice :
• Ax : Supposons que P ∈ Γ. L’inégalité à prouver se résume à

min(Valρ (R)) ≤ Valρ (P )


R∈Γ
= max (Valρ (R))
R∈{P }
2.2. Séquents propositionnels 23

• Cut : On suppose que

min Valρ (R) ≤ max Valρ (R) (2.2.3.1)


R∈(Γ,P ) R∈∆

et
min Valρ (R) ≤ max Valρ (R) (2.2.3.2)
R∈Θ R∈(Ξ,P )

Montrons que minR∈(Γ,Θ) Valρ (R) ≤ maxR∈(∆,Ξ) Valρ (R). On raisonne par disjonction
de cas sur la valeur de Valρ (P ) :
◦ si Valρ (P ) = 0, alors en injectant cette équation dans 2.2.3.2, on obtient

min Valρ (R) ≤ max Valρ (R)


R∈Θ R∈Ξ

d’où l’inégalité souhaitée (puisque rajouter des termes dans un minimum le fera
décroître et rajouter des termes dans un maximum le fera croître).
◦ si Valρ (P ) = 1, alors on injectant cette équation dans 2.2.3.1, on obtient

min Valρ (R) ≤ max Valρ (R)


R∈Γ R∈∆

d’où l’inégalité souhaitée.


• lw : Supposons que Valρ ( Γ) ≤ Valρ ( ∆) pour tout ρ, alors comme Valρ ( (Γ, P )) ≤
V W V

Valρ ( Γ) on voit directement que Valρ ( (Γ, P )) ≤ Valρ ( ∆).


V V W

• ⊤ : Comme Valρ (⊤) = 1 pour tout ρ, Valρ ( (Γ, ⊤)) = Valρ ( Γ) d’où le résultat.
V V

• l¬ : Supposons que
min Valρ (R) ≤ max Valρ (R) (2.2.3.3)
R∈Γ R∈(∆,P )

et montrons que minR∈(Γ,¬P ) Valρ (R) ≤ maxR∈∆ Valρ (R). On raisonne par disjonc-
tion de cas sur Valρ (P ) :
◦ si Valρ (P ) = 0, alors en injectant cette équation dans 2.2.3.3, on obtient

min Valρ (R) ≤ max Valρ (R)


R∈Γ R∈∆

d’où l’inégalité souhaité en rajoutant un élément dans le minimum.


◦ si Valρ (P ) = 1, alors minR∈(Γ,¬P ) Valρ (R) = 0 donc l’inégalité est vérifiée.
• l∨ : Supposons que
min Valρ (R) ≤ max Valρ (R) (2.2.3.4)
R∈(Γ,P ) R∈∆

et
min Valρ (R) ≤ max Valρ (R) (2.2.3.5)
R∈(Γ,Q) R∈∆

et montrons que minR∈(Γ,P ∨Q) Valρ (R) ≤ maxR∈∆ Valρ (R). On raisonne par disjonc-
tion de cas sur la valeur de Valρ (P ) :
◦ si Valρ (P ) = 1, alors en injectant cette égalité dans 2.2.3.4, on obtient

min Valρ (R) ≤ max Valρ (R)


R∈Γ R∈∆

d’où l’inégalité souhaitée en ajoutant un terme dans le minimum.


◦ si Valρ (P ) = 0, alors on procède par disjonction de cas sur la valeur de Valρ (Q) :
24 Chapitre 2. Logique propositionnelle

■ si Valρ (Q) = 1, l’argument précédent fonctionne aussi en remplaçant 2.2.3.4


par 2.2.3.5.
■ si Valρ (Q) = 0, alors on sait que Valρ (P ∨ Q) = 0 avec nos deux équations,
donc minR∈(Γ,P ∨Q) Valρ (R) = 0, d’où l’inégalité.
• l∧ : On voit que Valρ ( (Γ, P, Q)) = Valρ ( (Γ, P ∧ Q)) par associativité de , donc
V V V

si l’on suppose que Valρ ( (Γ, P, Q)) ≤ Valρ ( ∆), on en déduit directement que
V W

Valρ ( (Γ, P ∧ Q)) ≤ Valρ ( ∆).


V W

Donc, par induction, si Γ ⊢ ∆ alors |= Γ→


V W
∆.

Exercice 2.2.3.3. Montrer les cas manquants dans la preuve précédente.

Q = Q, que P ⊢ Q =⇒ P ⊨ Q.
V W
On en déduit donc, comme P = P et

Remarque 2.2.3.4. En utilisant le théorème de correction, on en déduit que pour P ⊆ Prop


et P ∈ Prop, si l’on trouve Γ ∈ List(P) tel que Γ ⊢ P , alors P ⊨ P .
On peut donc définir la relation ⊢⊆ P(Prop) × Prop par

P ⊢ P ≜ ∃Γ ∈ List(P), Γ ⊢ P

et les résultats précédents prouvent que ⊢⊆⊨. Nous allons maintenant montrer le sens
réciproque : ⊨⊆⊢. Ce résultat s’appelle la complétude.

Théorème 2.2.3.5 (Complétude du calcul des séquents [BMV16]). Pour tous


P ⊆ Prop et P ∈ Prop, si P ⊨ P alors il existe Γ ∈ List(P) tel que Γ ⊢ P .

Démonstration. Tout d’abord, par théorème de compacité, il nous suffit de traiter le cas
fini : pour Γ ∈ List(Prop), en prenant FΓ l’ensemble de formules associé, si FΓ ⊨ P alors
F ⊢ P.
On définit la relation ⊢∗ de façon analogue à ⊢ mais en ajoutant la règle suivante :

x1 , . . . , xn , ⊤, . . . , ⊤ ⊢∗ y1 , . . . , yp , ⊥, . . . , ⊥ ax
où x1 , . . . , xn , y1 , . . . , yn sont des variables propositionnelles toutes deux à deux distinctes,
on ajoute un nombre arbitraire de ⊤ à gauche et de ⊥ à droite, et en remplaçant la règle
axiome, les règles d’affaiblissement et la règle cut par la règle axiomes renforcée :

ax’
Γ, P ⊢∗ ∆, P
On prouve maintenant que pour tous Γ, ∆ ∈ List(Prop), Γ ⊢∗ ∆. On raisonne par
induction sur le nombre de constructeurs apparaissant au total dans le séquent Γ ⊢∗ ∆,
c’est-à-dire la somme du nombre de constructeurs de chaque formule :
• s’il n’y a aucun constructeur dans Γ, ∆, alors plusieurs séquents sont possibles. En
utilisant potentiellement la règle de contraction pour éliminer les variables en double
du même côté, il nous reste à traiter ces différents cas :
◦ si le séquent contient un ⊤ à droite ou un ⊥ à gauche, alors on peut prouver
Γ ⊢∗ ∆, ⊤ (respectivement Γ, ⊥ ⊢∗ ∆) :
ax’
Γ, ⊤ ⊢∗ ∆, ⊤

Γ ⊢∗ ∆, ⊤
◦ si le séquent est de la forme x1 , . . . , xn , ⊤, . . . , ⊤ ⊢ y1 , . . . , yp , ⊥, . . . , ⊥ où toutes
les variables sont deux à deux distinctes, alors la règle Ax† donne le résultat.
2.2. Séquents propositionnels 25

◦ si le séquent est de la forme Γ, x ⊢∗ ∆, x, alors la règle ax’ donne le résultat


directement.
On peut donc toujours prouver un séquent ne contenant aucun constructeur.
• Si Γ = Γ′ , ¬P , alors par l¬ il nous suffit de prouver Γ′ ⊢∗ ∆, P , ce qui est vérifié par
notre hypothèse d’induction.
• si Γ = Γ′ , P → Q, alors par l → il nous suffit de prouver à la fois Γ′ , Q ⊢∗ ∆ et
Γ′ ⊢∗ P , qui ont tous les deux strictement moins de constructeurs que notre séquent
original : on peut donc appliquer notre hypothèse d’induction.
• si Γ = Γ′ , P ∨ Q, alors il nous suffit de montrer à la fois Γ′ , P ⊢∗ ∆ et Γ′ , Q ⊢∗ ∆ qui
contiennent strictement moins de constructeurs que le séquent original.
• si Γ = Γ′ , P ∧ Q, alors il nous suffit de montrer Γ′ , P, Q ⊢∗ ∆ qui est vérifié par
hypothèse d’induction.
• les cas où on veut éliminer un constructeur qui est dans ∆ sont parfaitement analogues
aux précédents.
D’où le fait que tout séquent Γ ⊢∗ ∆ est dérivable.
Maintenant, prouvons que si Γ ⊢∗ ∆ et Γ ⊬ ∆, alors Γ ⊭ ∆ (où Γ ⊨ ∆ signifie que pour
toute valuation ρ, Valρ ( Γ) ≤ Valρ ( ∆)). On procède par induction sur ⊢∗ :
V W

• si la dernière règle utilisée est ax’, alors, puisque le séquent se démontre avec la règle
axiome et les règles d’affaiblissement, le fait que Γ ⊬ ∆ est absurde.
• si la dernière règle utilisée est ax† , alors on construit la valuation invalidant le séquent
en mettant tous les xi à 1 et tous les yi à 0.
• si la dernière règle utilisée est un échange, une contraction, ⊤ ou ⊥, alors une valuation
invalidant le séquent de départ invalide aussi le séquent d’arrivée. Cela vaut aussi
pour r∨, l∧ et r →.
• si la dernière règle utilisée est l∨ (un raisonnement analogue fonctionne pour r∧
et l →), alors en considérant que la conclusion de la règle est Γ, P ∨ Q ⊢∗ ∆, on
suppose que Γ, P ⊢∗ ∆ et Γ, Q ⊢∗ ∆. Or, comme Γ, P ∨ Q ⊬ ∆, on ne peut avoir à la
fois Γ, P ⊢ ∆ et Γ, Q ⊢ ∆. Sans perte de généralité puisque P et Q jouent des rôles
symétriques, on suppose que Γ, P ⊬ ∆. Alors, par hypothèse d’induction, on sait que
Γ, P ⊭ ∆, donc on trouve ρ telle que

min Valρ (R) > max Valρ (S)


R∈(Γ,P ) S∈∆

On en déduit qu’il existe une proposition R ∈ (Γ, P ) telle que Valρ (R) = 1 et que
pour tout S ∈ ∆, Valρ (S) = 0. Si R ∈ Γ, alors on en déduit directement que

min Valρ (R) > max Valρ (S)


R∈(Γ,P ∨Q) S∈∆

et donc que Γ, P ∨ Q ⊭ ∆. Sinon, cela signifie que R = P , donc que Valρ (P ) = 1,


d’où Valρ (P ∨ Q) = 1, donc

min Valρ (R) > max Valρ (S)


R∈(Γ,P ∨Q) S∈∆

Ainsi, dans tous les cas, Γ, P ∨ Q ⊭ ∆.


Ainsi, comme Γ ⊢∗ ∆ est toujours vérifié, on en déduit que Γ ⊬ ∆ =⇒ Γ ⊭ ∆, d’où
par contraposée Γ ⊨ ∆ =⇒ Γ ⊢ ∆.
26 Chapitre 2. Logique propositionnelle

Remarque 2.2.3.6. Même si cette démonstration est grandement inspirée de celle proposée
dans [BMV16] et adaptée pour prendre en compte les autres constructeurs propositionnels,
relevons que cette démonstration ne peut fonctionner qu’avec un ensemble de règles très
précis : il faut que les règles conservent la fausseté en plus d’être correctes pour qu’une
preuve fausse dès le début le reste. C’est en particulier la raison pour laquelle la définition
de ⊢∗ n’utilise pas la règle de coupure.

Ainsi, nous avons un système syntaxique ⊢ permettant d’entièrement caractériser la


relation ⊨, qui est une relation sémantique (elle relie les propositions par leur sens, là où ⊢
n’est qu’un système formel, encodable par exemple sur un ordinateur).
Chapitre 3
Calcul des prédicats

Table des sous-matières


3.1 Signatures, termes et formules . . . . . . . . . . . . . . . . . . . 28
3.1.1 Définition d’une signature . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 Termes et formules . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.3 Variables et substitution . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Bases de théorie des modèles . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Structure et interprétation . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Satisfaction, modèle . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.3 Théories et conséquence logique . . . . . . . . . . . . . . . . . . . 36
3.2.4 Morphismes de modèles . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.5 Agrandir des modèles . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3 Syntaxe de preuves . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.1 Déduction naturelle . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.2 Théorème de complétude . . . . . . . . . . . . . . . . . . . . . . 44

e premier but de la logique mathématique est de rendre compte du langage mathé-


L matique. A ce titre, la logique propositionnelle est clairement insuffisante, et nous
l’avons déjà présentée comme une simplification du langage mathématique habituel. Dans
ce chapitre, nous allons nous intéresser à la formalisation de ce langage mathématique
habituel, qui est le calcul des prédicats de la logique du premier ordre. Le terme prédicat
désigne le fait que nos propositions dépendent de termes, qui représentent des objets
mathématiques. L’expression « logique du premier ordre » désigne la capacité d’expression
de nos propositions : celles-ci ne peuvent parler que des objets mathématiques désignés
préalablement par l’univers de discours. Par contraste, la logique du deuxième ordre permet
de parler, en plus de ces objets, des propositions elles-mêmes : on peut écrire par exemple
∀P ∈ Prop, P → P .
Nous nous attarderons d’abord sur la définition, à partir d’une signature du premier
ordre, des termes et des formules, ainsi que les notions syntaxiques de variables libres, liées
et de substitution. Ensuite, nous introduirons les notions les plus élémentaires de la théorie
des modèles, et la relation de satisfaction |=. Enfin, comme dans le chapitre précédent,
nous allons définir une syntaxe pour le calcul des prédicats. La différence, cependant, est
que nous prouverons le théorème de compacité à partir de la complétude.
Ce chapitre peut être vu comme la base commune de la théorie de la démonstration et
de la théorie des modèles. A ce titre, nous donnerons avant tout les définitions des concepts

27
28 Chapitre 3. Calcul des prédicats

importants, mais n’allons pas nous attarder sur ceux-ci, puisque nous les reverrons dans
des chapitres dédiés. En particulier nous allons donner un formalisme pour la syntaxe du
calcul des prédicats et un seul, alors que la partie dédiée à la théorie de la démonstration
donnera un résultat plus général sur toute une famille de systèmes de preuves, et présentera
plusieurs formalismes.
On se fixe pour tout ce chapitre un ensemble Var dénombrable de variables.

3.1 Signatures, termes et formules


3.1.1 Définition d’une signature
Reprenons l’exemple que nous avions donné au début du chapitre 2 :
∀n ∈ N, (∃m ∈ N, n = 2 × m) ∨ (∃m ∈ N, n = 2 × m + 1)
Remarquons tout d’abord que l’on remplace « ou » par le symbole ∨, maintenant que nous
connaissons le formalisme de la logique propositionnelle. Il nous reste cependant plusieurs
points à définir formellement : tout d’abord, la phrase précédente contient des termes,
comme 2 ou n. Ceux-ci sont d’une nature différente d’une variable propositionnelle par
exemple, puisque dans le premier cas, les formules ne relient pas directement des termes,
mais des relations entre termes. Nous devons donc tout d’abord construire un ensemble
de termes, qui représenterons les objets dont les formules parleront. Cependant, comme
nous cherchons en premier lieu à élaborer des phrases finies, nous cherchons aussi à limiter
les symboles que nous utiliserons. Cela s’explique par le fait que pour lire une phrase, il
est nécessaire de savoir à l’avance quels sont les symboles constitutifs de ce langage. En
particulier, nous devons savoir ce que signifie chaque symbole.
Définition 3.1.1.1 (Signature). Une signature, ou langage, du premier ordre, est un
quadruplet L = (F, R, α, β) où α : F → N et β : R → N. On appelle les éléments de F les
symboles de fonction et les éléments de R les symboles de relation. Pour un symboles de
fonction f ∈ F, α(f ) est appelée l’arité de f , et de même β(r) est l’arité de r pour r ∈ R.
Si f ∈ F est d’arité 0, on dit que c’est une constante.
Exemple. Un premier exemple de langage est le langage des groupes, qui est
LGrp ≜ {e0 , ×2 , ((−)−1 )1 }
où l’on indique par un exposant l’arité d’un symbole, et où tous les symboles sont des
symboles de fonction. De même, comme on préfère la notation additive pour les groupes
abéliens, on peut aussi définir
LAb ≜ {00 , +2 , −1 }
Exemple. Un autre exemple est le langage des anneaux :
LRing ≜ {00 , 10 , +2 , ×2 , −1 }
Exemple. Un autre exemple classique de langage est celui de l’arithmétique :
LArith ≜ {00 , S 1 , +2 , ×2 , ≤2 }
où ≤ est un symbole de relation, et les autres symboles sont des symboles de fonction.
L’exemple du langage de l’arithmétique permet de voir ce que nous entendons par
termes : avec ce langage, nous avons envie de pouvoir écrire 0 (qui est une constante) mais
aussi 1, défini par S 0, ou S S 0. De plus, il doit être possible d’écrire (S S 0) + (S 0) par
exemple : l’écriture est donc naturellement donnée comme un ensemble inductif, où les
arités des symboles de fonction nous donnent les arités des constructeurs de l’ensemble.
3.1. Signatures, termes et formules 29

3.1.2 Termes et formules


Définition 3.1.2.1 (Termes). Soit une signature Σ = (FΣ , RΣ , αΣ , βΣ ), on définit
Term(Σ) comme l’ensemble inductif engendré par FΣ ∪ Var où l’arité de f ∈ FΣ est
αΣ (f ) et où l’arité de x ∈ Var est 0. On peut représenter cet ensemble par la grammaire
suivante :
t, u ::= x | f (t1 , . . . , tα(f ) )
où x ∈ Var et f ∈ FΣ .

Ainsi, les termes écrits dans notre langage vont représenter les objets mathématiques
sur lesquels porteront nos formules. Ces formules sont définies par induction, d’une fa-
çon analogue aux propositions de la logique propositionnelle. En l’absence de variables
propositionnelles, les éléments atomiques des formules seront construits à partir des termes.
Nous donnons la définition d’une proposition atomique comme une proposition de la
forme r(t1 , . . . , tn ) où n correspond à l’arité de r. En plus des symboles de relation de la
signature, on considère le symbole =, représentant l’égalité.

Définition 3.1.2.2 (Proposition atomique). Soit une signature Σ. On définit l’ensemble


Atom(Σ) des propositions atomiques par

Atom(Σ) ≜ {(r, t1 , . . . , tk ) | r ∈ RΣ , (t1 , . . . , tk ) ∈ (Term(Σ))k , k = βΣ (r)}


∪ {(“ = ”, t, u) | t, u ∈ Term(Σ)}

où = est un symbole n’appartenant pas à RΣ .

Remarque 3.1.2.3. L’égalité est une relation, mais celle-ci n’appartient pas formellement
au langage, car son comportement est donné par les règles logiques, de la même façon que
∨ et ∧ ont leur sens imposés. Certains auteurs considèrent au contraire que = doit être
ajouté au langage, en tant que symbole de relation binaire, et d’autres font la différence
entre un langage égalitaire (incluant le symbole =) et un langage non égalitaire. Notre
choix est motivé à la fois par la simplicité et par l’expressivité : l’égalité est clairement
utile pour formaliser les mathématiques et raisonner dessus, mais chercher à préciser quand
nous l’utilisons ne l’est pas, étant donné qu’elle sera toujours présente.

Notation 3.1.2.4. Pour un symbole de relation r (pouvant être l’égalité), on écrira


r(t1 , . . . , tk ) plutôt que (r, t1 , . . . , tk ) dans la suite. Cela est motivé par le fait que le sens
donné à r est d’être un prédicat atomique prenant en argument des termes.

Nous pouvons maintenant définir l’ensemble des formules sur une signature donnée.

Définition 3.1.2.5 (Formules). Soit une signature Σ. On définit l’ensemble Form(Σ) par
la grammaire suivante :

φ, ψ ::= a | ⊤ | ⊥ | ¬φ | φ ∨ ψ | φ ∧ ψ | φ → ψ | ∀x, φ | ∃x, φ

où a ∈ Atom(Σ) et x ∈ Var.

3.1.3 Variables et substitution


Maintenant que les formules sont définies, nous voulons définir les opérations basiques
sur celles-ci. Tout d’abord, nous devons introduire les notions élémentaires liées aux
variables.
30 Chapitre 3. Calcul des prédicats

Définition 3.1.3.1 (Variable libre, formule close). On définit la fonction qui étant
donné un terme (respectivement une formule), retourne l’ensemble des variables libres
y apparaissant. La fonction VL est définie par induction sur Term(Σ) (respectivement
Form(Σ)) par les équations suivantes :
• si t = x ∈ Var, alors VL(t) = {x}.
n
[
• si t = f (t1 , . . . , tn ) où f ∈ FΣ , t1 , . . . , tn ∈ Term(Σ), alors VL(t) = VL(tk ).
k=1
• si φ = r(t1 , . . . , tn ) est une proposition atomique où r ∈ RΣ , t1 , . . . , tn ∈ Term(Σ),
n
[
alors VL(φ) = VL(tk ).
k=1
• si φ = ⊤, alors VL(φ) = ∅.
• si φ = ⊥, alors VL(φ) = ∅.
• si φ = ¬ψ, alors VL(φ) = VL(ψ).
• si φ = ψ ∨ χ, φ = ψ ∧ χ ou φ = ψ → χ, alors VL(φ) = VL(ψ) ∪ VL(χ).
• si φ = ∀x, ψ ou φ = ∃x, ψ, alors VL(φ) = VL(ψ)\{x}.
On dit que φ est une formule close (ou une proposition) si VL(φ) = ∅. On note par Clos(Σ)
l’ensemble des formules closes sur la signature Σ. De même, un terme t est appelé un terme
clos s’il n’a pas de variables libres (c’est-à-dire s’il n’a pas de variable).

Remarque 3.1.3.2. Une variable non libre est dite liée : les variables liées sont muettes,
elles n’ont pas d’importance en elle-même et seulement sur le quantificateur qui les lie. On
considère implicitement que si φ et ψ diffèrent seulement en remplaçant la variable liée
par un quantificateur et les variables que ce quantificateur lie, alors φ = ψ. Par exemple,
∀x, x = x et ∀y, y = y sont identifiées.

Comme pour la logique propositionnelle, la valeur de vérité d’une formule va dépendre


de la valeur associée aux variables libres. Cependant, pour l’instant, nous n’avons pas
de système clair d’évaluation : nous verrons comment évaluer une formule quand nous
aborderons la notion de modèle. Au niveau syntaxique, cependant, nous pouvons déjà
introduire la substitution, que l’on peut voir comme une évaluation syntaxique : on remplace
une variable libre par un terme.

Définition 3.1.3.3 (Substitution). Soient une signature Σ, un terme t ∈ Term(Σ) et


une variable x ∈ Var. On définit les deux fonctions

−[t/x] : Term(Σ) −→ Term(Σ)


u 7−→ u[t/x]

−[t/x] : Form(Σ) −→ Form(Σ)


φ 7−→ φ[t/x]

par induction sur la structure de Term(Σ) (respectivement sur la structure de Form(Σ)) :


• si u = x, alors u[t/x] = t.
• si u = y ∈ Var avec y ̸= x, alors u[t/x] = y.
• si u = f (u1 , . . . , un ), alors u[t/x] = f (u1 [t/x], . . . , un [t/x]).
• si φ = r(u1 , . . . , un ), alors φ[t/x] = r(u1 [t/x], . . . , un [t/x]).
• si φ = ⊤ alors φ[t/x] = ⊤.
3.1. Signatures, termes et formules 31

• si φ = ⊥ alors φ[t/x] = ⊥.
• si φ = ¬ψ alors φ[t/x] = ¬ψ[t/x].
• si φ = ψ ∨ χ alors φ[t/x] = ψ[t/x] ∨ χ[t/x].
• si φ = ψ ∧ χ alors φ[t/x] = ψ[t/x] ∧ χ[t/x].
• si φ = ψ → χ alors φ[t/x] = ψ[t/x] → χ[t/x].
• si φ = ∀z, ψ où z ∈
/ VL(t), alors φ[t/x] = ∀z, ψ[t/x].
• si φ = ∃z, ψ où z ∈
/ VL(t), alors φ[t/x] = ∃z, ψ[t/x].
Remarque 3.1.3.4. La condition de z ∈ / VL(t) dans les derniers cas peut toujours être
réalisée quitte à renommer la variable liée z : puisque Var est infini et que VL(t) est
fini, on peut toujours trouver a ∈ / VL(t) et remplacer ∀z, ψ par ∀a, ψ[a/z] en utilisant
l’identification de la remarque 3.1.3.2.
Si l’on veut être parfaitement formel, il conviendrait de procéder dans l’autre sens : on
définit d’abord la substitution comme donnée précédemment, puis on définit la relation
φ ≡ ψ engendrée par ∀x, ψ ≡ ∀y, ψ[y/x] et ∃x, ψ ≡ ∃y, ψ[y/x] dont on prouve qu’elle est
une relation d’équivalence, puis on définit le « vrai » ensemble Form(Σ) par Form(Σ)/ ≡
(cela n’est pas nécessaire pour Term(Σ) puisque toute variable est libre, dans un terme), et
que la fonction −[t/x] est bien définie sur ce quotient. Ce processus est évidemment plus
laborieux et n’apporte rien à la compréhension, c’est pourquoi nous ne le détaillons pas ici.
On définit aussi la notion de substitution simultanée, permettant de remplacer plusieurs
variables à la fois par des termes.
Définition 3.1.3.5 (Substitution simultanée). Soit une signature Σ, une fonction
partielle ρ : Var ⇀ Term(Σ), un terme t ∈ Term(Σ) et une formule φ ∈ Form(Σ). On
définit la substitution de t (respectivement φ) par ρ, notée ρ(t) (respectivement ρ(φ)), par
induction sur φ :
• si t = x ∈ Dom(ρ) alors ρ(t) = ρ(x)
• si t = f (t1 , . . . , tn ) alors ρ(t) = f (ρ(t1 ), . . . , ρ(tn )).
• si φ = r(t1 , . . . , tn ) alors ρ(φ) = r(ρ(t1 ), . . . , ρ(tn )).
• si φ = ⊤ alors ρ(φ) = ⊤.
• si φ = ⊥ alors ρ(φ) = ⊥.
• si φ = ¬ψ alors ρ(φ) = ¬ρ(ψ).
• si φ = ψ ∨ χ alors ρ(φ) = ρ(ψ) ∨ ρ(χ).
• si φ = ψ ∧ χ alors ρ(φ) = ρ(ψ) ∧ ρ(χ).
• si φ = ψ → χ alors ρ(φ) = ρ(ψ) → ρ(χ).
[
• si φ = ∀z, ψ où z ∈ / VL(ρ(x)), alors ρ(φ) = ∀z, ρ(ψ).
x∈Dom(ρ)
[
• si φ = ∃z, ψ où z ∈
/ VL(ρ(x)), alors ρ(φ) = ∃z, ρ(ψ).
x∈Dom(ρ)

Exercice 3.1.3.6. Soit x ∈ Var, t ∈ Term(Σ) et φ ∈ Clos(Σ) pour une signature Σ


quelconque. Montrer que φ[t/x] = φ.
Exercice 3.1.3.7. Soient t, u, v ∈ Term(Σ) et x, y ∈ Var, montrer que
t[u/x][v/y] = (t[v/y])[u[v/y]/x]

[ t, u ∈ Term(Σ), ρ : Var ⇀ Term(Σ) et x ∈


Exercice 3.1.3.8. Soient / VL(ρ) (cet ensemble
est l’abréviation de VL(ρ(y))). Montrer que
y∈VL(ρ)

ρ(t[u/x]) = ρ(t)[ρ(u)/x]
32 Chapitre 3. Calcul des prédicats

3.2 Bases de théorie des modèles


Maintenant que nous avons défini la syntaxe élémentaire, nous allons lui donner un
sens : une sémantique. Dans le cas de la logique propositionnelle, le sens d’une proposition
était simple à définir, puisqu’il s’agissait d’une valeur de vérité en fonction des variables
propositionnelles. Dans le cas de la logique du premier ordre, les propositions parlent
d’objets, et il faut donc fixer un univers ambiant sur lequel porte le discours donné par
les formules. Par exemple, en prenant le langage de l’arithmétique, pour évaluer le terme
S S 0+S S 0, on peut considérer 0 comme l’entier naturel 0, S comme la fonction n 7→ n+1
et + comme l’addition usuelle sur les entiers, ce qui fait que notre évaluation du terme
sera 4 ; mais on peut imaginer une autre interprétation de ce terme donnant par exemple 5
ou tout autre nombre.

3.2.1 Structure et interprétation


Nous travaillons donc sur l’interprétation d’une formule en deux parties : tout d’abord,
nous introduisons la notion de structure, qui offre une interprétation claire du langage dans
lequel la formule est écrite, et c’est seulement à partir de cette interprétation que l’on peut
évaluer une formule. Cela modifie notre notion de vérité : les formules closes prennent une
plus grande importance que le reste des formules, mais il faut quantifier sur des structures
en contrepartie.
Donner un sens à notre langage signifie que l’on sélectionne en premier lieu un univers
de discours : on désigne un ensemble M dans lequel seront interprétées les formules. Par
exemple, quand on parle d’arithmétique, une formule telle que

∀n, ∃m, n ≤ m

s’interprète naturellement comme portant sur des entiers, c’est-à-dire que n et m ont alors
vocation à être des éléments de N. Il nous faut ensuite donner un sens aux symboles : ceux-ci
n’ont, par défaut, pas de sens défini. On a donc besoin, pour chaque symbole de fonctions,
d’associer une réelle fonction ensembliste, dont le domaine est l’univers de discours choisi.
De même, un symbole de relation sera associé à une vraie relation ensembliste sur l’univers
de discours.
Définition 3.2.1.1 (Structure). Soit une signature Σ. On appelle Σ-structure (ou
simplement structure) M un triplet (|M|, −M M M
F , −R ) (on notera les deux − , sans indice)
où :
• |M| est un ensemble.
• pour chaque f ∈ FΣ d’arité n, f M : |M|n → |M|.
• pour chaque r ∈ RΣ d’arité n, rM ⊆ |M|n .
On identifie |M|0 → |M| à |M| : un symbole de constante est associé directement à
un élément.
Remarque 3.2.1.2. Si l’on définit un modèle comme un triplet, définir un modèle revient
à lister toutes les assignations, c’est-à-dire donner un ensemble |M| puis une fonction f M
pour chaque symbole de fonction f , et une relation rM pour chaque symbole de relation
r. On notera donc, au lieu d’un triplet contenant deux fonctions, une liste de tous les
éléments donnés par l’intérprétation. En règle générale (comme par exemple le modèle
donné au paragraphe suivant) l’association de chaque symbole est évidente, car la notation
du symbole de fonction évoque la fonction qui l’interprète (0 pour le neutre dans le langage
des groupes abéliens, par exemple).
3.2. Bases de théorie des modèles 33

Exemple. En reprenant les différents langages définis précédemments, on peut voir que, par
exemple, (Z, 0, +, −) est une structure sur le langage des groupes. C’est même, en incluant
1 et ×, une structure sur le langage des anneaux. De même, (N, 0, n 7→ n + 1, +, ×, ≤) est
une structure sur le langage de l’arithmétique.

Avec ces nouveaux exemples, on voit qu’il devient naturel d’interpréter dans la structure
(N, 0, n 7→ n + 1, +, ×, ≤) le terme S S 0 + S S 0 par l’élément 4 ∈ N. Nous pouvons
donc généraliser ce résultat. Pour cela, on définit d’abord la notion d’environnement. Un
environnement permet de gérer les variables libres d’un terme et d’une formule pour qu’une
variable x puisse être assignée à un réel objet de |M|. Dans un environnement ρ donné,
dont on suppose qu’il contient les variables libres d’un certain terme t, on peut construire
de façon canonique un élément tM ρ ∈ |M| : une variable libre est associée à son image par
ρ, et le reste se construit par l’interprétation des symboles de fonction. De même, une
formule est alors associée à une valeur de vérité, dépendant des valeurs de ρ.

Définition 3.2.1.3 (Environnement). Soit une signature Σ et une structure M. Un


environnement ρ est une fonction partielle ρ : Var ⇀ |M|. On note E l’ensemble des
environnements. Etant donnés un élément m ∈ |M|, une variable x et un environnement ρ,
on note ρ[x 7→ m] l’environnement coïncidant avec ρ sur Var \{x} et valant m en x.

Définition 3.2.1.4 (Interprétation, valuation). Soit une signature Σ, une structure M


et un environnement ρ. On définit par induction sur t (respectivement sur φ), en supposant
que VL(t) ⊆ Dom(ρ) (respectivement VL(φ) ⊆ Dom(ρ)), les fonctions suivantes :

−M
ρ : Term(Σ) −→ |M|

Valρ : Form(Σ) −→ {0, 1}

• si t = x ∈ Var, alors tM
ρ = ρ(x).
• si t = f (t1 , . . . , tn ), alors tM M M M
ρ = f ((t1 )ρ , . . . , (tn )ρ ).
• si φ = r(t1 , . . . , tn ) alors Valρ (φ) = χrM ((t1 )M M M
ρ , . . . , (tn )ρ ), l’image de ((ti )ρ )i=1,...,n
par la fonction indicatrice de rM (qui est, rappelons-le, une partie de |M|n ). On
interprète le symbole = de la même façon, en prenant la partie {(m, m) | m ∈ |M|}.
• si φ = ⊤, alors Valρ (φ) = 1.
• si φ = ⊥, alors Valρ (φ) = 0.
• si φ = ¬ψ, alors Valρ (φ) = 1 − Valρ (ψ).
• si φ = ψ ∨ χ, alors Valρ (φ) = max(Valρ (ψ), Valρ (χ))
• si φ = ψ ∧ χ, alors Valρ (φ) = min(Valρ (ψ), Valρ (χ))
• si φ = ψ → χ, alors Valρ (φ) = max(1 − Valρ (ψ), Valρ (χ))
• si φ = ∀x, ψ, alors Valρ (φ) = min (Valρ[x7→m] (ψ))
m∈|M|
• si φ = ∃x, ψ, alors Valρ (φ) = max (Valρ[x7→m] (ψ))
m∈|M|

Si t est un terme clos, alors tM est un élément de |M|. Si φ est une formule close, alors
Val(φ) est un élément de {0, 1}. Ces deux éléments sont obtenus en interprétant le terme
(respectivement la formule) dans le contexte vide, ou de façon équivalente dans n’importe
quel contexte.

Enfin, donnons un résultat statuant que la substitution et l’interprétation commutent.


34 Chapitre 3. Calcul des prédicats

Proposition 3.2.1.5. Soit une signature Σ, une structure M, un environnement ρ, une


variable x, deux termes t, u et une formule φ. On suppose de plus les inclusions suivantes :
VL(t) ⊆ Dom(ρ), VL(u) ⊆ Dom(ρ) et VL(φ) ⊆ Dom(ρ). On a alors les deux égalités
suivantes :
(t[u/x])M M
ρ = tρ[x7→uMρ ]
Valρ (φ[u/x]) = Valρ[x7→uM
ρ ]
(φ)
Démonstration. On montre la première égalité par induction sur t, et l’autre par induction
sur φ :
• si t = x alors (t[u/x])M M M
ρ = uρ d’un côté, et de l’autre tρ[x7→uM = (ρ[x 7→ uM
ρ ])(x)
ρ ]
d’où l’égalité.
• si t = y où y ∈ Var et y ̸= x, alors (t[u/x])M
ρ = ρ(y), qui est la même valeur pour
l’autre partie de l’équation.
• si t = f (t1 , . . . , tn ) où pour tout i ∈ {1, . . . , n}, (ti [u/x])M M
ρ = (ti )ρ[x7→uM ] , alors
ρ

(t[u/x])M M M
ρ = f ((t1 [u/x])ρ , . . . , (tn [u/x])ρ )
= f ((t1 )M
ρ[x7→uM
ρ ]
, . . . , (tn )M
ρ[x7→uM
ρ ]
)
= tM
ρ[x7→uM
ρ ]

• si φ = ⊤ ou φ = ⊥, l’égalité est directe.


• si φ = r(t1 , . . . , tn ) est une proposition atomique, alors
Valρ (r(t1 , . . . , tn )[u/x]) = Valρ (r(t1 [u/x], . . . , tn [u/x]))
= χr ((t1 [u/x])M M
ρ , . . . , (tn [u/x])ρ )
= χr ((t1 )M
ρ[x7→uM
ρ ]
, . . . , (tn )M
ρ[x7→uM
ρ ]
)
= Valρ[x7→uM
ρ ]
(r(t1 , . . . , tn ))

• si φ = ¬ψ, alors
Valρ ((¬ψ)[u/x]) = Valρ (¬(ψ[u/x]))
= 1 − Valρ (ψ[u/x])
= 1 − Valρ[x7→uM
ρ ]
(ψ)
= Valρ[x7→uM
ρ ]
(¬ψ)

• si φ = ψ ∨ χ, alors
Valρ ((ψ ∨ χ)[u/x]) = Valρ (ψ[u/x] ∨ χ[u/x])
= max(Valρ (ψ[u/x]), Valρ (χ[u/x]))
= max(Valρ[x7→uM
ρ ]
(ψ), Valρ[x7→uM
ρ ]
(χ))
= Valρ[x7→uM
ρ ]
(ψ ∨ χ)

• si φ = ψ ∧ χ, alors
Valρ ((ψ ∧ χ)[u/x]) = Valρ (ψ[u/x] ∧ χ[u/x])
= min(Valρ (ψ[u/x]), Valρ (χ[u/x]))
= min(Valρ[x7→uM
ρ ]
(ψ), Valρ[x7→uM
ρ ]
(χ))
= Valρ[x7→uM
ρ ]
(ψ ∧ χ)
3.2. Bases de théorie des modèles 35

• si φ = ψ → χ, alors

Valρ ((ψtoχ)[u/x]) = Valρ (ψ[u/x] → χ[u/x])


= max(1 − Valρ (ψ[u/x]), Valρ (χ[u/x]))
= max(1 − Valρ[x7→uM
ρ ]
(ψ), Valρ[x7→uM
ρ ]
(χ))
= Valρ[x7→uM
ρ ]
(ψ → χ)

• si φ = ∀y, ψ (sans perte de généralité, y ∈


/ VL(u)), alors

Valρ ((∀y, ψ)[u/x]) = Valρ (∀y, ψ[u/x])


= min (Valρ[y7→m] (ψ[u/x]))
m∈|M|

= min (Valρ[y7→m][x7→uM ] (ψ))


m∈|M| ρ[y7→m]

= min (Valρ[y7→m][x7→uM
ρ ]
(ψ))
m∈|M|

= min (Valρ[x7→uM
ρ ][y7→m]
(ψ))
m∈|M|

= Valρ[x7→uM
ρ ]
(∀y, ψ)

• si φ = ∃y, ψ (sans perte de généralité, y ∈


/ VL(u)), alors

Valρ ((∃y, ψ)[u/x]) = Valρ (∃y, ψ[u/x])


= max (Valρ[y7→m] (ψ[u/x]))
m∈|M|

= max (Valρ[y7→m][x7→uM ] (ψ))


m∈|M| ρ[y7→m]

= max (Valρ[y7→m][x7→uM
ρ ]
(ψ))
m∈|M|

= max (Valρ[x7→uM
ρ ][y7→m]
(ψ))
m∈|M|

= Valρ[x7→uM
ρ ]
(∃y, ψ)

D’où le résultat par induction.

3.2.2 Satisfaction, modèle


La notion de valuation permet de définir la relation de satisfaction, |=, d’une façon
analogue à ce que nous avons fait pour la logique propositionnelle.
Définition 3.2.2.1 (Satisfaction). Soit une signature Σ, une structure M et, une formule
φ et un environnement ρ tel que VL(φ) ⊆ Dom(ρ). On définit M, ρ |= φ par

M, ρ |= φ ≜ Valρ (φ) = 1

Soit un ensemble F ⊆ Form(Σ) et un environnement ρ tel que ∀φ ∈ F, VL(φ) ⊆ Dom(ρ).


On dit que M, ρ satisfont F, ce que l’on écrit M, ρ |= F, lorsque pour toute formule φ ∈ F,
il est vrai que M, ρ |= φ.
Dans le cas de formules closes, on écrira directement M |= φ et M |= F.
Cela permet alors de définir ce qu’est un modèle.
Définition 3.2.2.2 (Modèle). Soit une signature Σ et C ⊆ Clos(Σ). On dit que M est
un modèle de C si M |= C.
36 Chapitre 3. Calcul des prédicats

Un modèle ne se définit qu’avec un ensemble de formules closes. On pourrait imaginer


une définition analogue avec une formule non close, mais faire cela signifie qu’au lieu de
donner une structure, il faudrait donner une structure et un environnement en même temps.
Le but des modèles est plutôt, ici, de construire une classe particulière de structure vérifiant
certaines conditions que l’on peut exprimer au premier ordre.
Un exemple simple est la formule

∀x, ∀y, x + y = y + x

Les modèles de cette formule, sur le langage {+2 }, sont les magmas commutatifs (ensembles
munis d’une loi de composition interne commutative) : l’intérêt ici est de pouvoir décrire
parmi tous les magmas possibles ceux qui ont une lci commutative, et donc de le faire en
quelque sorte uniformément parmi les structures, ce qui n’est pas le cas si les formules
n’étaient pas closes.

3.2.3 Théories et conséquence logique


Cela mène naturellement à deux notions connexes : celle de théorie, et celle de consé-
quence logique. Une théorie permet de décrire des classes de modèles, et la conséquence
logique permet de créer des liens entre les formules, de la même façon que nous avions ⊨
pour le calcul propositionnel.

Définition 3.2.3.1 (Théorie). Une théorie axiomatique, ou simplement théorie, sur une
signature Σ, est une partie T ⊆ Clos(Σ).

Définition 3.2.3.2 (Conséquence logique, équivalence). Soit un ensemble F ⊆


Form(Σ) et une formule F ∈ Form(Σ). On dit que F est conséquence logique de F, ce
que l’on écrit F ⊨ F , lorsque pour toute structure M, si M |= F alors M |= F . Si deux
formules F et G sont telles que F ⊨ G et G ⊨ F , alors F et G sont dites logiquement
équivalentes, ce que l’on note F ≡ G.

On peut relier ces deux notions par celle de théorie saturée.

Définition 3.2.3.3 (Théorie saturée, clôture par conséquence). Soit une théorie
T sur une signature Σ. On dit que T est saturée si pour toute formule A ∈ Form(Σ), si
T ⊨ A alors A ∈ T .

Pour une théorie T , on définit sa clôture par conséquence, notée T , par

T ≜ {A ∈ Form(Σ) | T ⊨ A}

De plus, la conséquence logique permet directement de décrire une théorie « fausse » :


une telle théorie est une théorie dans laquelle la proposition fausse est considérée comme
vraie. Au niveau des modèles, cela se traduit par le fait qu’il n’existe pas de modèle de la
théorie, puisqu’un tel modèle associerait automatiquement à ⊥ la valeur de vérité 0.

Proposition 3.2.3.4. Soit une signature Σ et une théorie T sur Σ. Alors T admet un
modèle si et seulement si T ̸⊨ ⊥.

Démonstration. Supposons que T admette un modèle M. Alors par définition de Val,


Val(⊥) = 0 donc M ̸|= ⊥. On en déduit que T ⊭ ⊥.
Dans le sens réciproque et par contraposée, supposons que T n’admet pas de modèle.
Alors pour tout M tel que M |= T , M |= ⊥, par vacuité de la condition : on en déduit
donc que T ⊨ ⊥, donc que si T ⊭ ⊥, alors T a un modèle.
3.2. Bases de théorie des modèles 37

Définition 3.2.3.5 (Théorie cohérente, contradictoire). Soit une signature Σ et une


théorie T sur Σ. On dit que T est cohérente quand elle admet un modèle, et qu’elle est
contradictoire si elle n’admet pas de modèle. De façon équivalente, T est cohérente si et

seulement si elle n’est pas contradictoire, et si et seulement si ⊥ ∈
/T .

On voit donc qu’une théorie ne doit pas pouvoir prouver trop de choses. Néanmoins,
on peut vouloir une théorie la plus forte possible, qui reste malgré tout cohérente. Une
telle théorie est une théorie complète : elle est une théorie dans laquelle si un énoncé est
faux, alors son contraire est vrai. Elle peut donc décider tout énoncé, et puisqu’elle est
cohérente elle ne peut pas décider plus (sinon il serait possible de vérifier A et ¬A, ce qui
est impossible).

Définition 3.2.3.6 (Théorie complète). Une théorie T sur une signature Σ est dite
⊨ ⊨
complète si pour toute formule A ∈ Form(Σ), soit A ∈ T soit ¬A ∈ T , mais pas les
deux.

On va voir plus tard que toute théorie cohérente, c’est-à-dire dont ⊥ n’est pas une
conséquence logique, peut être étendue en une théorie complète.

3.2.4 Morphismes de modèles


Pour manipuler efficacement les modèles, il est utile de prendre du recul sur ce qui
est manipulé, et d’adopter un point de vue plus algébrique. Pour cela, nous allons donner
quelques propriétés basiques liées aux morphismes de modèles.
En mathématiques, un morphisme est en toute généralité une application qui préserve
la structure. C’est l’idée qui est formalisée dans la notion de morphisme entre structures :
un morphisme commute avec les symboles de relation et de fonction.

Définition 3.2.4.1 (Morphisme de structures). Soit une signature Σ et deux structures


M, N , un morphisme φ de M vers N est une application

φ : |M| −→ |N |

vérifiant les propositions suivantes :


• pour tout symbole de fonction f d’arité n et tout tuple (m1 , . . . , mn ) ∈ |M|n :

φ(f M (m1 , . . . , mn )) = f N (φ(m1 ), . . . , φ(mn ))

• pour tout symbole de relation r d’arité n et tout tuple (m1 , . . . , mn ) ∈ |M|n :

rM (m1 , . . . , mn ) =⇒ rN (φ(m1 ), . . . , φ(mn ))

Exercice 3.2.4.2. Montrer que pour toute signature Σ et toute structure M sur Σ, la
fonction id|M| induit un morphisme de M vers elle-même. On notera idM ce morphisme.

Exercice 3.2.4.3. Montre que l’opération ◦, de composition, s’étend en une opération


sur les morphismes de structures, c’est-à-dire que si f et g sont deux morphismes tels que
Dom(g) = Im(f ), alors g ◦ f est aussi un morphisme.

Exercice 3.2.4.4. Montrer que pour tout morphisme de structure φ : M → N , terme t


sur la même signature et environnement ρ tel que VL(t) ⊆ Dom(ρ), on a l’égalité suivante :

tM N
ρ = tφ◦ρ
38 Chapitre 3. Calcul des prédicats

Un renforcement de la notion de morphisme est celle de plongement : un plongement


est un morphisme dont l’image est isomorphe au domaine, c’est-à-dire que non seulement
le morphisme est injectif, mais le comportement vis à vis des propositions atomiques peut
s’étudier dans l’image uniquement en étudiant le modèle de départ.

Définition 3.2.4.5 (Plongement). Un plongement d’une structure M vers une structure


N est un morphisme pour lequel la deuxième condition n’est plus une implication mais
une équivalence :

∀(m1 , . . . , mn ) ∈ |M|n , rM (m1 , . . . , mn ) ⇐⇒ rN (φ(m1 ), . . . , φ(mn ))

Remarque 3.2.4.6. Puisque nous avons toujours la relation = dont l’interprétation est
l’égalité dans son sens naturel, on en déduit qu’un plongement est injectif.

Enfin, la notion d’isomorphisme est celle à laquelle on s’attend.

Définition 3.2.4.7 (Isomorphisme). Un isomorphisme φ : M ∼ = N est un morphisme


de M vers N tel qu’il existe un morphisme ψ de N vers M vérifiant
(
φ ◦ ψ = idN
ψ ◦ φ = idM

Assez naturellement, un isomorphisme préserve les formules. Cela se voit par exemple
en théorie des groupes, où on n’étudie les groupes qu’à isomorphisme près puisque toute
formule qu’on voudrait énoncer reste stable en passant à travers un isomorphisme.

Proposition 3.2.4.8. Si φ : M ∼
= N alors pour toute formule close A, M |= A si et
seulement si N |= A.

Démonstration. On montre par induction sur la structure de A que pour tout environnement
ρ : Var ⇀ |M| tel que VL(A) ⊆ Dom(ρ), on a l’équivalence

M, ρ |= A ⇐⇒ N , φ ◦ ρ |= A

• si A est de la forme r(t1 , . . . , tn ) avec un symbole de relation r, alors comme φ est un


morphisme on sait que si (tM M M N N N
1,ρ , . . . , tn,ρ ) ∈ r , alors (t1,φ◦ρ , . . . , tn,φ◦ρ ) ∈ r , comme
on sait qu’on a un morphisme réciproque ψ : N → M, on peut écrire ti,ρ = tM M
i,ψ◦φ◦ρ ,
donc l’argument précédent appliqué à ψ permet de déduire que si N , φ ◦ ρ |= A alors
M, ρ |= A.
• si A est ⊤ ou ⊥, le résultat est direct puisqu’indépendant de la structure dans laquelle
on l’évalue.
• si A est de la forme ¬B, alors

M, ρ |= ¬B ⇐⇒ M, ρ ̸|= B ⇐⇒ N , φ ◦ ρ ̸|= B ⇐⇒ N , φ ◦ ρ |= ¬B

• si A est de la forme B ∨ C, alors

M, ρ |= B ∨ C ⇐⇒ (M, ρ |= B) ∨ (M, ρ |= C)
⇐⇒ (N , φ ◦ ρ |= B) ∨ (N , φ ◦ ρ |= C)
⇐⇒ N , φ ◦ ρ |= B ∨ C
3.2. Bases de théorie des modèles 39

• si A est de la forme B ∧ C, alors


M, ρ |= B ∧ C ⇐⇒ (M, ρ |= B) ∧ (M, ρ |= C)
⇐⇒ (N , φ ◦ ρ |= B) ∧ (N , φ ◦ ρ |= C)
⇐⇒ N , φ ◦ ρ |= B ∧ C
• si A est de la forme B → C, alors
M, ρ |= B → C ⇐⇒ M, ρ |= (¬B) ∨ C
⇐⇒ N , φ ◦ ρ |= (¬B) ∨ C
⇐⇒ N , φ ◦ ρ |= B → C
• si A est de la forme ∀x, B, on montre le résultat par double implication. Si pour tout
m ∈ |M|, M, ρ[x ← m] |= B, alors pour tout n ∈ |N |, par surjectivité de φ, on trouve
m ∈ |M| tel que φ(m) = n. On sait alors que M, ρ[x ← m] |= B donc, par hypothèse
d’induction, que N , φ ◦ (ρ[x ← m]) |= B, ce qui revient à N , (φ ◦ ρ)[x ← φ(m)] |= B,
donc N , (φ ◦ ρ)[x ← n] |= B, d’où le résultat. Dans le sens réciproque, si pour tout
n ∈ |N |, N , (φ ◦ ρ)[x ← n] |= B, on peut faire le même raisonnement en écrivant tout
m ∈ |N | comme φ(φ−1 (m)) et utiliser l’hypothse d’induction pour en déduire que
M, ρ |= ∀x, B.
• le cas où A est de la forme ∃x, B est analogue au précédent.
D’où le résultat par induction. On a le résultat dans le cas particulier d’une formule
close.
On a montré qu’un isomorphisme était un morphisme bijectif : il est faux en toute
généralité de considérer que cette propriété caractérise un isomorphisme, comme le montre
l’exercice suivant.
Exercice 3.2.4.9. On considère les deux ensembles ordonnés suivants :
• {0, 1} où 0 et 1 ne sont pas comparables
• {⊥, ⊤} où ⊥ ≤ ⊤
Construire un morphisme bijectif entre les deux ensembles ordonnés qui n’est pas un
isomorphisme.
Cependant, pour un plongement, ce résultat devient valide.
Proposition 3.2.4.10. Un morphisme φ : M → N est un isomorphisme si et seulement
si c’est un plongement surjectif.
Démonstration. Si φ est un isomorphisme, alors c’est en particulier une bijection, le
rendant surjectif. De plus, comme φ préserve toutes les propositions dans les deux sens, ce
morphisme préserve en particulier les propositions atomiques, c’est donc un plongement.
Si φ est un plongement surjectif, alors c’est une bijection : on peut donc considérer la
réciproque ψ de φ. Il nous reste à prouver que ψ est bien un morphisme : la préservation
des termes est automatique, et il nous faut encore montrer que pour tout symbole de
relation r d’arité p et n1 , . . . , np ∈ |N | :
rN (n1 , . . . , np ) =⇒ rM (ψ(n1 ), . . . , ψ(np ))
mais chaque n1 , . . . , np peut se réécrire φ(m1 ), . . . , φ(mp ), donnant
rN (φ(m1 ), . . . , φ(mp )) =⇒ rM (ψ(φ(m1 )), . . . , ψ(φ(mp )))
Or on sait que ψ ◦ φ = id, donc la condition revient à la réciproque de celle disant que
φ est un morphisme : c’est justement ce que nous donne le fait que φ est un plongement.
Donc φ est un isomorphisme.
40 Chapitre 3. Calcul des prédicats

3.2.5 Agrandir des modèles


Pour conclure cette partie introductive à propos des modèles, nous allons définir la
notion d’enrichissement.
Définition 3.2.5.1 (Enrichissement). Soit deux signatures Σ ⊆ Σ′ , c’est-à-dire telles
que tout symbole de Σ est un symbole de Σ′ de même arité. Soit une structure M′ sur Σ′ ,
alors on dit que M′ est un enrichissement d’une structure M sur Σ si :
• |M| = |M′ |

• pour tout symbole de fonction f ∈ Σ, f M = f M

• pour tout symbole de fonction r ∈ Σ, rM = rM
On définit l’appauvrissement de M′ sur Σ comme l’unique structure sur Σ dont M′
est l’enrichissement.
Remarque 3.2.5.2. On peut toujours appauvrir une strucutre, mais il n’est pas toujours
possible d’enrichir (ou du moins naturellement) une structure sur une extension de sa
signature.
Par exemple, le langage des anneaux est un enrichissement du langage des groupes.
On remarque qu’un anneau est toujours, en particulier, un groupe additif : nous allons
généraliser ce résultat pour une structure sur un enrichissement.
Proposition 3.2.5.3. Soit deux signatures Σ ⊆ Σ′ , M′ une structure sur Σ′ et M son
appauvrissement sur Σ, alors pour toute formule A ∈ Form(Σ) et tout environnement ρ,
on a
M, ρ |= A ⇐⇒ M′ , ρ |= A

Démonstration. On montre d’abord que pour tout terme t ∈ Term(Σ), tM M
ρ = tρ . Cela se
fait par induction : pour une variable x, on a ρ(x) = ρ(x) et si l’on suppose que pour tout
i ∈ {1, . . . , n} on a (ti )M M′ alors
ρ = (ti )ρ

(f (t1 , . . . , tn ))M M
ρ = (f (t1 , . . . , tn ))ρ

d’où le résultat pour tout terme t.


On procède maintenant par induction sur la structure de A :
• si A = r(t1 , . . . , tn ) alors
ValM M M M
ρ (r(t1 , . . . , tn )) = r ((t1 )ρ , . . . , (tn )ρ )
′ ′ ′
= rM ((t1 )M M
ρ , . . . , (tn )ρ )

• si A est un connecteur logique, alors le résultat est direct.


• si A = ∀x, B ou A = ∃x, B alors la quantification se fait sur le même ensemble pour
M et M′ donc le résultat est le même dans les deux cas (en utilisant l’hypothèse
d’induction).
M′
Donc par induction ValM
ρ (A) = Valρ (A), ce qui est le résultat attendu.

Corollaire 3.2.5.4. Soit deux signatures Σ ⊆ Σ′ , une structure M′ et une théorie T sur
Σ. Si M′ |= T , alors en prenant l’appauvrissement M de M′ sur Σ, M |= T .
La notion d’enrichissement est fondamentale en théorie des modèles : elle permet d’avoir
un meilleur contrôle sur les modèles qu’on manipule en y ajoutant des informations par
enrichissement, pour ensuite les appauvrir de nouveau vers le langage d’origine. C’est par
exemple l’idée menant à la méthode des diagrammes, développés dans la partie dédiée à la
théorie des modèles.
3.3. Syntaxe de preuves 41

3.3 Système de démonstration du calcul des prédicats


Nous avons défini la sémantique des formules à travers la notion de modèle. Pour suivre
ce que nous avons fait dans le chapitre précédent, nous allons maintenant introduire un
formalisme pour décrire mathématiquement des preuves en calcul des prédicats.
Nous avons alors plusieurs choix, car plusieurs formalismes existent. Les trois principaux
sont les sytèmes à la Hilbert, le calcul des séquents et la déduction naturelle. Nous avons
eu un aperçu du calcul des séquents dans le chapitre précédent, et il pourrait être pertinent
de continuer à l’utiliser, mais le choix fait ici est d’introduire un nouveau formalisme : celui
de la déduction naturelle. Ce choix se justifie par deux raisons principales :
• Tout d’abord, il permet d’aborder d’autres systèmes de preuves, puisque nous avons
déjà exploré le calcul des séquents. Cet argument est en même temps un contre-
argument, puisque cela signifie aussi que l’on peut trouver là une occasion de réexplorer
le calcul des séquents pour mieux le comprendre, c’est donc seulement une raison
mineure qui nous pousse à le choisir. De plus, le formalisme des systèmes à la Hilbert
ne sera pas exploré du tout dans cet ouvrage, car s’il est très simple à définir, il
possède peu de propriétés intéressantes à explorer contrairement aux deux autres
formalismes et n’a rien de naturel à manipuler.
• La deuxième raison, plus importante, est que la déduction naturelle est en quelque
sorte le raisonnement le plus primitif d’un mathématicien. Chaque règle exprime une
règle tout à fait évidente à l’intuition, particulièrement à celle du mathématicien,
et on peut trouver une correspondance importante entre une preuve utilisant la
déduction naturelle et une preuve en langage naturel (à la différence évidente que la
première est illisible pour un profane quand la deuxième est. . . illisible aussi pour
un profane, mais il y a moins de profanes des mathématiques que de profanes de la
déduction naturelle).
Il y a de nombreux avantages à définir une syntaxe pour nos preuves en calcul des
prédicats. Le premier est évident : avoir, comme dans le chapitre précédent, un système
efficace pour prouver des relations entre formules, ne passant pas par une interprétation
et une quantification sur toutes les valuations (et ici, en plus : tous les modèles). Le
deuxième, moins évident, sera plus lourd de conséquences : une syntaxe nous permet de voir
l’ensemble de l’activité mathématique comme un processus finitaire. Nous n’avons le droit
que d’employer des phrases finies en des textes finis pour étudier des objets potentiellement
infinis. Si ce fait semble en premier lieu purement philosophique (et il est effectivement
important, philosophiquement parlant) il mène aussi à une conséquence importante : le
théorème de compacité. Ce théorème est un analogue au théorème 2.2.1.7 dans le cas du
calcul des prédicats. Simplement, au lieu de quantifier sur les valuations, nous quantifions
sur les modèles, et puisque nous nous occupons en priorité des formules closes cela nous
donne un énoncé parlant uniquement de modèles.

3.3.1 Déduction naturelle


Commençons par définir la relation ⊢ de conséquence syntaxique. Pour cela, comme
pour le calcul des séquents, on va définir un système travaillant sur des listes (par nature
finies) plutôt que sur des ensembles. Une différence importante : nous n’allons pas relier
deux listes, mais une liste avec une proposition. Ainsi un séquent Γ ⊢ A signifie directement
que, sous les hypothèses listées dans Γ, la proposition A est vraie.
Définition 3.3.1.1 (Déduction naturelle). Soit une signature Σ. On définit la relation
⊢⊆ List(Form(Σ)) × Form(Σ) par induction par les règles suivantes :
42 Chapitre 3. Calcul des prédicats

A∈Γ ⊤ Γ, ¬A ⊢ ⊥
Ax Γ⊢⊤ ⊥c
Γ⊢A Γ⊢A

Γ, A ⊢ ⊥ Γ ⊢ ¬A Γ ⊢ A ¬e
¬i
Γ ⊢ ¬A Γ⊢⊥

Γ⊢A Γ⊢B Γ⊢A∨B Γ, A ⊢ C Γ, B ⊢ C


∨g ∨d ∨e
Γ⊢A∨B i Γ⊢A∨B i Γ⊢C

Γ⊢A Γ⊢B ∧ Γ ⊢ A ∧ B ∧g Γ⊢A∧B d


i e ∧e
Γ⊢A∧B Γ⊢A Γ⊢B

Γ, A ⊢ B Γ⊢A→B Γ ⊢ A →e
→i
Γ⊢A→B Γ⊢B

Γ ⊢ A[v/x] † Γ ⊢ ∀x, A
∀ ∀e
Γ ⊢ ∀x, A i Γ ⊢ A[t/x]

Γ ⊢ A[t/x] Γ ⊢ ∃x, A Γ, A[v/x] ⊢ B †


∃ ∃e
Γ ⊢ ∃x, A i Γ⊢B

=i Γ ⊢ A[t/x] Γ⊢t=u
Γ⊢t=t =e
Γ ⊢ A[u/x]
Où x, v ∈ Var et où t, u ∈ Term(Σ).
Les règles avec † signifient que v ∈
/ VL(Γ) ∪ VL(A) ∪ VL(B).
De plus, on définit la relation ⊢⊆ P(Form(Σ)) × Form(Σ) par F ⊢ A si et seulement
s’il existe Γ ∈ List(F) tel que Γ ⊢ A.
Exercice 3.3.1.2 (Sur la négation). Montrer que l’on peut prouver les deux séquents
suivants :
⊢ ¬A → (A → ⊥) ⊢ (A → ⊥) → ¬A
Montrer de plus que ¬A ⊨ A → ⊥ et que A → ⊥ ⊨ ¬A.
On peut donc, sans perdre d’expressivité, redéfinir ¬ comme l’opération A 7→ A → ⊥.
Cela nous permet alors de réduire le nombre de règles dans notre système.
Exercice 3.3.1.3 (Sur l’implication). Montrer que l’équivalence suivante est prouvable :

A → B ⊣⊢ ¬A ∨ B

où A ⊣⊢ B signifie que A ⊢ B et B ⊢ A.
Exercice 3.3.1.4 (De Morgan). Montrer que les lois de De Morgan sont dérivables :
• ¬(A ∨ B) ⊣⊢ ¬A ∧ ¬B
• ¬(A ∧ B) ⊣⊢ ¬A ∨ ¬B
• ¬(∃x, A) ⊣⊢ ∀x, ¬A
• ¬(∀x, A) ⊣⊢ ∃x, ¬A
• ¬¬A ⊣⊢ A
• ¬(A → B) ⊣⊢ A ∧ ¬B
Exercice 3.3.1.5 (Tiers exclu et non contradiction). Montrer les deux équivalences
suivantes :
3.3. Syntaxe de preuves 43

• A ∨ ¬A ⊣⊢ ⊤
• A ∧ ¬A ⊣⊢ ⊥
Remarque 3.3.1.6. A partir des exercices précédents, on peut être tenté de réduire
l’ensemble des formules et des règles à un fragment tel que les propositions atomiques, ¬,
∨ et ∃. En effet, toute formule est équivalent à une formule écrite avec ce fragment : on
peut donc imaginer que toute autre formule est en fait une simple écriture plus lisible de
celles constituées uniquement du fragment restreint.
Nous n’emploierons pas cette méthode de restriction car, structurellement, il n’est pas
évident par exemple que ¬(¬A ∨ ¬B), qui code A ∧ B, s’utilise de la même façon au niveau
des règles. Si l’on sait que l’on peut se ramener en utilisant certaines règles de l’un à l’autre,
il faudrait travailler à montrer en plus que les règles à propos de A ∧ B peuvent se dériver
des règles de ¬ et ∨ sur ¬(¬A ∨ ¬B). Mais cela motive aussi un déroulement plus lent des
preuves par induction et des différents cas, qui s’ils sont laborieux peuvent pour autant
être instructifs pour une première lecture.
Le cas de ¬, que l’on peut remplacer par → ⊥, est différent : les règles à propos de ¬
sont exactement celles de → ⊥.

A propos de la vacuité Notre formalisme a un problème essentiel : on peut prouver la


proposition ∀x, A =⇒ ∃x, A, qui est fausse dans le modèle vide. Deux façons permettent
de régler cet écart entre la syntaxe et la sémantique : changer la syntaxe, ou changer la
sémantique. Dans notre cas, nous changeons alors la sémantique en considérant que toute
structure (et donc tout modèle) est non vide. Cette restriction n’est pas très limitante,
puisque le modèle vide est inintéressant en général. Cependant, celle-ci parait particulière-
ment artificielle. Pour contrer cela, on peut à la place considérer des séquents enrichis de
la forme Γ | Θ ⊢ φ où Γ va être un contexte de variables, Θ un contexte logique et φ la
conclusion. Dans ce formalisme, les règles avec † ont, plutôt qu’une restriction, une action
sur le contexte des variables, avec par exemple

Γ, v | Θ ⊢ φ[v/x]
∀i
Γ | Θ ⊢ ∀x, φ
où Γ | Θ ⊢ ∀x, φ doit être une proposition bien typée, imposant ansi que v ∈ / VL(Θ)∪VL(φ).
On peut par exemple citer [Jac99] pour trouver un traitement de la syntaxe qui prend en
compte les variables introduites.
Le fait de gérer les variables est bien plus naturel, étant donné qu’une preuve en langage
naturel va toujours tenir compte des variables (en particulier, il semblerait incongru de
mentionner une variable non déjà introduite dans le contexte), et dans un contexte avec
plusieurs sortes, c’est-à-dire où les variables du premier ordre peuvent appartenir à différents
ensembles, ce formalisme gagne en utilité. Dans notre cas, il parait trop lourd de devoir
gérer les variables pour simplement pouvoir inclure le cas du modèle vide, c’est pourquoi
nous préférons simplement modifier notre sémantique.
Plutôt que de prouver directement des résultats, nous allons nous attarder sur le sens
de chaque règle, pour montrer en quoi elles sont intuitives (et donc robustes au niveau
de l’évidence qu’elles énoncent) et permettent de retranscrire n’importe quelle preuve (en
particulier, toute preuve en langage naturel est virtuellement équivalente à un arbre de
preuve en déduction naturelle).
• La règle Ax est surement la plus évidente : si A est une hypothèse, alors on peut en
déduire A.
• La règle ⊤ dit simplement que ⊤ est toujours prouvable.
44 Chapitre 3. Calcul des prédicats

• La règle ⊥c dit que pour prouver A, on peut supposer ¬A est aboutir à une contra-
diction : c’est le raisonnement par l’absurde, d’où l’indice « c » exprimant que cette
règle est propre à la logique classique (nous le verrons, remplacer cette règle par une
autre plus faible a des conséquences particulièrement intéressantes).
• La règle ¬i dit que pour prouver ¬A, il suffit de prouver que A aboutit à une absurdité.
• La règle ¬e dit que prouver A et ¬A en même temps est une absurdité.
• Les règles ∨i montrent que si on prouve A (respectivement B) alors on prouve A ∨ B.
• La règle ∨e montre que pour prouver C à partir de A ∨ B, il suffit de montrer A → C
et B → C ; ou, comme nous l’avons écrit, que l’on peut prouver C à la fois sous
l’hypothèse A et sous l’hypothèse B. C’est un raisonnement par disjonction de cas.
• La règle ∧i dit que pour prouver A ∧ B, il suffit de prouver A d’une part, et B d’autre
part.
• Les règles ∧e permettent d’affaiblir une preuve de A ∧ B en une preuve de A
(respectivement de B).
• La règle →i dit que prouver A → B signifie prouver B en ajoutant l’hypothèse A.
• La règle →e dit que si l’on a prouvé A → B et A, alors on peut en déduire B. C’est
la règle du modus ponens.
• La règle ∀i signifie que pour prouver ∀x, A, il suffit de prouver A pour une variable v
quelconque à la place de x. La nécessité que v ∈ / VL(Γ) ∪ VL(A) exprime que ce v
est quelconque : aucune hypothèse n’est faite sur celui-ci.
• La règle ∀e signifie qu’à partir d’une preuve de ∀x, A on peut instancier x à un terme
t quelconque pour obtenir une preuve de A[t/x].
• La règle ∃i permet de déduire une preuve de ∃x, A à partir d’une preuve de A[t/x],
pour n’importe quel terme t.
• La règle ∃e dit qu’à partir d’une proposition de la forme ∃x, A, on peut déduire une
proposition B en ajoutant dans le contexte A[v/x], où v est quelconque (ce qui se
traduit par la condition de v ∈/ VL(Γ) ∪ VL(A) ∪ VL(B)).
• La règle =i est la réflexivité de l’égalité : un terme est égal à lui-même.
• La règle =e , parfois appelée principe de Leibniz, exprime que si deux termes t et
u sont égaux, alors ils vérifient les mêmes formules. On appelle aussi ce principe
« indiscernabilité des identités ».

3.3.2 Complétude de la déduction naturelle


Nous allons maintenant montrer que ⊨ et ⊢ coïncident. Un sens est élémentaire : montrer
que ⊢⊆⊨, nous allons donc le traiter en premier. C’est la propriété qu’on appelle correction.
Elle énonce que ce que notre syntaxe dérive est valide. L’autre sens, disant que tout ce
qui est valide est dérivable, est très souvent plus technique : ce fut le cas pour la logique
propositionnelle, c’est encore le cas pour le calcul des prédicats.
On appelle en général, par abus de langage, complétude du système la propriété que
⊢=⊨, plutôt que simplement la propriété ⊨⊆⊢. Il est en effet peu pratique de devoir citer
deux théorèmes différents lorsque l’on parle de la correspondance des deux relations, c’est
pourquoi on préfère englober les deux en un résultat, et comme le sens le plus technique
est celui de complétude, c’est celui qu’on utilise pour nommer le théorème.
Comme ⊢ est définie par induction, la preuve de correction est directement une induction
sur sa structure. Remarquons cependant qu’il est nécessaire de pouvoir prendre en compte
3.3. Syntaxe de preuves 45

les variables, et donc d’introduire des environnements en plus. Nous allons donc utiliser la
proposition 3.2.1.5.

Théorème 3.3.2.1 (Correction). Soit une signature Σ, une liste Γ ∈ List(Form(Σ)) et


une formule A ∈ Form(Σ). Si Γ ⊢ A alors, en notant XΓ l’ensemble des formules dans Γ,
pour toute structure M, tout environnement ρ sur M, si M, ρ |= XΓ alors M, ρ |= A.

Démonstration. Nous allons prouver ce résultat par induction sur Γ ⊢ A, en supposant


introduits M et ρ :
• Ax : Si A ∈ Γ, alors il est évident que M, ρ |= A.
• ⊤ : Peu importe les prémisses, M, ρ |= ⊤.
• ⊥c : Supposons qu’aucun modèle M et aucun environnement ρ ne sont tels que
M, ρ |= XΓ ∪ {¬A}. Alors si M, ρ |= XΓ , on ne peut pas avoir M, ρ |= ¬A, donc
Valρ (¬A) = 0, donc Valρ (A) = 1, d’où M, ρ |= A.
• ¬i : Supposons qu’aucun (M, ρ) ne vérifie que M, ρ |= XΓ ∪ {A}, alors si M, ρ |= XΓ ,
Valρ (A) = 0 donc Valρ (¬A) = 1, d’où M, ρ |= ¬A.
• ¬e : Supposons qu’un modèle de Γ est un modèle à la fois de A et de ¬A. Alors
Valρ (A) = 1 et Valρ (¬A) = 1, mais Valρ (¬A) = 1 − Valρ (A), donc 0 = 1 : c’est
absurde, donc il n’y a pas de modèle de Γ.
• ∨gi : Supposons que si M, ρ |= XΓ alors M, ρ |= A. Soit M, ρ |= XΓ , par hypothèse
Valρ (A) = 1, donc Valρ (A ∨ B) = max(1, Valρ (B)), donc M, ρ |= A ∨ B.
• ∨di : L’argument précédent fonctionne exactement de la même manière.
• ∨e : A partir de maintenant, nous n’expliciterons plus les hypothèses d’induction, ni
ce que l’on cherche à prouver, pour gagner de la place. Supposons que M, ρ |= XΓ .
Alors par hypothèse d’induction, M, ρ |= A ∨ B, donc max(Valρ (A), Valρ (B)) = 1 :
on en déduit qu’au moins l’un des deux entre A et B est tel que Valρ = 1. Sans perte
de généralité, supposons que Valρ (A) = 1. On sait donc que M, ρ |= XΓ ∪ {A}, donc
par hypothèse d’induction M, ρ |= C.
• ∧i : Supposons que M, ρ |= XΓ , alors par hypothèse d’induction Valρ (A) = 1 et
Valρ (B) = 1, donc Valρ (A ∧ B) = min(1, 1) = 1, donc M, ρ |= A ∧ B.
• ∧ge : Supposons que M, ρ |= XΓ , alors par hypothèse d’induction Valρ (A ∧ B) = 1,
donc Valρ (A) = 1 car cette valeur est supérieure à Valρ (A ∧ B) : donc M, ρ |= A.
• ∧de : L’argument précédent fonctionne de la même manière.
• →i : Supposons que M, ρ |= XΓ . On travaille par disjonction de cas sur la valeur de
Valρ (A) :
◦ si Valρ (A) = 0 alors Valρ (A → B) = 1 donc M, ρ |= A → B.
◦ si Valρ (A) = 1 alors M, ρ |= XΓ ∪ {A}, donc par hypothèse d’induction M, ρ |=
B, donc Valρ (A → B) = 1, donc M, ρ |= A → B.
• →e : Supposons que M, ρ |= XΓ . On sait donc que Valρ (A → B) = 1 et Valρ (A) = 1.
Ainsi, max(0, Valρ (B)) = 1 : on en déduit que Valρ (B) = 1, c’est-à-dire que M, ρ |= B.
• ∀i : Supposons que M, ρ |= XΓ . On veut montrer que Valρ (∀x, A) = 1. Pour cela, soit
m ∈ |M| : on remarque que, par hypothèse d’induction, M, ρ |= A[v/x], mais comme
v est libre dans Γ (c’est-à-dire que v ∈
/ VL(Γ)), on remarque que M, ρ[v 7→ m] |= XΓ ,
soit M, ρ[v 7→ m] |= A[v/x], d’où Valρ[v7→m] (A[v/x]) = 1, mais l’expression de
gauche vaut Valρ[x7→m] (A). Comme cela fonctionne pour tout m, on en déduit que
Valρ (∀x, A) = 1.
46 Chapitre 3. Calcul des prédicats

• ∀e : Supposons que M, ρ |= XΓ , on sait donc que M, ρ |= ∀x, A, ce qui signifie en


particulier que pour tout m ∈ M, M, ρ[x 7→ m] |= A. Mais alors, en considérant
m = tMρ , on trouve que Valρ[x7→tM
ρ ]
(A) = 1, mais l’expression de gauche correspond
exactement à Valρ (A[t/x]), donc M, ρ |= A[t/x].
• ∃i : Supposons que M, ρ |= XΓ , alors M, ρ |= A[t/x], mais comme on sait que
Valρ (A[t/x]) ≤ Valρ (∃x, A), on en déduit que Valρ (∃x, A) = 1, donc M, ρ |= ∃x, A.
• ∃e : Supposons que M, ρ |= XΓ , alors M, ρ |= ∃x, A, donc on peut trouver un élément
m ∈ |M| tel que Valρ[x7→m] (A) = 1. On a Valρ[v7→m] (A[v/x]) = Valρ[x7→m] (A) car
v∈/ VL(A), et cette expression vaut 1. On en déduit que M, ρ[v 7→ m] |= A[v/x]. De
plus, comme v ∈/ VL(Γ), on a M, ρ[v 7→ m] |= XΓ , donc par hypothèse d’induction
M, ρ[v 7→ m] |= B. Mais v ∈/ VL(B), donc M, ρ |= B.
• =i : Pour tout modèle M et environnement ρ, on a forcément Valρ (t = t) = 1 puisque
(tM M
ρ , tρ ) ∈ {(m, m) | m ∈ |M|}.
• =e : Supposons que M, ρ |= XΓ , alors M, ρ |= A[t/x] et M, ρ |= t = u. On en déduit
que Valρ (t = u) = 1, c’est-à-dire que tM M
ρ = uρ , donc Valρ[x7→tM
ρ ]
(A) = Valρ[x7→uM
ρ ]
(A),
et à partir du fait que M, ρ |= A[t/x] on en déduit donc que M, ρ |= A[u/x].
Ainsi, par induction, si M, ρ |= XΓ , alors M, ρ |= A. En particulier, si M |= XΓ , alors
M |= A, et si pour F ⊆ Form(Σ), on a M |= F et F ⊢ A, cela implique donc que M |= A.
Ainsi ⊢⊆⊨.

Il nous reste à prouver le sens réciproque. En réalité, le point critique pour la démons-
tration est celui de l’existence d’un modèle. Plutôt que de montrer réellement que ⊨⊆⊢,
nous allons montrer qu’une théorie consistante, c’est-à-dire une théorie T telle que T ⊬ ⊥,
possède un modèle. On va donc commencer par montrer que notre résultat suffira à prouver
⊨⊆⊢.

Lemme 3.3.2.2. Supposons que pour toute théorie T telle que T ⊬ ⊥, il existe une
structure M telle que M |= T . Alors ⊨⊆⊢.

Démonstration. Supposons que F ⊨ A pour A ∈ Form(Σ) et F ⊆ Form(Σ). On voit donc


que F ∪ {¬A} n’a pas de modèle : par contraposée de notre hypothèse, cela signifie que
F, ¬A ⊢ ⊥. En appliquant simplement ⊥c , on en déduit que F ⊢ A. Ainsi ⊨⊆⊢.

Remarque 3.3.2.3. Nous avons défini une théorie comme un ensemble de formules closes,
donc la démonstration précédente n’est pas tout à fait exacte. Une façon de corriger cela
est d’enrichir le langage : pour chaque variable x libre dans F ou A, on ajoute un symbole
de constante cx , et on considère ensuite la théorie où x est remplacé par cx . On a une
correspondance entre l’existence d’un modèle avec x ou avec cx , puisque notre théorie sans
cx pourra s’évaluer dans le modèle avec x 7→ cx .

Il nous reste donc à démontrer qu’une théorie consistante admet bien un modèle. Cette
construction est technique, c’est pourquoi on va commencer par donner l’idée de la preuve.
L’idée principale est de construire un modèle syntaxique, c’est-à-dire un modèle dont
les éléments sont exactement les termes (clos) du langage. Ceux-ci seront quotientés par
l’égalité : si T ⊢ t = u, alors les termes t et u seront identifiés. En construisant un tel
modèle M, on va chercher à ce que T ⊢ φ si et seulement si M ⊨ φ puisque ce que vérifie
M est exactement ce que T peut prouver. On a alors besoin de deux caractéristiques
essentielles :
3.3. Syntaxe de preuves 47

• tout d’abord, il nous faut résoudre un problème quant à la quantification existentielle.


Supposons que ∃x, P soit vraie : on veut pouvoir exhiber un élément m tel que
P [m/x] est vrai, et nos éléments sont des termes. On en déduit donc qu’il faut pour
chaque proposition P avoir un terme tP correspondant tel que ∃x, P =⇒ P [tP /x].
Cela n’est pas vrai a priori, on va donc chercher à élargir notre langage pour ajouter à
chaque fois des constantes témoignant pour une proposition ∃x, P vraie qu’un terme
correspond : c’est ce que l’on appelle la méthode des témoins de Henkin.
• ensuite, T doit être complète. L’ensemble des énoncés vrais dans un modèle est une
théorie complète, puisqu’un énoncé est vrai dans un modèle si et seulement si sa
négation est fausse. Ainsi, si T n’est pas complète, ça ne peut pas être la théorie
d’un modèle. Moralement, on peut voir ça comme le fait qu’au moment de construire
un modèle, il faut faire des choix parmi les propositions, car certains modèles de T
peuvent vérifier telle proposition ou telle autre, si T n’est pas complète. Nous avons
donc besoin d’étendre notre théorie en une théorie complète.
• une fois cela fait, il ne nous restera plus qu’à appliquer la complétion de la théorie
enrichie par témoins de Henkin pour obtenir une théorie T contenant T et qui nous
permettra de construire un modèle.
Historiquement, le théorème de complétude de la logique du premier ordre date de
Gödel, dans sa thèse de doctorat [Göd29], mais la méthode que nous présentons ici (et
celle généralement utilisée de nos jours) a été introduite par Henkin, dans [Hen49].
Pour pouvoir effectuer les deux premières étapes, il est important que celles-ci soient
compatibles entre elles.

Définition 3.3.2.4 (Propriété de Henkin). On dit qu’une théorie T sur une signature Σ
a la propriété de Henkin si pour toute formule F à une variable libre x telle que T ⊢ ∃x, F ,
il existe un terme tF ∈ Term(Σ) tel que T ⊢ P [tF /x].

Le point important de cette propriété est qu’elle peut être vérifiée, au prix d’une
augmentation de la théorie et du langage. Il faut cependant vérifier, alors, que la nouvelle
théorie ne peut toujours pas prouver ⊥.
Pour créer notre nouvelle théorie, on va ajouter artificiellement, pour chaque formule
∃x, F (x) où x est la seule variable libre de F , un témoin cF ainsi qu’une formule dans notre
théorie disant que, dans le cas où ∃x, F (x) est vérifiée, il vient directement que F (cF ) est
vérifiée aussi.

Définition 3.3.2.5 (Clôture par témoins). Soit Σ une signature, et T une théorie sur
Σ. On construit de façon itérative la suite Σn et Tn de signatures et de théories, où Tn est
une théorie sur Σn :
• Σ0 = Σ et T0 = T .
• Si Σn et Tn sont construits, on définit la signature Σn+1 en ajoutant les éléments
suivants : pour chaque formule F ∈ Form(Σn ) avec une unique variable libre (qu’on
notera x), on ajoute une constante cF à Σn+1 et la formule close (∃x, F (x)) → F [cF /x]
à Tn+1 .
On définit alors
H [ H [
Σ ≜ Σn T ≜ Tn
n∈N n∈N
H H
et T est une théorie sur Σ .
H
Propriété 3.3.2.6. La théorie T a la propriété de Henkin.
48 Chapitre 3. Calcul des prédicats

H H
Démonstration. Supposons que T ⊢ ∃x, F où ∃x, F ∈ Clos(Σ ). Remarquons que F ne
peut contenir qu’un nombre fini de symboles de fonctions et de relations : on en déduit
qu’il existe n ∈ N tel que F ∈ Form(Σn ). Cela signifie donc que

(∃x, F (x)) → F (cF ) ∈ Tn+1

On en déduit que Tn+1 ⊢ F (cF ).

De plus, cette construction est stable par extension (ce qui nous servira lorsque nous
compléterons notre théorie).
H
Propriété 3.3.2.7. Si T ⊆ S pour une certaine théorie S, alors S a la propriété de
Henkin.

Démonstration. Comme (∃x, F ) → F (cF ) appartient à S, la dérivation syntaxique précé-


H
dente fonctionne encore en remplaçant T par S.

Enfin, on veut montrer que la clôture par témoins conserve la cohérence. Pour prouver
cela, on a besoin d’abord de montrer un lemme important : une constante sur laquelle on
ne fait aucune hypothèse revient à considérer une variable libre.

Lemme 3.3.2.8 (Simulation d’une variable par une constante). Soit Σ une signature
contenant une constante c, A1 , . . . , An ∈ Form(Σ \ {c}), P ∈ Form(Σ) et une variable
x∈/ VL(A1 , . . . , An ). Les deux propositions sont alors équivalentes :
• A1 , . . . , A n ⊢ P
• A1 , . . . , An ⊢ P [c/x]

Démonstration. On raisonne par double implication. Par induction sur A1 , . . . , An ⊢ P


(on notera Γ ≜ A1 , . . . , An ) :
• si P ∈ Γ, alors x ∈
/ VL(P ) donc P [c/x] = P et le résultat est évident.
• si P = ⊤ alors P [c/x] = P encore une fois.
• pour toutes les règles ⊥c , ¬, ∨, ∧, →, la validité est immédiate puisque l’hypothèse
d’induction est stable dans toutes les règles (les variables ne changent jamais).
• si la dernière règle est ∀i , on suppose alors que P = ∀y, A et que Γ ⊢ A[v/y]. Par
hypothèse d’induction, on en déduit que Γ ⊢ A[v/y][c/x], mais on remarque que
A[v/y][c/x] = A[c/x][v/y] car v est une variable différente de x, donc Γ ⊢ A[c/x][v/y],
d’où Γ ⊢ ∀y, A[c/x] puisque v reste libre dans Γ, A.
• si la dernière règle est ∀e , on suppose alors que P = A[t/y] pour un certain terme
t, donc P [c/x] = A[t/y][c/x] ou encore P [c/x] = A[c/x][t[c/x]/y]. Par hypothèse
d’induction, on sait que Γ ⊢ ∀y, A[c/x], donc Γ ⊢ A[c/x][t[c/x]/y] d’où le résultat.
• si la dernière règle est ∃i , on suppose alors que P = ∃y, A et l’hypothèse d’induction
nous donne Γ ⊢ A[t/y][c/x], mais on peut réécrire A[t/y][c/x] = A[c/x][t[y/x]/y] et
appliquer la règle ∃i pour avoir le résultat.
• si la dernière règle est ∃e , on suppose que Γ ⊢ ∃y, A et Γ, A[v/x] ⊢ P où v n’apparaît
pas dans Γ ou dans P . On utilise notre hypothèse d’induction sur la première
hypothèse pour en déduire que Γ ⊢ ∃y, A[c/x], puis sur notre deuxième hypothèse
réécrite en Γ ⊢ A[v/y] → B, pour obtenir Γ ⊢ A[v/y][c/x] → B[c/x]. On peut réécrire
A[v/y][c/x] = A[c/x][v/y], et on peut alors déduire que Γ, A[c/x][v/y] ⊢ B[c/x] donc
en utilisant ∃e , que Γ ⊢ B[c/x].
3.3. Syntaxe de preuves 49

• si la dernière règle est =i , le résultat est direct.


• si la dernière règle est =e , alors on suppose que P = A[u/y] et, en utilisant l’hypothèse
d’induction, que Γ ⊢ A[t/y][c/x] et Γ ⊢ t[c/x] = u[c/x]. On peut alors montrer que
A[t/y][c/x] = A[c/x][t[c/x]/y], d’où Γ ⊢ A[c/x][u[c/x]/y], ce qui est exactement
Γ ⊢ A[u/y][c/x].
Ainsi si Γ ⊢ P alors Γ ⊢ P [c/x]. Le sens réciproque est une induction sur Γ ⊢ P [c/x] et est
analogue, nous ne la détaillons donc pas.

On peut maintenant prouver que la clôture par témoins de Henkin préserve la cohérence.
H
Propriété 3.3.2.9. Si T ⊬ ⊥, alors T ⊬ ⊥.
Démonstration. On suppose que T ⊬ ⊥, on montre alors par récurrence que Tn ⊬ ⊥ :
• Comme T0 = T , le résultat est direct.
• Supposons par l’absurde que Tn+1 ⊢ ⊥, et par hypothèse de récurrence que Tn ⊬ ⊥.
On sait donc qu’il existe A1 , . . . , An ∈ Tn et B1 , . . . , Bp ∈ Tn+1 \ Tn tels que

A1 , . . . , An , B1 , . . . , Bp ⊢ ⊥

En itérant la règle →i et en utilisant l’équivalence A ∧ B → ⊥ ⊣⊢ A → (B → ⊥)


(que le lecteur peut montrer en exercice), on obtient le séquent équivalent
p
^
!
A1 , . . . , A n ⊢ ¬ Bi
i=1

On sait de plus que les Bi sont de la forme

Bi ≜ (∃x, Fi ) → Fi [cFi /x]

Or, comme chaque Bi est dans Tn+1 mais pas dans Tn , on en déduit que chaque
cFi n’est pas dans Σn . Cela signifie donc, en utilisant le lemme 3.3.2.8, que prouver
notre séquent est équivalent, en choisissant de nouvelles variables yi , libres dans
A1 , . . . , An , B1 , . . . , Bp , à prouver
p
^
!
A1 , . . . , A n ⊢ ¬ (∃x, Fi ) → Fi [yi /x]
i=1

On peut alors généraliser chaque yi pour obtenir


p
^
!
A1 , . . . , An ⊢ ∀y1 , . . . , yp , ¬ (∃x, Fi ) → Fi [yi /x]
i=1

On a ensuite besoin de deux équivalences relativement naturelles à considérer :


p
^ p
^
∃xi , Ai ⊣⊢ (∃x1 , Ai ) ∃x, (A → B) ⊣⊢ A → (∃B)
i=1 i=1

si x n’apparaît pas dans A et dans aucun Aj pour j ̸= i.


En utilisant les lois de De Morgan on obtient donc d’abord que le séquent suivant est
équivalent à notre séquent d’origine :
p
^
!
A1 , . . . , An ⊢ ¬ ∃y1 , . . . , ∃yp , (∃x, Fi ) → Fi [yi /x]
i=1
50 Chapitre 3. Calcul des prédicats

puis
p
^
!
A1 , . . . , A n ⊢ ¬ ∃yi , (∃x, F ) → Fi [yi /x]
i=1

d’où, en utilisant la deuxième équivalence :


p
^
!
A1 , . . . , A n ⊢ ¬ (∃x, F ) → (∃yi , Fi [yi /x])
i=1

Or il est clair que chaque (∃x, F ) → (∃yi , Fi [yi /x]) est prouvable puisque de la forme
A → A (à renommage des variables liées près). On en déduit donc que A1 , . . . , An ⊢ ⊥,
ce qui est absurde. Ainsi Tn+1 ⊬ ⊥.
H
Ainsi, Tn ⊬ ⊥ pour tout n ∈ N. Ceci suffit à notre preuve, car si T ⊢ ⊥, alors il existe
H
une liste (finie) Γ ∈ List(T ) telle que Γ ⊢ ⊥, mais Γ ∈ List(Tn ) pour un certain n, puisque
H
cette liste est finie. Comme Tn ⊬ ⊥, cela est absurde. Ainsi T ⊬ ⊥.

On va maintenant énoncer qu’on peut compléter une théorie pour ⊢. Pour prouver ce
théorème, on va utiliser un contexte plus adapté qui est celui du chapitre 4.

Théorème 3.3.2.10 (Extension complète d’une théorie). Soit T une théorie telle
que T ⊬ ⊥. Alors il existe une théorie T ′ ⊇ T complète pour ⊢, c’est-à-dire telle que pour
tout formule φ, on a T ′ ⊢ φ ou T ′ ⊢ ¬φ, et T ′ ⊬ ⊥.

Démonstration. Retardée à la sous-section 4.3.2.

En combinant les deux propriétés sur la complétion de Henkin avec le théorème 3.3.2.10,
nous obtenons une extension de T complète et vérifiant la propriété de Henkin.

Lemme 3.3.2.11. Si T est une théorie sur Σ telle que T ⊬ ⊥, alors il existe une signature
Σ′ ⊇ Σ et une théorie T ′ ⊇ T sur Σ′ , complète et possédant la propriété de Henkin.
H H
Démonstration. On applique le théorème 3.3.2.10 à T : comme on sait que T ⊬ ⊥, on
peut effectivement compléter cette théorie pour ⊢. Avec la propriété 3.3.2.7, on sait que
cette complétion vérifie aussi la propriété de Henkin.

On fixe maintenant la théorie T ′ construite à partir de T . On fixe aussi la signature Σ′


H
comme étant Σ .

Définition 3.3.2.12 (Modèle syntaxique). On définit le modèle syntaxique MT ′ par :


• |MT ′ | défini comme l’ensemble des termes sur Σ′ (la signature définie plus tôt) qui
n’ont aucune variable libre, quotienté par ≡ où ≡ est défini par

t≡u≜T′⊢t=u

• pour chaque symbole de fonction f ∈ Σ′ d’arité n, on associe la fonction



fT : |MT ′ |n −→ |MT ′ |
(t1 , . . . , tn ) 7−→ f (t1 , . . . , tn )

• pour chaque symbole de relation r ∈ Σ′ d’arité n, on définit la relation rT par

rT (t1 , . . . , tn ) ≜ T ′ ⊢ r(t1 , . . . , tn )
3.3. Syntaxe de preuves 51

Démonstration. Pour que cette définition ait du sens, il convient de montrer que ≡ est une
relation d’équivalence, et qu’elle est compatible avec les symboles de fonction et de relation
′ ′
(c’est-à-dire que nos définitions de f T et rT ne dépendent pas du représentant choisi).
Montrons d’abord que ≡ est une relation d’équivalence :
• Grâce à =i , on sait que T ′ ⊢ t = t pour tout t ∈ Term(Σ′ ), donc ≡ est réflexive.
• Supposons que t ≡ u, c’est-à-dire que T ′ ⊢ t = u, on peut alors construire l’arbre de
preuve suivant :
=i
T′⊢t=t T ′ ⊢ t = u =e

T ⊢u=t
donc u ≡ t (t = t peut se lire comme (x = t)[t/x]).
• Supposons que t ≡ u et u ≡ v, montrons alors que t ≡ v :
=i
T′⊢t=t T ′ ⊢ t = u =e

T ⊢u=v ′
T ⊢ u = t =e
T′⊢t=v
Ainsi ≡ est bien une relation d’équivalence.
Soit f un symbole de fonction d’arité n. Pour simplifier la preuve, on suppose que f
est d’arité 1 (il suffit ensuite de faire une récurrence sur n pour généraliser la preuve que
nous allons faire). Pour que ≡ soit compatible avec f , il faut que l’image de f ne dépende
′ ′
pas du choix du représentant, c’est-à-dire que si t ≡ u alors f T (t) = f T (u), c’est-à-dire
que T ′ ⊢ f (t) = f (u), ce que l’on peut prouver par
=i
T ′ ⊢ f (t) = f (t) T′⊢t=u

=e
T ⊢ f (t) = f (u)

donc f T est bien définie.
De même, pour une relation r prise pour simplifier d’arité 1, il convient de montrer
′ ′
que si t ≡ u alors rT (t) → rT (u) (il faudrait une équivalence, mais il suffit en fait de
montrer l’implication puisque ≡ a été montrée symétrique). L’arbre de preuve suivant nous
le montre :
T ′ ⊢ r(t) T′⊢t=u
=e
T ′ ⊢ r(u)

donc rT est bien définie.

Afin de montrer le théorème de complétude, on va vouloir montrer que les formules


vérifiées par MT ′ sont exactement les résultats montrés par la théorie T ′ . Comme l’induction
se fera sur la structure de la formule vérifiée, il nous faut considérer des possibles variables
libres. On définit donc d’abord une notation pour définir un environnement sur MT ′ .

Définition 3.3.2.13 (Valuation syntaxique). Soit ρ une valuation sur MT ′ , on la


notera ρ et on notera ρ une fonction Var ⇀ Term(Σ′ ) telle que ρ(x) = ρ(x).

On peut alors démontrer le lemme qui permettra de prouver le théorème de complétude.

Lemme 3.3.2.14. Pour toute formule φ ∈ Form(Σ′ ) et toute valuation ρ telle que VL(φ) ⊆
Dom(ρ), on a l’équivalence suivante :

T ′ ⊢ ρ(φ) ⇐⇒ MT ′ , ρ |= φ
52 Chapitre 3. Calcul des prédicats

Démonstration. On peut prouver par induction sur la structure des termes que pour tout
terme t ∈ Term(Σ′ ), on a ρ(t) = ρ(t) (l’exercice est laissé au lecteur, mais il s’agit d’une
induction qui ne présente aucune difficulté).
On démontre le résultat par induction sur la structure de φ :
• si φ est ⊤ ou ⊥, le résultat est évident (en particulier T ′ ⊬ ⊥).
• si φ = r(t1 , . . . , tn ) alors la proposition T ′ ⊢ r(ρ(t1 ), . . . , ρ(tn )) signifie exactement

rT (ρ(t1 ), . . . , ρ(tn ))

ce qui correspond à
MT ′ |= r(ρ(t1 ), . . . , ρ(tn ))
en utilisant le résultat sur la substitution des termes. Ce fait est une équivalence

puisqu’il provient de la définition même de rT .
• si φ = ¬ψ, montrons que T ′ ⊢ ρ(φ) =⇒ MT ′ , ρ |= φ. Comme T ′ ⊢ ¬ρ(ψ), on en
déduit que T ′ ⊬ ρ(ψ) (car T ′ ⊬ ⊥), donc par hypothèse d’induction MT ′ , ρ ̸|= ψ,
donc MT ′ , ρ |= φ. Montrons la réciproque : on suppose que MT ′ , ρ |= φ, c’est-à-dire
que MT ′ , ρ ̸|= ψ. Par hypothèse d’induction, cela signifie que T ′ ⊬ ρ(ψ), mais T ′ est
complète donc T ′ ⊢ ¬ρ(ψ). On a donc l’équivalence.
• si φ = ψ ∧ χ, on suppose que T ′ ⊢ ρ(ψ) ∧ ρ(χ). Comme T ′ est complète, cela est
équivalent à dire que T ′ ⊢ ρ(ψ) et T ′ ⊢ ρ(χ) (puisque ni ¬ρ(ψ) ni ¬ρ(χ) ne sont
prouvables), ce qui est équivalent par hypothèse d’induction à dire que MT ′ , ρ |= ψ
et MT ′ , ρ |= χ, donc équivalent à MT ′ , ρ |= ψ ∧ χ.
• les cas de → et ∨ se ramènent directement à ∧ et ¬ grâce aux lois de De Morgan
(sémantiquement on peut voir facilement l’équivalence par l’égalité des valeurs de
vérité).
• le cas de ∀ se ramène à celui de ∃ et ¬ grâce aux lois de De Morgan, nous traitons
donc simplement ∃.
• si φ = ∃x, ψ, où x ∈/ VL(ρ) ; alors supposons que T ′ ⊢ ∃x, ρ(ψ) : comme chaque terme
substitué par ρ devient un terme clos et que toutes les variables libres de φ sont dans
le domaine de ρ, on sai que seul x est une variable libre de ρ(ψ), la propriété de Henkin
sur T ′ nous donne done une constante c telle que T ′ ⊢ ρ(ψ[c/x]) et donc un élément
c ∈ |MT ′ | tel que MT ′ , ρ[x 7→ c] |= ψ, donc MT ′ , ρ |= ∃x, ψ. Réciproquement, s’il
existe t tel que MT ′ , ρ[x 7→ t] |= ψ, alors par hypothèse d’induction T ′ ⊢ ρ[x 7→ t](ψ)
donc T ′ ⊢ ∃x, ψ.
D’où le résultat par induction.

On peut maintenant prouver le théorème de complétude.


Théorème 3.3.2.15 (Complétude de la déduction naturelle [Göd29]). Soit une
signature Σ et une théorie T sur Σ telle que T ⊬ ⊥. Alors il existe un modèle M |= T .
Démonstration. En reprenant notre modèle MT ′ , on sait à partir du lemme précédent que
MT ′ |= T ′ grâce à la règle d’axiome, et au fait que T ′ ne contient que des formules closes.
Comme T ⊆ T ′ , on en déduit donc que MT ′ |= T .

Théorème 3.3.2.16 (Complétude, deuxième version). Soit Σ une signature. Alors


les deux relations ⊢, ⊨⊆ P(Form(Σ)) × Form(Σ) coïncident.
On récupère en tant que conséquence un théorème essentiel de la théorie des modèles :
le théorème de compacité.
3.3. Syntaxe de preuves 53

Théorème 3.3.2.17 (Théorème de compacité). Soit Σ une signature, F ⊆ Form(Σ)


et F ∈ Form(Σ), alors F ⊨ F si et seulement s’il existe A ⊆fin F tel que A ⊨ F .

Démonstration. En effet, si F ⊨ F alors F ⊢ F , d’où par définition l’existence de Γ ∈


List(F) tel que Γ ⊢ A. Il n’y a qu’un nombre fini de propositions dans Γ, donc on peut
trouver A ⊆fin F tel que Γ ∈ List(A) : on en déduit donc que A ⊢ F , d’où par correction
que A ⊨ F .

En étudiant un peu en détail le modèle syntaxique que nous avons construit, il est
possible d’étudier son cardinal. En fait, comme le modèle est construit comme un quotient
de l’ensemble des termes, il nous suffit de dénombrer cet ensemble. Cela mène au théorème
de Löwenheim-Skolem descendant.

Théorème 3.3.2.18 (Löwenheim-Skolem descendant). Soit T une théorie cohérente


sur une signature Σ qui n’admet aucun modèle fini. Alors il existe un modèle de T de
cardinal inférieur à max(|ΣF |, ℵ0 ).

Démonstration. En effet, soit le modèle M de T syntaxique, construit précédemment.


Comme T n’admet aucun modèle fini, le modèle est de cardinal au moins ℵ0 . De plus,
H H
on a une surjection Term(Σ ) → M par t 7→ t. L’ensemble Term(Σ ) est de cardinal
max(|ΣF |, ℵ0 ). En effet, en notant à nouveau Σn chaque signature utilisée à chaque étape
H
de la construction de Σ , on voit qu’on ajoute un nombre de max(|ΣF |, ℵ0 ) de constantes
H
cF . La signature Σ est donc l’union dénombrable d’ensembles de cardinal max(|ΣF |, ℵ0 ),
H
donc c’est un ensemble dénombrable. On voit enfin que l’ensemble des termes sur Σ est
de même cardinal, avec le même argument.
En conclusion, on a une surjection d’un ensemble de cardinal max(|ΣF |, ℵ0 ) vers le
modèle syntaxique, qui est donc un modèle vérifiant l’affirmation voulue.

Le théorème de compacité, lui, nous permet de déduire la version ascendante du


théorème.

Théorème 3.3.2.19 (Löwenheim-Skolem ascendant). Soit T une théorie admettant


un modèle infini, et soit κ un cardinal infini. Alors il existe un modèle de T de cardinal
supérieur à κ.

Démonstration. On ajoute à Σ l’ensemble {ca | a ∈ κ} de constantes, et on définit la


théorie T ′ sur cette signature par

T′≜T ∪
[
(ca ̸= cb )
a,b∈κ

ainsi un modèle de T ′ est naturellement un modèle de T , et il a au moins κ éléments. Par


le théorème de compacité, pour que T ′ soit cohérent, il suffit que toute partie finie de T ′
soit cohérente. Mais le modèle de T , infini, est un modèle de toute partie finie de T ′ en
associant aux éléments ca des éléments distincts (seul un nombre fini est considéré par la
partie finie de T ′ , les autres peuvent être associés au même élément). Ainsi on a un modèle
de T ′ .

On peut ainsi énoncer le théorème de Löwenheim-Skolem sous une forme générale,


utilisant la version ascendante et descendante. Ce théorème, dû à Löwenheim pour sa forme
descendante, a été prouvé rigoureusement par Skolem ensuite.
54 Chapitre 3. Calcul des prédicats

Théorème 3.3.2.20 (Löwenheim-Skolem[Löw15][Sko20]). Soit M une structure


infinie sur une signature Σ et κ ≥ max(|ΣF |, ℵ0 ). Alors il existe une structure N élémen-
tairement équivalente à M, c’est-à-dire telle que pour tout énoncé clos φ ∈ Clos(Σ), on
a
M |= φ ⇐⇒ N |= φ
et telle que |N | = κ.

Démonstration. On combine les deux résultats précédents : on considère tout d’abord la


théorie TM des propositions vraies dans M. Cette théorie étant complète (un modèle vérifie
un énoncé ou sa négation), construire un modèle de TM de cardinal κ suffit à prouver ce
qu’on veut. On définit alors, comme précédemment, la théorie TM ′ constituée des énoncés

ca ̸= cb (on enrichit la signature en conséquences).


On sait donc qu’il existe un modèle syntaxique de cette théorie, qui est donc de cardinal
inférieur à κ par la version descendante du théorème, et de cardinal supérieur à κ par la
version ascendante du théorème : le modèle syntaxique est de cardinal κ.
On en déduit donc le résultat.
Chapitre 4
Théorie des ensembles ordonnés

Table des sous-matières


4.1 Ensembles ordonnés . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.2 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.3 Bornes et majorations . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.4 Ordre bien fondé et bon ordre . . . . . . . . . . . . . . . . . . . . 60
4.2 Treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.1 Demi-treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.2 Treillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.3 Algèbre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.4 Algèbre de Heyting . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.5 Treillis complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.3.1 Définitions et caractérisations . . . . . . . . . . . . . . . . . . . . 71
4.3.2 Ultrafiltre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.3 Filtre et morphisme . . . . . . . . . . . . . . . . . . . . . . . . . 76

ans ce chapitre, nous aborderons la théorie des ensembles ordonnés. Celle-ci est
D fortement liée à la logique, et permet entre autre de formaliser des structures logiques
comme les algèbres de Boole ou les algèbres de Heyting.
Les ensembles ordonnés peuvent être vus comme des cas dégénérés de catégories. Si
nous ne donnons pas dans cet ouvrage de rudiments de théorie des catégories, l’étudiant
catégoricien pourra voir dans plusieurs définitions des éléments similaires à ce qu’il connait
en théorie des catégories.
Nous commencerons par définir les idées générales sur les ensembles ordonnés. Cette
première partie introduira les notions élémentaires d’ordre, de borne supérieure, inférieure,
ainsi que les ordres bien fondés se reposant sur les éléments minimaux. Nous aborderons
ensuite la théorie des treillis, en allant des demi-treillis aux algèbres de Boole et de Heyting.
Cela motivera notre étude des filtres et ultrafiltres, dont le comportement dans une algèbre
de Boole est fortement simplifiée, et nous aurons alors l’occasion de démontrer le théorème
d’extension d’une théorie cohérente en une théorie complète.

4.1 Ensembles ordonnés


Commençons par donner les définitions les plus élémentaires.

55
56 Chapitre 4. Théorie des ensembles ordonnés

4.1.1 Définitions
Définition 4.1.1.1 (Ensemble ordonné). Un ensemble ordonné est un couple (X, ≤)
où ≤ est une relation binaire sur X vérifiant :
• ≤ est reflexive : pour tout x ∈ X, x ≤ x.
• ≤ est antisymétrique : si deux éléments x, y ∈ X sont tels que x ≤ y et y ≤ x alors
x = y.
• ≤ est transitive : si trois éléments x, y, z ∈ X sont tels que x ≤ y et y ≤ z alors
x ≤ z.
Un couple (X, ≤) tel que ≤ est seulement réflexive et transitive est appelé un ensemble
pré-ordonné, et ≤ est appelé un pré-ordre sur X.
Exemple (Ensemble des parties). Soit X un ensemble, l’ensemble (P(X), ⊆) est un ensemble
ordonné.

La plupart des résultats que nous énoncerons pourront aussi bien se traduire sur des
pré-ordres, en remplaçant en général x = y par x ≤ y ∧ y ≤ x. En fait, un pré-ordre peut
se ramener à un ordre par un quotient.
Propriété 4.1.1.2. Soit (X, ≤) un ensemble pré-ordonné, alors la relation ∼⊆ X × X
définie par
x∼y ≜x≤y∧y ≤x
est une relation d’équivalence, et ≤ induit un ordre sur X/ ∼.
Démonstration. Vérifions que ∼ est une relation d’équivalence :
• ∼ est réflexive : x ≤ x et x ≤ x, donc x ∼ x.
• ∼ est symétrique : supposons que x ∼ y, alors x ≤ y et y ≤ x, donc y ≤ x et x ≤ y,
donc y ∼ x.
• ∼ est transitive : supposons que x ∼ y et y ∼ z, alors x ≤ y et y ≤ z, donc x ≤ z, et
de même z ≤ y et y ≤ x donc z ≤ z, ainsi x ∼ z.
Pour vérifier que ≤ induit un ordre sur X/ ∼, il suffit de vérifier que si x ∼ x′ et y ∼ y ′ ,
alors x ≤ y si et seulement si x′ ≤ y ′ .
Si x ≤ y alors comme x′ ≤ x et y ≤ y ′ , on en déduit que x′ ≤ y ′ et réciproquement,
comme x ≤ x′ et y ′ ≤ y, il vient que x′ ≤ y ′ =⇒ x ≤ y.

Exercice 4.1.1.3. Soit une signature Σ, montrer que la relation ⊢⊆ Form(Σ) × Form(Σ)
définie comme restriction de la relation ⊢ que nous avons vue précédemment, mais où la
liste de gauche ne contient qu’une proposition, est un pré-ordre.
Remarque 4.1.1.4. La relation ⊣⊢ s’écrit aussi ≡, ce qui est cohérent avec notre définition
sémantique de ≡, étant donné que l’on sait que ⊢ et ⊨ coïncident.
L’ensemble ordonné construit par Form(Σ)/ ⊣⊢ est appelé l’algèbre de Lindenbaum-
Tarski (cette construction a été introduite dans [TC83]). Nous la verrons plus en détail
plus tard.
Une autre définition possible d’un ensemble ordonné est ce que l’on appelle habituelle-
ment un ensemble strictement ordonné. Nous en donnons la définition et montrons que
l’on peut faire correspondre à chaque ordre un ordre strict (et réciproquement).
Définition 4.1.1.5 (Ordre strict). Un ensemble strictement ordonné est une paire (X, <)
où < est une relation binaire sur X vérifiant :
4.1. Ensembles ordonnés 57

• < est antiréflexive : pour tout x ∈ X, x ̸< x.


• < est transitive.
Proposition 4.1.1.6. On a une bijection entre les ensembles ordonnés et les ensembles
strictement ordonnés en associant à (X, ≤) l’ensemble strictement ordonné (X, <) défini
par
x < y ≜ x ≤ y ∧ x ̸= y
Démonstration. On définit, dans l’autre sens, la relation ≤ à partir de < par
x≤y ≜x<y∨x=y
Le fait que ((x ≤ y) ∧ x ̸= y) ∨ x = y est équivalent à x ≤ y et que (x < y ∨ x = y) ∧ x ̸= y
est équivalent à x < y se vérifient directement.
Montrons que < défini à partir de ≤ est un ordre strict :
• par définition, x < y =⇒ x ̸= y, donc x ̸< x.
• si x < y et y < z, alors x ≤ z par transitivité de ≤. Si x = z alors z < y par
substitution de x par z, donc par transitivité y < y, ce qui est absurde. Donc x ̸= z.
Montrons que ≤ défini à partir de < est un ordre :
• par définition, si x = y alors x ≤ y.
• si x ≤ y et y ≤ x, alors soit x = y, soit x < y. Dans le premier cas, on a le résultat
voulu. Dans le deuxième cas, on utilise le fait que y ≤ x pour en déduire que soit
y = x, soit y < x. Encore une fois, le cas y = x donne directement ce qu’il faut
démontrer. Si y < x, alors par transitivité avec x < y on en déduit que x < x, ce qui
est absurde.
• si x ≤ y et y ≤ z, alors soit x = y, auquel cas on voit directement que x ≤ z, soit
x < y. En utilisant le fait que y ≤ z, on en déduit que soit y = z, soit y < z. Dans le
premier cas, il est évident que x ≤ z. Dans le deuxième cas, par transitivité, on en
déduit que x < z.

On définira donc des propriétés indifféremment sur un ordre ou sur un ordre strict (si
on dit qu’une propriété P définie sur les ordres strictes est vérifiée pour un ordre ≤, cela
signifie que < vérifie P ).
Intéressons-nous d’abord aux éléments : comme un ordre est (sauf indication du
contraire) partiel, deux éléments peuvent ne pas être mis en relation. Dans ces cas-là, deux
notions distinctes apparaissent : la comparabilité et la compatibilité. Pour deux éléments,
être comparable est une condition forte, mais parfois justement trop forte : la compatibilité
signifie juste que deux éléments peuvent être rejoints.
Définition 4.1.1.7 (Comparabilité, compatibilité). Soit (X, ≤) un ensemble ordonné.
On dit que deux éléments x et y sont comparables si x ≤ y ou y ≤ x. Deux éléments x et y
sont dits compatibles vers le haut (respectivement vers le bas) s’il existe z ∈ X tel que x ≤ z
et y ≤ z (respectivement z ≤ x et z ≤ y). Deux éléments sont dits incompatibles vers le
haut (respectivement vers le bas) s’ils ne sont pas compatibles vers le haut (respectivement
vers le bas).
Si tous les éléments de X sont comparables, on dit que X est un ensemble totalement
ordonné. Si tous les éléments de X sont compatibles vers le haut (respectivement vers le
bas), on dit que X est un ensemble ordonné filtrant vers le haut (respectivement vers le
bas).
Exemple. Deux éléments de P(X) sont toujours compatibles vers le bas en prenant comme
élément z leur intersection. Pourtant, {x} et {y} pour x ̸= y ne sont pas comparables.
58 Chapitre 4. Théorie des ensembles ordonnés

4.1.2 Dualité
Relevons dès maintenant un phénomène important en théorie des ordres, appelé la
dualité : lorsque l’on a un ordre ≤, on peut définir la relation ≥ par y ≥ x ⇐⇒ x ≤ y, et
cette relation est aussi une relation d’ordre, inversant quel élément est le plus grand et quel
élément est le plus petit. Ainsi lorsque l’on définit une notion sur un ensemble ordonné
(X, ≤), une notion duale est directement définie en considérant l’objet dans (X, ≥).
Ce phénomène permet de simplifier beaucoup de preuves : si l’on veut prouver deux
propositions P et Q où Q est obtenue en remplaçant ≤ dans P par ≥ (et toutes les
définitions par leurs définitions duales), si les propriétés portent sur tous les ensembles
ordonnés, alors prouver P suffit à déduire Q, qui est une conséquence de P pour l’ordre
dual.
Nous allons donc souvent écrire deux propositions pour une seule preuve, car la
proposition duale est souvent aussi importante que la proposition de base.

4.1.3 Bornes et majorations


On peut voir la théorie des ordres sous deux primes : le prisme algébrique et le prisme
analytique.
Suivant le prisme algébrique, nous étudions des structures munies d’une relation (on peut
voir cela comme de la théorie des modèles), et l’accent est alors mis sur les propositions
du premier ordre. Par exemple, la comparabilité ou la compatibilité sont des notions
algébriques. De même on peut parler de la borne supérieure de deux éléments, ou d’être le
maximum entre x et y, voire d’un ensemble fini d’éléments.
Suivant le prisme analytique, nous nous intéressons aux parties de l’ensemble ordonné
(potentiellement infinie). Nous parlons donc par exemple de la borne supérieure d’un
ensemble quelconque. Les structures pour lesquelles on peut appliquer le point de vue
analytique sont donc moins nombreuses, mais nous allons étudier les définitions basiques
de ces principes de bornes supérieures, de majorant ou autre.
Définition 4.1.3.1 (Majorant, minorant). Soit (X, ≤) un ensemble ordonné et F ⊆ X
une partie de X. On dit que x est un majorant de F si
∀y ∈ F, y ≤ x
et que x est un minorant de F si
∀y ∈ F, x ≤ y
Par abus de notation, on écrira F ≤ x (respectivmeent x ≤ F ) pour dire que x est un
majorant (respectivement un minorant) de F .
Définition 4.1.3.2 (Borne supérieure, borne inférieure). Soit (X, ≤) un ensemble
ordonné et F ⊆ X une partie de X. On dit que x est la borne supérieure de F si
F ≤ x ∧ (∀y ∈ X, F ≤ y =⇒ x ≤ y)
et que x est la borne inférieure de F si
x ≤ F ∧ (∀y ∈ X, x ≤ F =⇒ y ≤ x)
Démonstration. Puisque nous avons dit « la » il est nécessaire de montrer l’unicité de la
borne supérieure (l’unicité de la borne inférieure se prouver par dualité).
Supposons que x, y sont des bornes supérieures de F . Comme F ≤ x et y est une borne
supérieure, y ≤ x. De même, comme F ≤ y et x est une borne supérieure, x ≤ y. Donc
x = y par antisymétrie.
4.1. Ensembles ordonnés 59

W
Notation 4.1.3.3. Si la borne supérieure de F existe, on la notera F . Si la borne
V
inférieure de F existe, on la notera F .
Exercice 4.1.3.4. Soit (X, ≤) un ensemble ordonné et A ⊆ PX une partie telle que A
S

admet une borne supérieure et tout élément de A admet une borne supérieure, montrer
alors que
_ [ _ n _ o
( A) = a a∈A
Définition 4.1.3.5 (Maximum, minimum). Soit (X, ≤) un ensemble ordonné et F ⊆ X.
On dit que x est le maximum de F si F ≤ x et x ∈ F . On dit que x est le minimum de F
si x ≤ F et x ∈ F .
Notation 4.1.3.6. On notera max F et min F le maximum (respectivement le minimum)
de F .
Propriété 4.1.3.7. S’il existe, le maximum (respectivement le minimum) d’une partie est
sa borne supérieure (respectivement inférieure).
Démonstration. Si x est un majorant de F , alors comme max F ∈ F , on en déduit que
max F ≤ x, d’où le résultat.
Définition 4.1.3.8 (Élément maximal, minimal). Soit un ensemble ordonné (X, ≤) et
une partie F ⊆ X. On dit que x ∈ F est un élément maximal (respectivement minimal)
dans F s’il n’existe pas y ∈ F tel que x < y (respectivement tel que y < x).
Exercice 4.1.3.9. Montrer que le maximum d’une partie est un élément maximal de cette
partie.
Une autre partie intéressante est l’étude de parties sur lesquelles l’ordre induit se
comporte particulièrement bien. C’est ce que nous allons voir avec les chaînes, les antichaînes
et les parties filtrantes.
Définition 4.1.3.10 (Chaîne, antichaîne). Soit (X, ≤) un ensemble ordonné. On dit
que C ⊆ X est une chaîne de X si l’ensemble (C, ≤) (avec l’ordre induit) est un ensemble
totalement ordonné. On dit que A ⊆ X est une antichaîne de X si l’ensemble (A, ≤) (avec
l’ordre induit) ne possède pas deux éléments comparables, c’est-à-dire si (A, ≤) est l’ordre
discret. On dit que A ⊆ X est une antichaîne forte vers le haut (respectivement vers le bas)
de X si pour tous x, y ∈ A, x et y ne sont pas compatibles vers le haut (respectivement
vers le bas).
Cela nous mène à la notion d’ensemble inductif, importante pour établir le lemme de
Zorn, qui est une version de l’axiome du choix plus maniable. Nous prouverons ce résultat
lorsque nous étudierons la théorie des ensembles, mais pouvons déjà en donner l’énoncé.
La preuve est donnée dans la sous-section 7.1.3.
Définition 4.1.3.11 (Ensemble inductif). Un ensemble ordonné (X, ≤) est dit inductif
si toute chaîne admet un majorant.
Théorème 4.1.3.12 (Lemme de Zorn [Zor35]). Si (X, ≤) est un ensemble inductif et
x ∈ X, alors il existe un élément maximal y ∈ X qui est supérieur à x.
Remarque 4.1.3.13. Il existe plusieurs versions de la définition d’un ordre inductif.
Par exemple, on peut considérer que toute chaîne admet une borne supérieure, et non
simplement un majorant, ou que ce ne sont pas simplement les chaînes mais les chaînes bien
ordonnées (dont nous parlons dans la sous-section suivante) qui admettent un majorant
(respectivement une borne supérieure). Dans tous les cas, la version que nous donnons ici
est la plus simple, et les versions alternatives se prouvent de la même manière.
60 Chapitre 4. Théorie des ensembles ordonnés

Si le nom de lemme de Zorn a été donné, par exemple dans [TUK40], ce résultat
apparaît déjà avant, chez Kuratowski dès 1922. Le nom de Max Zorn est cependant resté
(bien qu’en Russie on l’appelle plutôt lemme de Kuratowski-Zorn). L’article [Zor35], lui,
présente avant tout l’efficacité de ce théorème pour simplifier des constructions algébriques
dont les preuves se ressemblaient toutes.

4.1.4 Ordre bien fondé et bon ordre


Nous donnons maintenant les notions d’ordre bien fondé et de bon ordre. Les bons
ordres auront de l’importance pour la théorie des ensembles, et les ordres bien fondés sont
utiles pour étendre le théorème d’induction.

Définition 4.1.4.1 (Ordre bien fondé). Soit (X, ≤) un ensemble ordonné. On dit que ≤
est bien fondé si toute partie F ⊆ X non vide possède un élément minimal, c’est-à-dire si

∀F ⊆ X, F ̸= ∅ =⇒ ∃x ∈ F, ∀y ∈ F, (y ≤ x =⇒ x = y)

Remarque 4.1.4.2. Une définition équivalente, sur les ordres stricts, est que < est bien
fondé si :
∀F ⊆ X, F ̸= ∅ =⇒ ∃x ∈ F, ∀y ∈ F, y ≮ x

Définition 4.1.4.3 (Bon ordre). Un ensemble ordonné (X, ≤) est un bon ordre lorsque
toute partie non vide F ⊆ X possède un minimum.

Une première conséquence évidente est qu’un bon ordre est un ordre bien fondé. De
plus, un bon ordre est total, puisque pour x, y ∈ X il existe un minimum à {x, y}. Ceci
caractérise en fait les bons ordres parmi les ordres bien fondés.

Proposition 4.1.4.4. Si (X, ≤) est un ordre bien fondé total, alors c’est un bon ordre.

Démonstration. Supposons que (X, ≤) est un ordre bien fondé total. Soit F ⊆ X non vide,
comme ≤ est un ordre bien fondé, on trouve m un élément minimal de F . Soit x ∈ F ,
alors soit x ≤ m soit m ≤ x. Dans le premier cas, par minimalité de m, on en déduit que
m = x, donc que m ≤ x. Ainsi, dans tous les cas, m est un minorant de F : F admet donc
un minimum.
Donc (X, ≤) est un bon ordre.

Nous avons vu que la notion de structure inductive nous offre le principe d’induction,
qui dans le cas particulier de N correspond au principe de récurrence. Le principe de
récurrence forte, lui, est de nature légèrement différente : il se base sur la notion d’ordre. Il
dit que si pour tout k ∈ N, on peut prouver

(∀i < k, P (i)) =⇒ P (k)

alors on peut en déduire que ∀n, P (n).


Ce procédé peut se généraliser à un ensemble bien fondé : on veut montrer que P (x)
est vrai pour tout x à partir du fait que

(∀y < x, P (y)) =⇒ P (x)

L’idée derrière cette démonstration est que pour un ordre bien fondé, on a un moyen
d’ordonner les éléments de sorte qu’on peut prouver P élément par élément en s’appuyant
sur le fait que P est vérifié aux étapes précédentes.
4.1. Ensembles ordonnés 61

Théorème 4.1.4.5 (Induction bien fondée). Soit (X, ≤) un ensemble ordonné bien
fondé. Soit P ⊆ X une partie vérifiant

∀x, ((∀y < x, y ∈ P ) =⇒ x ∈ P )

Alors P est égale à X.

Démonstration. Supposons que P = ̸ X. On trouve alors x ∈ X \ P minimal pour <.


Comme x est minimal pour < dans X \ P , on en déduit que pour tout y < x, y ∈ / X \ P,
c’est-à-dire y ∈ P . Par hypothèse, puisque ∀y < x, y ∈ P , on en déduit que x ∈ P : c’est
absurde. Ainsi, par l’absurde, on a prouvé que X \ P = ∅, donc que P = X.

Remarque 4.1.4.6. En construisant un ensemble inductif à partir d’une signature (C, α)


en prenant une suite d’ensembles (Xi )i∈N , on peut définir un ordre canonique bien fondé,
l’ordre de sous-terme, par récurrence sur i :
• pour X0 , on a facilement un ordre bien fondé sur ∅.
• supposons qu’on possède un ordre bien fondé sur Xn , alors on définit notre ordre
sur Xn+1 par xi < c(x1 , . . . , xn ) pour tout i ∈ {1, . . . , n}, et en en prenant la clôture
transitive.
Cet ordre, en particulier, permet de généraliser l’hypothèse d’induction de notre défini-
tion d’ensemble inductif en une induction forte.

Exercice 4.1.4.7. Montrer que l’ordre défini plus tôt est bien un ordre bien fondé.

Cela nous permet aussi de généraliser la récursion en la récursion bien fondée.

Notation 4.1.4.8. Pour gagner en lisibilité, si (X, <) est un ensemble strictement ordonné
et x ∈ X, on notera
x ↓≜ {y ∈ X | y < x}

Théorème 4.1.4.9 (Récursion bien fondée). Soient X, Y deux ensembles, et < un


ordre bien fondé sur X. Soit une fonction

f : P(X) → Y

alors il existe une unique fonction g : X → Y telle que

∀x ∈ X, g(x) = f (g(x ↓))

Démonstration. On prouve par induction bien fondée que si la fonction est définie pour les
éléments y < x, alors elle est définie de façon unique en x. Mais cela est directement le
cas puisque l’image de x est l’image par une fonction (donc définie de façon unique) d’un
ensemble déjà défini de façon unique par hypothèse d’induction bien fondée, donc g(x) est
définie de façon unique.

On peut donc définir une fonction g : X → Y avec (X, <) bien fondé en la définissant
en x grâce à ses valeurs pour tous les y < x. On verra dans le chapitre 7 une version plus
générale de ce principe dans le cas des ensembles bien ordonnés. En utilisant la notation
f ↾E pour « f restreinte à E », on aurait pu renforcer ce théorème en utilisant comme
condition que g(x) = f (g ↾x↓ ), permettant non seulement d’utiliser les g(y) mais aussi les y
associés.
62 Chapitre 4. Théorie des ensembles ordonnés

4.2 Treillis
Nous allons maintenant étudier le cas des treillis, qui sont des ensembles ordonnés
munis de propriétés de clôture. Pour être exhaustif et situer exactement quelles conditions
mènent à quels résultats, nous allons définir nos structures de la plus faible à la plus forte,
en montrant tous les résultats que nous souhaitons avoir sur une structure avant de passer
à la suivante.

4.2.1 Demi-treillis
Commençons par étudier les demi-treillis : ceux-ci sont des ensembles ordonnés avec
une direction privilégiée, selon laquelle il existe toujours une borne supérieure pour un
ensemble fini.

Définition 4.2.1.1 (Demi-treillis). Un ensemble (X, ≤) est un sup demi-treillis si toute


partie F ⊆fin X admet une borne supérieure F . C’est un inf demi-treillis si toute partie
W

F ⊆fin X admet une borne inférieure F .


V

Propriété 4.2.1.2. De manière équivalent, un ensemble (X, ≤) est un sup demi-treillis si


et seulement s’il admet un élément ⊥ et une opération ∨ : X × X → X tels que ⊥ est un
minorant de X et x ∨ y est la borne supérieure de x et y.
C’est un inf demi-treillis si et seulement s’il admet un majorant ⊤ et une opération
∧ : X × X → X prenant la borne inférieure de deux éléments.

Démonstration. Si (X, ≤) est un sup demi-treillis, on trouve ⊥ en prenant ∅ et x ∨ y en


W

prenant {x, y}.


W

Réciproquement, montrons par récurrence sur le cardinal de F ⊆fin X qu’il existe une
borne supérieure à F :
F = ⊥.
W
• si F = ∅, alors
F′ ∪ {x} et F ′ existe, alors { F ′ , {x}} = F ′ ∨ x donc
W W W W W W W
• si F = F = F
existe.
On a donc l’équivalence.

Cela nous donne une caractérisation plus algébrique d’un demi-treillis : c’est un ensemble
muni d’opérations. Cependant, ces opérations ont encore des définitions trop proches de
la théorie des ordres. Nous allons voir que l’on peut transformer cette définition en une
définition purement algébrique, c’est-à-dire n’utilisant que des opérations finies et des
égalités.

Définition 4.2.1.3 (Monoïde commutatif idempotent). Un ensemble X muni d’une


opération · et d’un élément e est un monoïde idempotent commutatif si les propriétés
suivantes sont vérifiées :
• ∀x ∈ X, x · e = e · x = x
• ∀x, y, z ∈ X, x · (y · z) = (x · y) · z
• ∀x, y ∈ X, x · y = y · x
• ∀x ∈ X, x · x = x
On définit sur un monoïde commutatif idempotent (X, ·, e) les relations ≤∨ et ≤∧ par

x ≤∨ y ≜ x · y = y
x ≤∧ y ≜ x · y = x
4.2. Treillis 63

Proposition 4.2.1.4. L’ensemble (X, ⊥, ∨) est un sup demi-treillis pour ≤∨ si et seulement


si (X, ⊥, ∨) est un monoïde commutatif idempotent.
L’ensemble (X, ⊤, ∧) est inf demi-treillis pour ≤∧ si et seulement si (X, ⊤, ∧) est un
monoïde commutatif idempotent.
Démonstration. Montrons d’abord que ≤∨ est bien un ordre pour un monoïde commutatif
idempotent :
• par idempotence, x ∨ x = x donc x ≤∨ x.
• si x ≤∨ y et y ≤∨ x, alors x ∨ y = y et y ∨ x = x donc

x=y∨x
=x∨y par commutativité
=y

• si x ≤∨ y et y ≤∨ z, alors x ∨ y = y et y ∨ z = z donc

x ∨ z = x ∨ (y ∨ z)
= (x ∨ y) ∨ z
=y∨z
=z

Supposons maintenant que (X, ⊥, ∨) est un sup demi-treillis, alors tout d’abord x ≤ y
si et seulement si y = {x, y}, si et seulement si y = x ∨ y, d’où le fait que ≤∨ coïncide
W

avec ≤. Montrons maintenant que (X, ⊥, ∨) est un monoïde commutatif idempotent :


• ⊥ est un élément neutre pour ∨ : pour tout x ∈ X, ⊥ ≤ x donc ⊥ ∨ x = x, et de
même pour x ∨ ⊥.
• ∨ est associatif : x ∨ (y ∨ z) = {x, y, z} = (x ∨ y) ∨ z.
W

• ∨ est commutatif : x ∨ y = {x, y} = y ∨ x.


W

• ∨ est idempotent : x ∨ x = {x} = x.


W

Réciproquement, montrons que si (X, ⊥, ∨) est un monoïde commutatif idempotent,


alors ⊥ est un minorant de X pour ≤∨ et ∨ est la borne supérieure de deux éléments pour
≤∨ :
• pour tout x, ⊥ ∨ x = x donc ⊥ ≤∨ x.
• pour tous x, y, x ∨ (x ∨ y) = (x ∨ x) ∨ y = x ∨ y donc x ∨ y est un majorant
de x (de même on prouve que x ∨ y est un majorant de y). Supposons que z est
un majorant de {x, y} pour ≤∨ . Cela signifie que x ∨ z = z et y ∨ z = z. Alors
(x ∨ y) ∨ z = x ∨ (y ∨ z) = x ∨ z = z donc x ∨ y ≤∨ z, donc x ∨ y est inférieur à tout
majorant de {x, y} : c’est la borne supérieure de {x, y}.
Le cas des inf demi-treillis se déduit par dualité.

Ainsi on parlera de sup demi-treillis (respectivement inf demi-treillis) en utilisant ≤ et


les opérations ⊥, ∨ (respectivement ⊤, ∧) sans souci, puisque toutes les définitions nous
donnent l’ensemble de ces notions.
Exercice 4.2.1.5. Soit Σ une signature, on rappelle que l’algèbre de Lindenbaum-Tarski
sur Σ, notée L(Σ), est l’ensemble quotient Form(Σ)/ ⊣⊢ muni de l’ordre ⊢. Montrer que
cette structure est un inf demi-treillis et un sup demi-treillis où le majorant est ⊤, le
minorant ⊥, la borne supérieure ∨ et la borne inférieure ∧.
64 Chapitre 4. Théorie des ensembles ordonnés

Exercice 4.2.1.6. Soit un ensemble X, montrer que (P(X), ⊆) est à la fois un sup et un
inf demi-treillis, où X, ∅, ∪ et ∩ sont respectivement le majorant, le minorant, la borne
supérieure et la borne inférieure.

On peut aussi définir les morphismes de demi-treillis, qui sont des morphismes entre
structures au sens attendu.

Définition 4.2.1.7 (Morphisme de demi-treillis). Soient (X, ≤) et (Y, ≤) deux sup


demi-treillis (respectivement deux inf demi-treillis). Un morphisme de sup demi-treillis
(respectivement d’inf demi-treillis) est une fonction f : X → Y croissante telle que f (⊥X ) =
⊥Y (respectivement f (⊤X ) = ⊤Y ) et telle que pour tous x, y ∈ X, f (x ∨ y) = f (x) ∨ f (y)
(respectivement telle que pour tous x, y ∈ X, f (x ∧ y) = f (x) ∧ f (y)).

4.2.2 Treillis
Un demi-treillis ne concerne qu’une direction entre le sup et l’inf. Un treillis, comme
son nom l’indique, est une structure qui possède les propriétés des deux demi-treillis à la
fois.

Définition 4.2.2.1 (Treillis). Un ensemble ordonné (X, ≤) est un treillis si toute partie
finie F ⊆fin X possède à la fois une borne supérieure F et une borne inférieure F .
W V

En théorie des ordres, il est direct de voir qu’être un treillis est équivalent à être à la fois
un inf demi-treillis et un sup demi-treillis, mais cela n’est pas aussi évident algébriquement,
car un inf demi-treillis est défini algébriquement par la relation ≤∧ et un sup demi-treillis
par la relation ≤∨ : il faut vérifier que ces deux relations coïncident.

Proposition 4.2.2.2. Un bimonoïde (X, ⊥, ∨, ⊤, ∧) est un treillis pour ≤∨ (respectivement


pour ≤∧ ) si et seulement si (X, ⊥, ∨) est un inf demi-treillis, (X, ⊤, ∧) est un inf demi-
treillis, ≤∨ et ≤∧ coïncident, cette dernière condition étant équivalente aux deux identités
d’absorption suivantes :
• ∀x, y ∈ X, (x ∨ y) ∧ x = x
• ∀x, y ∈ X, (x ∧ y) ∨ x = x

Démonstration. Soit (X, ⊥, ∨, ⊤, ∧) un bimonoïde commutatif idempotent. On suppose de


plus que ≤∨ =≤∧ , montrons les deux identités :
• Soient x, y ∈ X, comme x ≤∨ x ∨ y, on en déduit que x ≤∧ x ∨ y, c’est-à-dire que
x ∧ (x ∨ y) = x d’où l’égalité par commutativité de ∧.
• Soient x, y ∈ X, comme x ∧ y ≤∧ x, on en déduit que x ∧ y ≤∨ x, c’est-à-dire que
(x ∧ y) ∨ x = x.
Réciproquement, supposons vraies les identités. Montrons par double inclusion que
≤∨ =≤∧ :
• soient x, y tels que x ≤∨ y, alors x ∨ y = y, montrons que x ∧ y = x :

x ∧ y = x ∧ (x ∨ y)
=x

par la première identité. Ainsi x ≤∧ y, donc ≤∨ ⊆≤∧ .


4.2. Treillis 65

• soient x, y tels que x ≤∧ y, alors x ∧ y = x, montrons que x ∨ y = y :

x ∨ y = (x ∧ y) ∨ y
=y

par la deuxième identité. Ainsi x ≤∨ y, donc ≤∧ ⊆≤∨ .


Donc ≤∨ =≤∧ .

Cela nous donne donc une définition purement algébrique d’un treillis (en particulier,
un treillis est un modèle d’une certaine théorie ne contenant que l’égalité comme symbole
de relation).

Définition 4.2.2.3 (Morphisme de treillis). Soient (X, ≤) et (Y, ≤) deux treillis, un


morphisme de treillis entre ces deux treillis est une fonction f : X → Y qui est à la fois un
morphisme de sup demi-treillis et un morphisme d’inf demi-treillis.

Exercice 4.2.2.4. Soit une signature Σ, montrer que L(Σ) est un treillis.

Exercice 4.2.2.5. Soit un ensemble X, montrer que P(X) est un treillis.

Exercice 4.2.2.6. Soit une signature Σ. Soit M une structure sur Σ. Montrer que la
fonction
Φ : L(Σ) −→ P(M)
φ(x) 7−→ {x ∈ |M| : M |= φ(x)}
est un morphisme de treillis.

Cependant, la partie sup et la partie inf d’un treillis n’interagissent pas suffisamment
bien en général, c’est pourquoi il est nécessaire d’ajouter la distributivité de ∨ sur ∧ et de
∧ sur ∨, si l’on veut pouvoir l’utiliser.

Définition 4.2.2.7 (Treillis distributif). Soit (X, ≤) un treillis. On dit que c’est un
treillis distributif si de plus l’une des deux propositions équivalentes est vraie :
(i) ∀x, y, z ∈ X, x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)
(ii) ∀x, y, z ∈ X, x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)

Démonstration. Vérifions que ces deux propositions sont équivalentes. Par dualité, il nous
suffit de prouver que (i) =⇒ (ii). On suppose donc (i). Soient x, y, z ∈ X, par un calcul :

(x ∨ y) ∧ (x ∨ z) = (x ∧ x) ∨ (y ∧ x) ∨ (x ∧ z) ∨ (y ∧ z)
= x ∨ (y ∧ x) ∨ (x ∧ z) ∨ (y ∧ z)
= x ∨ (y ∧ z) ∨ ((x ∧ y) ∨ (x ∧ z))
= x ∨ (y ∧ z) ∨ (x ∧ (y ∨ z))
= (x ∨ (x ∧ (y ∨ z))) ∨ (y ∧ z)
(x ∨ y) ∧ (x ∨ z) = x ∨ (y ∧ z)

D’où l’équivalence.

Exercice 4.2.2.8. Montrer que L(Σ) et P(X) sont des treillis distributifs.
66 Chapitre 4. Théorie des ensembles ordonnés

4.2.3 Algèbre de Boole


Nous voyons maintenant notre premier cas de structure logique décrite par un ensemble
ordonné. Avec la structure de treillis, nous avons naturellement une structure permettant
d’encoder la conjonction et la disjonction. Pour travailler sur la logique propositionnelle,
il ne nous manque que la négation, l’implication pouvant se coder grâce à l’équivalence
logique a → b ≡ ¬a ∨ b.
Nous souhaitons donc avoir, en plus de ce que nous avons déjà défini, une fonction
¬ : X → X permettant de jouer le rôle de la négation. En logique classique, qui est notre
cadre de travail pour l’instant, deux propriétés en particulier décrivent le comportement
de ¬ : le tiers exclu et le principe de non contradiction, disant que x ∨ ¬x est vraie et que
x ∧ ¬x est fausse. La notion de « vrai » et de « faux » sont assez naturellement encodées
par ⊤ et ⊥, respectivement, d’où la définition suivante.
Définition 4.2.3.1 (Complément). Soit un treillis (X, ≤). On dit que y est un complé-
ment de x si
x∨y =⊤ x∧y =⊥
En fait, ceci suffit à caractériser la négation. En particulier, il n’y a qu’un complément
par élément, pour un treillis distributif.
Proposition 4.2.3.2. Soit (X, ≤) un treillis distributif et x ∈ X. Alors s’il existe un
complément à x, celui-ci est unique.
Démonstration. Supposons que y, z soient deux compléments de x. Alors
z =⊤∧z
= (x ∨ y) ∧ z
= (x ∧ z) ∨ (y ∧ z)
= ⊥ ∨ (y ∧ z)
=y∧z
d’où z ≤ y. En inversant le rôle de y et z, on trouve aussi que y ≤ z, d’où y = z.

Une algèbre de Boole peut ainsi se décrire grâce à cette notion de complément.
Définition 4.2.3.3 (Algèbre de Boole). Une algèbre de Boole (B, ≤) est un treillis
distributif complémenté. Pour un élément x ∈ B, on notera ¬x sont complément.
Exercice 4.2.3.4. Soit une signature Σ et un ensemble X. Montrer que L(Σ) et P(X)
sont des algèbres de Boole.
Remarque 4.2.3.5. En particulier, pour X = {∅}, on obtient une algèbre de Boole de
cardinal 2, qui correspond en fait au corps Z/2Z. On notera cette algèbre de Boole B2 ,
celle-ci a la particularité d’être la plus petite algèbre de Boole non dégénérée (telle que
⊥= ̸ ⊤) et d’être la seule algèbre de Boole qui a une structure de corps.
Exercice 4.2.3.6. Montrer que les identités de De Morgan sont vérifiées :
¬⊤ = ⊥ ¬¬x = x ¬(x ∨ y) = ¬x ∧ ¬y ¬(x ∧ y) = ¬x ∨ ¬y
Exercice 4.2.3.7. Montrer que si B et B ′ sont deux algèbres de Boole, alors un morphisme
f de treillis entre B et B ′ est en particulier un morphisme d’algèbre de Boole, au sens où
la propriété suivante est vérifiée :
∀x ∈ B, f (¬x) = ¬f (x)
4.2. Treillis 67

L’exercice suivant donne une caractérisation purement algébrique d’une algèbre de


Boole : on peut le voir comme un anneau idempotent.
Exercice 4.2.3.8. Soit (B, ≤) une algèbre de Boole. On définit ⊕ sur B par

x ⊕ y ≜ (x ∨ y) ∧ (¬x ∨ ¬y)

Montrer que (B, ⊥, ⊤, ⊕, ∧) est un anneau (où ⊥ est le neutre additif et ⊤ le neutre
multiplicatif).
Réciproquement, soit (A, 0, 1, +, ×) un anneau idempotent, c’est-à-dire vérifiant

∀x ∈ A, a × a = a

montrer les propositions suivantes :


(i) A est un anneau de caractéristique 2.
(ii) la relation ≤∧ définie par
x ≤∧ y ≜ x × y = x
est une relation d’ordre.
(iii) (A, ≤∧ ) est une algèbre de Boole, de majorant 1, de minorant 0, où × est la borne
inférieure et où la borne supérieure est

x∨y ≜x+y+x×y

Remarque 4.2.3.9. Chez certains auteurs, comme dans [Hal66], une algèbre de Boole est
principalement traitée comme un anneau. Ce point de vue a l’avantage de simplifier les
définitions, mais il permet moins de contrôle sur les hypothèses que l’on fait au niveau de
la structure. Comme notre chapitre est dédié aux ensembles ordonnés, nous considérons
plus intéressant de nous focaliser sur la structure ordonnée des algèbres de Boole pour en
donner un traitement s’inscrivant dans une continuité, depuis les treillis jusqu’aux algèbres
de Boole complètes.

4.2.4 Algèbre de Heyting


Pour nous intéresser aux algèbres de Heyting, il nous faut d’abord parler de la logique
intuitionniste. Pour ne pas nous attarder sur les questions philosophiques qui sont à l’origine
de l’essor des mathématiques intuitionnistes et constructives, nous nous contenterons de
remarquer que c’est une logique plus faible, mais donnant de meilleurs résultats (les résultats
sont plus durs à montrer mais apportent plus d’information).
La logique intuitionniste naît d’une volonté de travailler sans le tiers exclu. D’un point
de vue algorithmique, par exemple, ce principe peut être remis en question : comment
pouvons-nous effectivement décider toute proposition ? Il est en effet difficile d’imaginer
une machinerie finie qui pourrait décider, par exemple, si tel objet est infini. Ainsi une part
des mathématiques n’a ni besoin, ni envie du principe du tiers exclu, qui est équivalent au
raisonnement par l’absurde. Nous étudierons en détail cette logique lors de notre étude de la
théorie de la démonstration, mais nous donnons ici la définition de la logique intuitionniste.
Définition 4.2.4.1. Soit une signature Σ. On définit la relation de déduction syntaxique
⊢NJ ⊆ List(Form(Σ)) × Form(Σ) par les mêmes règles que pour ⊢, à l’exception de ⊥c que
l’on remplace par la règle suivante :

Γ ⊢NJ ⊥

Γ ⊢NJ A i
68 Chapitre 4. Théorie des ensembles ordonnés

appelée communément principe d’explosion, ou bien par sa dénomination latine ex falso


quodlibet (version raccourcie de ex falso sequitur quodlibet).
Exercice 4.2.4.2. Soit la règle
EDN
Γ ⊢ A ∨ ¬A
Montrer que celle-ci est équivalente à ⊥c modulo ⊢NJ , c’est-à-dire que si l’on considère ⊢NJ
et qu’on rajoute l’une des deux règles, alors la seconde est dérivable.
Exercice 4.2.4.3. Vérifier que dans le cas intuitionniste aussi, la relation ⊢NJ est une
relation de pré-ordre. On notera Li (Σ) l’algèbre de Lindenbaum-Tarski intuitionniste
associée à Σ.
Exercice 4.2.4.4. Montrer que Li (Σ) est un treillis distributif.
On peut alors se demander quelle est la différence entre ce que nous pouvons prouver
en logique intuitionniste et ce que nous pouvons prouver en logique classique. La réponse
est difficile à donner directement, mais un point important est que ce que l’on peut prouver
en logique intuitionniste est constructif : par exemple, prouver qu’un objet existe signifie
qu’on a effectivement exhibé un objet. En comparaison, on peut prouver grâce à l’absurde
qu’un objet existe en prouvant simplement qu’il ne peut pas ne pas exister.
Une conséquence de cet effet est que certaines tautologies ne sont plus valides, en
particulier la tautologie
¬(∀x, ¬A) =⇒ ∃x, A
exprimant qu’à partir de l’impossibilité que tous les x rejettent A, on peut extraire un
certain x acceptant A.
De même pour la tautologie

¬(A ∧ B) =⇒ ¬A ∨ ¬B

car pour la prouver, il faudrait de façon uniforme décider si ¬A est vraie ou si ¬B est
vraie. Comme cela dépend directement que la valeur de vérité de A et de celle de B, il est
impossible de conclure en logique intuitionniste. En échange, si l’on prouve ⊢NJ A ∨ B, cela
signifie qu’on peut soit prouver ⊢NJ A, soit prouver ⊢NJ B.
La question, maintenant, est de savoir s’il existe une structure similaire aux algèbre de
Boole, mais dans laquelle la logique appliquée est la logique intuitionniste. C’est le cas des
algèbres de Heyting, dont la définition repose avant tout sur celle de l’opération →, d’où
l’on dérive le sens de ¬ par ¬x = x → ⊥, comme nous l’avons déjà fait.
Définition 4.2.4.5 (Pseudo-complément relatif). Soit un treillis distributif (X, ≤), et
deux éléments a, b ∈ X. On dit que x est le pseudo-complément de a relatif à b si x est
le maximum de l’ensemble {x ∈ X | a ∧ x ≤ b}. Si le pseudo-complément de a relatif à b
existe, on le note a → b. On appelle pseudo-complément de a le pseudo complément de a
relatif à ⊥, s’il existe, et on le note alors ¬x.
Définition 4.2.4.6 (Algèbre de Heyting). Un treillis distributif (X, ≤) est une algèbre
de Heyting si tout élément admet un pseudo-complément relatif à tout autre élément,
c’est-à-dire si pour tous a, b ∈ X, l’ensemble {x ∈ X | a ∧ x ≤ b} admet un maximum.
Remarque 4.2.4.7. Une inégalité par rapport à un pseudo-complément peut se réécrire
par une conjonction : a ≤ b → c revient directement à a ∧ b ≤ c étant donné que b → c est
le maximum des éléments x tels que x ∧ b ≤ c. On peut donc formaliser le modus ponens :
si l’on a a ≤ b → c et a ≤ b, alors a ∧ b ≤ c et a ∧ b = a, donc a ≤ c.
4.2. Treillis 69

Exercice 4.2.4.8. Soit une signature Σ. Montrer que Li (Σ) est bien une algèbre de Heyting.

Exercice 4.2.4.9. Montrer qu’une algèbre de Boole est en particulier une algèbre de
Heyting, et que le complément d’un élément est en particulier son pseudo-complément.

4.2.5 Treillis complet


Notre première définition d’un treillis peut paraître légèrement plus artificelle que sa
caractérisation algébrique. En effet, dans la version algébrique, on peut voir un treillis comme
un certain bimonoïde, que l’on peut ensuite étendre en l’existence d’une borne supérieure
et d’une borne inférieure pour toute partie finie (en raisonnant juste par récurrence). A
l’inverse, lorsque l’on part de la définition de treillis comme ensemble ordonné possédant
toutes les bornes sur des parties finies, une question naît immédiatement : pourquoi ne pas
autoriser des parties infinies ? C’est pour intégrer cette possibilité que nous introduisons la
notion de treillis complet.

Définition 4.2.5.1 (Treillis complet). Un treillis complet est un ensemble ordonné


(X, ≤) tel que toute partie Y ⊆ X possède à la fois une borne supérieure et une borne
inférieure.

Un treillis complet est, par définition, plus fort qu’un treillis. Dans la pratique, on trouve
effectivement plusieurs treillis qui ne sont pas complets (le fait d’avoir deux notions n’est
donc pas une distinction simplement formelle mais revêt une vraie différence conceptuelle).
Remarquons aussi qu’un treillis complet peut se caractériser par l’existence d’une seule
borne.

Propriété 4.2.5.2. L’ensemble ordonné (X, ≤) est un treillis complet si et seulement si


toute partie possède une borne supérieure.

Démonstration. Un sens est évident. Pour l’autre, supposons que toute partie de X possède
une borne supérieure, et montrons alors qu’elle possède une borne inférieure.
Soit Y ⊆ X, on définit Y ↓ par

Y ↓≜ {x ∈ X | ∀y ∈ Y, x ≤ y}

et soit y0 la borne supérieure de Y ↓. Montrons que y0 est la borne inférieure de Y . Tout


d’abord, si y ∈ Y , alors par définition, y est un majorant de Y ↓, donc puisque y0 est le
plus petit majorant, y0 est un minorant de Y . De plus, si y est un minorant de Y , cela
signifie que y ∈ Y ↓, donc comme y0 est un majorant de Y ↓, on en déduit que y ≤ y0 . Ainsi
y0 est le plus grand minorant de Y : c’est la borne inférieure de Y .

On peut maintenant prouver l’un des théorèmes importants que nous avons présenté
dans le chapitre 1 : le théorème 1.2.1.3, mais dans une version bien plus forte et générale.

Théorème 4.2.5.3 (Knaster-Tarski [Tar55]). Soit (X, ≤) un treillis complet et f :


X → X une fonction croissante. Alors l’ensemble

fix(f ) ≜ {x ∈ X | f (x) = x}

est un treillis complet pour l’ordre induit par ≤.

Démonstration. On définit tout d’abord l’ensemble des pré points fixes de f :

prefix(f ) ≜ {x ∈ X | f (x) ≤ x}
70 Chapitre 4. Théorie des ensembles ordonnés

et on montre qu’il est un treillis complet pour ≤. Soit une partie Y ⊆ prefix(f ), montrons
que Y possède une borne inférieure. Nous prenons pour candidat de la borne inférieure de
V V
Y dans prefix(f ), la borne inférieure Y dans X : montrons donc que Y est bien un
pré point fixe de f (cela suffira à montrer qu’on a une borne inférieure, puisque la borne
inférieure dans Y est aussi la borne inférieure dans prefix(f ), à partir du moment où la
borne appartient effectivement à prefix(f )).
V  V 
Y ≤ Y . Pour cela, il nous suffit de montrer que f
V
On montre que f Y est
un minorant de Y , puisque l’on saitque Y est le plus grand minorant. Soit y ∈ Y , on
V

remarque que Y ≤ y, donc f Y ≤ f (y), mais comme par définition f (y) ≤ y et par
V V
V  V  V
transitivité, on en déduit que f Y ≤ y. Ainsi f Y ≤ Y.
On sait donc que toute partie de prefix(f ) admet une borne inférieure. Par la propriété
précédente (son dual, plus précisément), prefix(f ) est donc un treillis complet pour ≤.
On a donc un treillis complet (prefix(f ), ≤) et une fonction f : prefix(f ) → prefix(f ). En
prenant le dual, on obtient donc que postfix(prefix(f )) est un treillis complet.
Montrons maintenant que postfix(prefix(f )) = fix(f ). Par définition,

postfix(prefix(f )) = {x ∈ {x ∈ X | f (x) ≤ x} | x ≤ f (x)}

ce qui correspond exactement à l’ensemble {x ∈ X | (f (x) ≤ x) ∧ (x ≤ f (x))}. Comme ≤


est transitif, cet ensemble est fix(f ). Ainsi fix(f ) est un treillis complet.

Remarque 4.2.5.4. On en déduit donc, en particulier, qu’il existe un plus petit et un


plus grand point fixe pour f . En rentrant un peu plus en détail dans la démonstration, on
peut vérifier que le plus petit point fixe est le plus petit pré point fixe, et que le plus grand
point fixe est le plus grand post point fixe.

Exercice 4.2.5.5. Montrer que (P(X), ⊆) est un treillis complet, pour tout ensemble X.
En déduire le théorème 1.2.1.3.

Enfin, donnons deux mots à propos des algèbre de Heyting complètes. Donnons d’abord
la définition de cette structure :

Définition 4.2.5.6 (Algèbre de Heyting complète). Un ensemble ordonné (H, ≤)


est une algèbre de Heyting complète si (H, ≤) est un treillis complet et si toute paire
(a, b) ∈ H 2 possède un pseudo-complément relatif.

Un point important pour ces structure est que l’existence des pseudo-compléments
apporte une nouvelle loi de distributivité, infinie. En effet, étant donnée une algèbre de
Heyting complète H, une partie X ⊆ H et un élément y ∈ H, on a l’identité :
!
_ _
x ∧y = (x ∧ y)
x∈X x∈X

Cette identité permet de récupérer directement la distributivité, et fonctionne en fait aussi


dans le cas d’une algèbre de Heyting non complète (sous réserve d’existence des bornes
supérieures), ce qui fait qu’on peut affaiblir les définitions d’algèbre de Heyting en un
simple treillis contenant un pseudo-complément relatif. On peut trouver des détails sur les
liens entre ces propriétés dans [Grä11].
4.3. Filtres 71

4.3 Filtres
Enfin, présentons la notion de filtre, et la notion duale d’idéal. Nous allons détailler
comment se comportent les filtres dans les structure de plus en plus fortes : demi-treillis,
treillis et algèbre de Boole, puis nous verrons les ultrafiltres et le lemme de l’ultrafiltre.
Les filtres ont été introduits à l’origine par Henri Cartan dans [Bou71], dans un but
topologique (nous verrons dans le chapitre 5 que beaucoup d’outils topologiques peuvent
s’interpréter à travers la notion de filtre). Ces filtres étaient alors définis sur les parties d’un
ensemble, mais la présentation que nous en faisons ici est plus générale puisqu’elle part
d’un ensemble ordonné quelconque, en cherchant à ajouter avec parcimonie des hypothèses,
jusqu’à arriver à des filtres sur des algèbres de Boole.

4.3.1 Définitions et caractérisations


Commençons par définir ce qu’est un filtre.
Définition 4.3.1.1 (Filtre). Soit (X, ≤) un ensemble ordonné. Un filtre est une partie
F ⊆ X vérifiant :
• F est non vide : F ̸= ∅.
• F est clos par le haut : pour tout x ∈ F et y ∈ X, si x ≤ y alors y ∈ F.
• tous les éléments de F sont compatibles vers le bas : pour tous x, y ∈ F, il existe
z ∈ F tel que z ≤ x et z ≤ y.
Un filtre F est dit propre si F ̸= X.
Un filtre peut donc être vu comme une description d’une notion de grandeur : un
élément d’un filtre est vu comme un « grand » élément. En plus de cela, cette notion de
grandeur doit avoir une notion de compatibilité : deux grands éléments doivent avoir en
commun un grand élément. La notion duale, qui peut donc être vue comme la spécification
d’une notion de petitesse, est celle d’idéal.
Définition 4.3.1.2 (Idéal). Soit (X, ≤) un ensemble ordonné. Un idéal est une partie
I ⊆ X vérifiant :
• I est non vide : I =
̸ ∅.
• I est clos par le bas : pour tout x ∈ I et y ∈ X, si y ≤ x alors y ∈ I.
• tous les éléments de I sont compatibles vers le haut : pour tous x, y ∈ I, il existe
z ∈ I tel que x ≤ z et y ≤ z.
Un idéal I est dit propre si I =
̸ X.
Définition 4.3.1.3. Soit une algèbre de Boole (B, ≤). Montrer qu’une partie I ⊆ B est
un idéal de B si et seulement si c’est un idéal au sens algébrique de l’anneau associé
(B, ⊥, ⊤, ⊕, ∧).
Nous ne travaillerons par sur les idéaux, mais donnons la définition car celle-ci reste
importante.

Exemple. Soit un ensemble X et un élément x ∈ X. On peut définir le filtre principal sur


P(X) en x, Fx , par
Fx ≜ {A ⊆ X | x ∈ A}
On voit que X ∈ Fx , que si A ⊆ B et x ∈ A alors x ∈ B, et que si x ∈ A et x ∈ B
alors x ∈ A ∩ B. Ainsi l’ensemble ordonné P(X) contient au moins autant de filtres que
d’éléments dans X.
72 Chapitre 4. Théorie des ensembles ordonnés

On peut donner une première caractérisation des filtres, dans le cas d’un inf demi-treillis.

Propriété 4.3.1.4. Soit (X, ≤) un inf demi-treillis de majorant ⊤ et de borne inf ∧. Alors
F ⊆ X est un filtre sur X si et seulement si les conditions suivantes sont vérifiées :
• ⊤ ∈ X.
• F est clos par le haut.
• si x, y ∈ F, alors x ∧ y ∈ F.

Démonstration. Supposons que F vérifie les propriétés listées. Le fait d’être clos par le haut
est par définition. Comme ⊤ ∈ F, F est non vide. Si x, y ∈ F, alors il existe effectivement
z ∈ F tel que z ≤ x et z ≤ y, en prenant z = x ∧ y.
Réciproquement, supposons que F est un filtre. Alors, puisqu’il possède un élément,
disons x, et que x ≤ ⊤, on en déduit par clôture par le haut que ⊤ ∈ F. Le fait que F est
clos par le haut est par hypothèse. Soient x, y ∈ F, alors par hypothèse il existe z ∈ F tel
que z ≤ x et z ≤ y. Par définition de la borne supérieure, on a donc que z ≤ x ∧ y, et par
clôture par le haut on en déduit que x ∧ y ∈ F.

Les inf demi-treillis permettent donc de mieux caractériser les treillis. En quelque sorte,
puisqu’ils permettent de délimiter le fait de devenir plus petit, il est plus aisé d’y définir ce
qui est grand (c’est-à-dire ce qui arrive à rester grand quand on le rend plus petit). Les
sup demi-treillis, eux, ne permettent pas de mieux définir un treillis, mais permettent de
décrire ses propriétés.

Propriété 4.3.1.5. Soit (X, ≤) un sup demi-treillis et F ⊆ X un filtre. Alors F est propre
si et seulement si ⊥ ∈
/ F.

Démonstration. Puisque F est clos par le haut, si ⊥ ∈ F alors tout élément est dans F,
donc F n’est pas propre (et si F n’est pas propre, alors il contient ⊥).

Les sup demi-treillis permettent de définir la propriété d’être premier :

Définition 4.3.1.6 (Filtre premier). Soit (X, ≤) un sup demi-treillis et F un filtre sur
X. On dit que F est premier s’il est propre et si pour tous x, y ∈ X, si x ∨ y ∈ F alors
x ∈ F ou y ∈ F .

On peut voir une analogie ici avec un idéal dans un anneau : un idéal premier est un
idéal tel que, lorsqu’on a un produit a × b dedans, celui-ci doit nécessairement provenir
du produit par un élément de l’idéal. De la même façon, ici, on sait naturellement que si
x ∈ F alors x ∨ y ∈ F, et la notion de primalité signifie que tout élément de la forme x ∨ y
doit provenir d’un cas de ce type, où x (ou y) était déjà dans F.
Pour synthétiser les différentes propriétés dans le cas d’un treillis : les filtres propres
(qui sont les filtres intéressants) sont les parties closes par le haut qui possèdent ⊤ mais
pas ⊥, et qui sont closes par intersection finie.
Supposons maintenant qu’on possède une partie X (non vide) qui n’est pas un filtre.
Comment trouver un filtre correspondant naturellement à X ? Premièrement, il nous faut
d’abord clore X par le haut : on prend l’ensemble des éléments supérieurs à au moins
un élément de X. Il nous faut aussi nous assurer que pour tout x, y dans notre filtre, un
élément inférieur à x et y soit dans le filtre. Le plus simple ici est de considérer un inf
demi-treillis : on veut ajouter tous les x ∧ y, mais comme il est possible d’itérer ces bornes
inférieures, il nous faut ajouter tous les F pour F ⊆fin X. On obtient ainsi la construction
V

suivante :
4.3. Filtres 73

Définition 4.3.1.7 (Filtre engendré par une partie). Soit (X, ≤) un inf demi-treillis
et Y ⊆ X une partie de X. On définit alors
F ^
Y ≜ {x ∈ X | ∃F ⊆fin Y, F ≤ x}
Proposition 4.3.1.8. Soit (X, ≤) un inf demi-treillis et Y ⊆ X une partie de X. Alors
F
Y est un filtre sur X.
F
Démonstration. Tout d’abord, on remarque que ⊤ = ∅F et ∅ ⊆fin Y , donc Y est non
F
vide. Soit x ∈ Y et y ∈ X tel que x ≤ y. On trouve F ⊆fin Y tel que F ≤ x, alors
V
F F
F ≤ y par transitivité, donc y ∈ F . Soient x et y des éléments de Y , on trouve F et
V

F ′ des parties finies de Y telles que F ≤ x et F ′ ≤ y. Alors


V V

! !

^ ^ ^
(F ∪ F ) = F ∧ F ≤x∧y

F F
donc x ∧ y ∈ Y . Ainsi Y est un filtre.
F
Remarque 4.3.1.9. Dans le cas où Y = ∅, Y = {⊤}.
Par défaut, le filtre engendré par une partie peut tout à fait contenir tous les éléments.
Prenons par exemple une algèbre de Boole X, un élément x et le filtre engendré par
{x, ¬x} : il est évident que ce filtre n’est pas propre. Cependant, il existe une propriété
assurant qu’un filtre engendré est propre, et qui est tout à fait naturelle : on veut que les
V
F soient tous différents de l’élément minimum. Évidemment, cette propriété n’a de sens
que dans le cas d’un treillis.
Définition 4.3.1.10 (Propriété de l’intersection finie). Soit (X, ≤) un treillis et
Y ⊆ X. On dit que Y a la propriété de l’intersection finie si
^
∀F ⊆fin Y, F ̸= ⊥
Proposition 4.3.1.11. Soit (X, ≤) un treillis et Y ⊆ X une partie non vide de X. Alors
F
Y est un filtre propre si et seulement si Y a la propriété de l’intersection finie.
F
Démonstration. Par définition, ⊥ ∈ Y si et seulement s’il existe F ⊆fin Y tel que F ≤ ⊥,
V

mais la condition que F ≤ ⊥ est équivalente à ce que F = ⊥, étant donné que l’autre
V V
F
inégalité est toujours vérifiée. Ainsi ⊥ ∈ Y si et seulement s’il existe F ⊆fin Y tel que
F
F = ⊥, donc Y est propre si et seulement si Y possède la propriété de l’intersection
V

finie.

Exercice 4.3.1.12. Soit Σ une signature. On considère T ⊆ Clos(Σ) une théorie. Montrer
que T est cohérente (c’est-à-dire que T ⊬ ⊥) si et seulement si T ′ , la projection de T dans
L(Σ), a la propriété de l’intersection finie.
Exercice 4.3.1.13. Soit Σ une signature. Soit T ⊆ Clos(Σ) une théorie. Montrer que la

projection de T dans L(Σ) est le filtre engendré par la projection de T dans L(Σ).
Exercice 4.3.1.14. On se place maintenant sur un ensemble X infini quelconque, et on
considère le filtre de Fréchet sur X :
FF ≜ {Y ⊆ X | X \ Y est fini}
Montrer que le filtre de Fréchet est bien un filtre. Montrer que pour tout x ∈ X, Fx ne
contient pas FF .
74 Chapitre 4. Théorie des ensembles ordonnés

4.3.2 Ultrafiltre
On définit maintenant la notion d’ultrafiltre, qui est la notion duale de celle d’idéal
maximal, souvent rencontrée en algèbre.
Définition 4.3.2.1 (Ultrafiltre). Soit (X, ≤) un ensemble ordonné. On dit qu’un filtre
F est un ultrafiltre s’il est un filtre propre maximal pour l’inclusion, c’est-à-dire si pour
tout autre filtre propre H de X, si F ⊆ H alors F = H.
Remarque 4.3.2.2. L’inclusion entre filtres est aussi appelée « finesse » : un filtre F est
dit plus fin qu’un filtre H si F ⊇ H. L’idée derrière cette appellation est qu’un filtre plus
gros va définir une notion de grandeur plus petite (puisque les éléments que l’on peut
ajouter à un filtre seront par définition plus petits). Un ultrafiltre est donc un filtre propre
le plus fin possible.
Dans le cas d’un treillis distributif, un ultrafiltre est en particulier premier.
Proposition 4.3.2.3. Soit (X, ≤) un treillis distributif. Si un filtre F est un ultrafiltre,
alors c’est un filtre premier.
Démonstration. Supposons que F est un ultrafiltre, montrons que c’est alors un filtre
premier. Supposons par l’absurde qu’il existe x, y ∈ X tels que x ∨ y ∈ F, x ∈
/ F et y ∈
/ F.
Montrons alors que soit F ∪ {x} soit F ∪ {y} a la propriété de l’intersection finie.
Supposons qu’on trouve F ⊆fin F tel que F ∧ x = ⊥ et qu’on trouve F ′ ⊆fin F tel
V

que F ∧ y = ⊥. En prenant G = F ∪ F ′ , on a donc


V ′

^ ^
G∧x=⊥ G∧y =⊥
 
G∧x ∨ G ∧ y = ⊥, et en développant par distributivité on obtient donc
V V
donc
! ! !
^ ^ ^ ^
G∨y ∧ G∨ G ∧ x∨ G ∧ (x ∨ y) = ⊥

comme G ∈ F, on en déduit que G ∨ y ∈ F et G ∨ x ∈ F, et par hypothèse x ∨ y ∈ F.


V V V

Ainsi, par stabilité de F par ∧, et grâce à l’égalité, on en déduit que ⊥ ∈ F, ce qui contredit
l’hypothèse que F est un ultrafiltre (donc propre).
On en déduit, sans perte de généralité, que F ∪ {x} a la propriété de l’intersection
F
finie, ce qui signifie que F ∪ {x} est un filtre, contenant par définition F : comme F est
supposé maximal, on en déduit que x ∈ F. Ainsi F est premier.

On a, de plus, une caractérisation encore meilleure dans le cas d’une algèbre de Boole.
Proposition 4.3.2.4. Soit (B, ≤) une algèbre de Boole et F un filtre. Les conditions
suivantes sont équivalentes :
(i) F est un ultrafiltre.
(ii) F est premier.
(iii) pour tout x ∈ B, x ∈ F ⇐⇒ ¬x ∈
/ F.
Démonstration. On va montrer le cycle d’implications (i) =⇒ (ii) =⇒ (iii) =⇒ (i)
dont on a déjà prouvé la première implication. Il nous reste à montrer les deux autres.
Si F est un filtre premier, alors comme ⊤ ∈ F et ⊤ = x ∨ ¬x, on sait que soit x soit
¬x est dans F. Comme par définition ⊥ ∈ / F et que x ∧ ¬x = ⊥, on en déduit qu’un seul
des deux est dans F, ce qui est le résultat qu’on veut démontrer.
4.3. Filtres 75

Si pour tout x ∈ B, x ∈ F ⇐⇒ ¬x ∈ / F et si H est tel que F ⊆ H et H est un filtre


propre, alors si l’inclusion est stricte, on trouve x un élément de H qui n’est pas dans F.
Mais par définition, puisque x ∈ / F, ¬x ∈ F, donc x ∈ H et par inclusion ¬x ∈ H, donc
⊥ ∈ H, ce qui contredit le fait que H est propre. On en déduit que H = F, et donc que F
est un ultrafiltre.

Exercice 4.3.2.5. Soit X un ensemble et x ∈ X. Montrer que Fx est un ultrafiltre dans


l’algèbre de Boole (P(X), ⊆).

Pour finir, nous allons démontrer le lemme de l’ultrafiltre, qui est une conséquence du
lemme de Zorn. Il dit que tout filtre propre peut être étendu en un ultrafiltre.

Théorème 4.3.2.6 (Lemme de l’ultrafiltre). Soit (X, ≤) un treillis. Soit F un filtre


sur X. Alors il existe un ultrafiltre U contenant F.

Démonstration. On définit l’ensemble ordonné

X ≜ {H ⊆ X | H est un filtre propre}

muni de l’inclusion ensembliste.


On veut appliquer le lemme de Zorn sur cet ensemble. Pour cela, on vérifie que X est
inductif. [
Soit {Fi }i∈I une chaîne d’éléments de X , montrons que F0 = Fi est un majorant de
i∈I
cette chaîne (si I ̸= ∅, car sinon n’importe quel élément est un majorant de la chaîne). Il
nous suffit pour cela de vérifier que F0 est bien un filtre propre :
• soit i ∈ I, comme ⊤ ∈ Fi , on en déduit que ⊤ ∈ F0 .
• soit x ∈ F0 et y ∈ X tel que x ≤ y. Par définition de F0 , on trouve i ∈ I tel que
x ∈ Fi , et comme Fi est un filtre on en déduit que y ∈ Fi , d’où y ∈ F0 .
• soient x, y ∈ F0 . On trouve i, j ∈ I tels que x ∈ Fi et y ∈ Fj . Comme {Fi } est une
chaîne pour l’inclusion, alors soit Fi ⊆ Fj , soit Fj ⊆ Fi . Sans perte de généralité, on
suppose donc que Fi ⊆ Fj , donc que x ∈ Fj . Comme Fj est un filtre, on en déduit
que x ∧ y ∈ Fj , donc que x ∧ y ∈ F0 .
• supposons que ⊥ ∈ F0 . Alors on trouve i ∈ I tel que ⊥ ∈ Fi , mais comme tous les
Fi sont supposés propres, ⊥ ∈
/ Fi . Par contradiction, on en déduit que F0 est propre.
On applique donc le théorème 4.1.3.12 : on trouve un élément maximal U de X qui est
supérieur à F, c’est-à-dire qui contient F. Il ne nous reste qu’à vérifier que U est bien un
ultrafiltre : si G est un filtre propre contenant U, alors il contient F, donc il appartient
à X . Par maximalité de U dans X , on en déduit que U = G : U est un ultrafiltre sur X
contenant F.

On peut maintenant montrer le théorème 3.3.2.10 :

Démonstration. Soit une signature Σ et une théorie T sur Σ supposée cohérente, donc telle
que pour toute partie finie Γ ⊆fin T , Γ ⊬ ⊥. On redonne l’algèbre de Lindenbaum-Tarski :
V

L(Σ) ≜ Form(Σ)/ ⊣⊢

(comme on prouve ce théorème avant le théorème de complétude, on montre bien la


proposition pour la relation ⊢ et non la relation ⊨).
76 Chapitre 4. Théorie des ensembles ordonnés

La théorie T induit sur L(Σ) une partie vérifiant la propriété d’intersection finie, et la
théorie

T ≜ {φ | T ⊢ φ}
est ainsi un filtre propre : on peut donc grâce au théorème 4.3.2.6 trouver un ultrafiltre S

contenant T .
Soit alors la théorie T ′ = S, qui contient donc toutes les formules appartenant à
S

une classe d’équivalence de S. On remarque que T ′ est close par ⊢, donc puisque ⊥ ∈ / S,
cela signifie que ⊥ ∈ / T ′ . Il nous reste à vérifier que T ′ est complète : pour toute formule
φ, on sait que φ ∨ ¬φ ∈ T ′ , donc φ ∨ ¬φ ∈ S, mais comme S est un ultrafiltre, il est en
particulier premier. On en déduit que soit φ ∈ S, soit ¬φ ∈ S : dans le premier cas, φ ∈ T ′
et dans le deuxième cas, ¬φ ∈ T ′ . Ainsi pour toute formule φ, soit φ ∈ T ′ soit ¬φ ∈ T ′ .
Donc il existe une théorie complète T ′ qui contient la théorie T .

On peut de plus étendre le filtre de Fréchet sur un ensemble en un ultrafiltre.

Proposition 4.3.2.7. Soit X un ensemble infini. Alors il existe un ultrafiltre U sur P(X)
qui est différent de tous les Fx . On appelle un ultrafiltre qui n’est pas principal un ultrafiltre
libre.

Démonstration. On sait que le filtre de Fréchet sur X n’est inclus dans aucun des ultrafiltres
Fx , et d’après le lemme de l’ultrafiltre on peut trouver un ultrafiltre U qui contient le filtre
de Fréchet. Si U = Fx pour un certain x ∈ X, alors le filtre de Fréchet serait inclus dans
ce Fx , donc U n’est pas principal.

4.3.3 Filtre et morphisme


On définit en algèbre la notion de noyau d’une fonction comme l’ensemble des éléments
envoyés sur 0. Les filtres, eux, peuvent être vus comme le complémentaire d’un tel noyau :
dans le cas d’une algèbre de Boole, c’est même littéralement le cas puisqu’un idéal sur une
algèbre de Boole est le noyau d’un morphisme d’anneau.
Nous allons donc voir comment des morphismes sur les différents treillis permettent de
définir de nouveaux filtres.

Définition 4.3.3.1 (Rétrotirette d’un filtre). Soient (X, ≤), (Y, ≤) deux inf demi-
treillis, F un filtre sur Y et f : X → Y une fonction croissante. On définit la rétrotirette
de F par f comme :
f ∗ F ≜ {x | f (x) ∈ F}

Propriété 4.3.3.2. Soit (X, ≤), (Y, ≤) deux inf demi-treillis, F un filtre sur Y et f un
morphisme d’inf demi-treillis, alors f ∗ F est un filtre sur X.

Démonstration. On vérifie les propriétés d’un filtre :


• comme f (⊤X ) = ⊤Y et ⊤Y ∈ F, on en déduit que ⊤X ∈ f ∗ F.
• si x ∈ f ∗ F et y ∈ X tel que x ≤ y, alors par on sait que f (x) ∈ F, donc par croissance
f (x) ≤ f (y) et, par clôture par le haut de F, f (y) ∈ F, donc y ∈ f ∗ F.
• si x ∈ f ∗ F et y ∈ f ∗ F, alors f (x) ∈ F et f (y) ∈ F, donc f (x) ∧ f (y) ∈ F et comme
f est un morphisme, f (x ∧ y) ∈ F. Donc x ∧ y ∈ f ∗ F.

Dans le cas d’un treillis, on peut aussi caractériser un filtre propre grâce à l’existence
de ⊥.
4.3. Filtres 77

Propriété 4.3.3.3. Soient (X, ≤) et (Y, ≤) deux treillis, F un filtre propre sur Y et
f : X → Y un morphisme de treillis. Alors f ∗ F est lui-même un filtre propre.

Démonstration. Nous avons déjà vérifié que f ∗ F est un filtre. Il nous reste à montrer que
celui-ci est propre. Mais comme on sait que f (⊥X ) = ⊥Y et que ⊥Y ∈ / F, on en déduit
que ⊥X ∈ ∗ ∗
/ f F, donc f F est propre.

Un morphisme de treillis préserve aussi le fait d’être premier.

Propriété 4.3.3.4. Soient (X, ≤) et (Y, ≤) deux treillis, F un filtre premier sur Y et
f : X → Y un morphisme de treillis. Alors f ∗ F est un filtre premier.

Démonstration. Là encore, il nous suffit de montrer le caractère premier de f ∗ F. Soient


x, y ∈ X tels que x ∨ y ∈ f ∗ F, donc par définition f (x ∨ y) ∈ F, mais comme F est premier
et que f (x ∨ y) = f (x) ∨ f (y), on en déduit que f (x) ∈ F ou f (y) ∈ F, c’est-à-dire que
x ∈ f ∗ F ou que y ∈ f ∗ F. Donc f ∗ F est premier.

Une conséquence directe est que si F est un filtre premier et que X est une algèbre de
Boole, f ∗ F est un ultrafiltre sur X.
D’un point de vue plus algébrique, si f : B → B ′ est un morphisme entre algèbres
de Boole, alors le quotient de B par ker(f ) nous donne encore une algèbre de Boole (en
tant que quotient d’anneau), mais une propriété importante sur les anneaux est que le
quotient par un idéal maximal donne un corps. Dans le cas de nos algèbres de Boole, le
seul corps possible est Z/2Z, ce qui signifie qu’un ultrafiltre correspond exactement au
complémentaire du noyau d’un morphisme d’algèbre de Boole vers Z/2Z.

Proposition 4.3.3.5. Soit (B, ≤) une algèbre de Boole. Alors on a une bijection entre
Hom(B, Z/2Z), l’ensemble des morphismes de B vers Z/2Z, et l’ensemble Spec(B) des
ultrafiltres sur B.

Démonstration. Soit U un ultrafiltre, on lui associe la fonction

χU : B −→ {⊥, ⊤}
(
⊤ si x ∈ U
x 7−→
⊥ si x ∈
/U

Vérifions qu’on a bien un morphisme de treillis :


• comme ⊤ ∈ U, χU (⊤) = ⊤, de même χU (⊥) = ⊥.
• pour montrer que χU (x ∧ y) = χU (x) ∧ χU (y), il suffit de montrer que

x ∧ y ∈ U ⇐⇒ x ∈ U et y ∈ U

Si x ∈ U et y ∈ U, alors par compatibilité x ∧ y ∈ U. Si x ∧ y ∈ U, alors par clôture


par le haut x ∈ U et y ∈ U.
• pour montrer que χU (x ∨ y) = χU (x) ∨ χU (y), il suffit de montrer que

x ∨ y ∈ U ⇐⇒ x ∈ U ou y ∈ U

Si x ∈ U (respectivement y ∈ U) alors comme x ≤ x ∨ y (respectivement y ≤ x ∨ y)


et par clôture par le haut, x ∨ y ∈ U. Si x ∨ y ∈ U, alors comme un ultrafiltre est
premier, on en déduit que soit x ∈ U, soit y ∈ U.
78 Chapitre 4. Théorie des ensembles ordonnés

Dans l’autre sens, étant donné un morphisme f : B → {⊥, ⊤}, on lui associe

Uf ≜ {x ∈ B | f (x) = ⊤}

On vérifie que Uf est un ultrafiltre :


• comme f (⊤B ) = ⊤, ⊤ ∈ Uf .
• si x ≤ y et f (x) = ⊤ alors f (y) ≥ ⊤ donc f (y) = ⊤.
• si f (x) = ⊤ et f (y) = ⊤ alors f (x)∧f (y) = ⊤∧⊤ = ⊤, et comme f (x)∧f (y) = f (x∧y)
on en déduit que x ∧ y ∈ Uf .
• f (⊥B ) = ⊥ =
̸ ⊤ donc f (⊥B ) ∈
/ Uf .
• si x ∨ y ∈ Uf alors f (x) ∨ f (y) = ⊤. Si f (x) = ⊥ et f (y) = ⊥ alors f (x) ∨ f (y) ̸= ⊤,
donc par l’absurde on en déduit que x ∈ Uf ou y ∈ Uf .
On vérifie aisément que U 7→ χU et f 7→ Uf sont des fonctions réciproques l’une de
l’autre. On a donc notre bijection.

Exercice 4.3.3.6. Soient X, Y deux ensembles et f : X → Y une fonction. On définit la


fonction
f −1 : P(Y ) −→ P(X)
A 7−→ {x ∈ X | f (x) ∈ A}
Montrer que cette fonction est un morphisme d’algèbre de Boole.

Notation 4.3.3.7. Pour une fonction f : X → Y entre deux ensembles et un filtre F sur
P(X), on notera f F la rétrotirette de F par f −1 . On n’a pas d’ambiguïté car, par défaut,
f n’est pas un morphisme d’algèbre de Boole entre les ensembles de parties.
Donnons une description rapide de f F :

f F = {A ⊆ Y | f −1 (A) ∈ F}
Chapitre 5
Introduction à la topologie

Table des sous-matières


5.1 Topologie générale et filtres . . . . . . . . . . . . . . . . . . . . . 80
5.1.1 Définitions de topologie générale . . . . . . . . . . . . . . . . . . 80
5.1.2 Filtres, limites, séparation . . . . . . . . . . . . . . . . . . . . . . 83
5.1.3 Valeur d’adhérence, compacité . . . . . . . . . . . . . . . . . . . 85
5.1.4 Topologie induite et topologie produit . . . . . . . . . . . . . . . 88
5.2 Dualité de Stone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.1 Ouverts-fermés et espace de Stone . . . . . . . . . . . . . . . . . 92
5.2.2 Spectre d’une algèbre de Boole . . . . . . . . . . . . . . . . . . . 93
5.2.3 Dualité de Stone . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3 Topologie métrique . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.1 Espace métrique . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.2 Caractérisations séquentielles . . . . . . . . . . . . . . . . . . . . 99
5.3.3 Complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

n principe particulièrement fréquent, en mathématiques, est de se ramener à de la


U topologie. En algèbre, en analyse ou en géométrie, on peut décrire nos problèmes par
de la topologie. En logique, des liens existent aussi avec la topologie, et nous avons donc
besoin de bases en topologie pour les explorer.
Cependant, cet ouvrage n’est pas un cours de topologie : nous n’allons donc pas entrer
dans les détails de ce domaine. Nous conseillons donc au lecteur étranger à la topologie
de chercher un cours plus complet. Nous allons par exemple considérer en premier lieu la
topologie générale et les constructions à partir de filtres, pour ensuite traiter le cas des
espaces métriques.
Nous aurons trois objectifs principaux. Le premier est de définir un fragment suffi-
samment large de la topologie générale pour prouver le théorème de Tychonov grâce aux
ultrafiltres. Le deuxième, qui peut être vu comme la suite du premier, est de montrer le
théorème de dualité de Stone (dans une version n’utilisant pas le vocabulaire catégorique),
qui permet de donner une lecture topologique du chapitre 4. Le troisième nous fera quitter
le monde de la topologie générale, pour préparer le terrain pour la théorie descriptive des
ensembles, en définissant les notions élémentaires de topologie métrique.

79
80 Chapitre 5. Topologie

5.1 Topologie générale et filtres


Pour commencer, donnons une présentation générique de la topologie : nous étudions
des espaces topologiques, que l’ont peut décrire comme des ensembles (dont les éléments
sont en général appelés « points ») muni d’une notion de proximité. La notion la plus
générale de proximité peut être donnée au choix par les ouverts, les fermés ou les voisinages,
mais la convention est de définir une topologie par ses ouverts. Donnons donc ces définitions
et les objets les plus élémentaires qui y sont liés.

5.1.1 Définitions de topologie générale


La définition de topologie par les ouverts peut sembler ad hoc, nous allons donc essayer
de la motiver. L’objectif d’une topologie est de définir quels éléments sont proches et quels
éléments sont éloignés les uns des autres. Si la notion naturelle pour décrire cela est celle
de distance, on peut se demander si celle-ci est importante pour une étude topologique. En
effet, le point important de la topologie est de pouvoir décrire ce qui est plus ou moins
local, c’est-à-dire ce qui arrive suffisamment proche, et non proche de façon absolue.
L’idée d’un ouvert dans une topologie est alors de donner une mesure fixée de proximité :
deux points sont proches s’ils appartiennent à un ouvert, et ils sont d’autant plus proches
qu’ils le restent pour des ouverts pris de plus en plus petits. Ainsi un phénomène local est
un phénomène qui survient dans un certain ouvert.
On voit déjà pourquoi la notion de filtre sera intéressante : on veut qu’une description
soit de plus en plus précise à mesure qu’on affine nos ouverts, ce qui se rapproche du fait
qu’on puisse affiner des filtres.
Donnons la définition formelle d’une topologie grâce à ses ouverts.

Définition 5.1.1.1 (Espace topologique). On appelle espace topologique une paire


(X, ΩX ) où ΩX ⊆ P(X) est une partie vérifiant :
• ΩX est stable par intersection finie : si F ⊆fin ΩX alors F ∈ ΩX .
T

• ΩX est stable par union quelconque : si Y ⊆ ΩX alors Y ∈ ΩX .


S

En particulier, X ∈ ΩX et ∅ ∈ ΩX . On appelle ouvert de X un élément U ∈ ΩX .

Si un ouvert représente une mesure de localité, le complémentaire d’un ouvert a un


autre sens : il est une partie stable, mais nous en aurons une compréhension plus précise
plus tard. Ces parties, complémentaires d’ouverts, sont appelées les fermés.

Définition 5.1.1.2 (Fermé). Soit (X, ΩX ) un espace topologique. On appelle fermé de


X une partie F ⊆ X telle que X \ F ∈ ΩX .

Remarque 5.1.1.3. La structure ordonnée (ΩX , ⊆) est en fait une algèbre de Heyting
complète. Remarquons que la borne inférieure d’une partie Y ⊆ ΩX n’est pas forcément
T
l’intersection : elle est le plus grand ouvert contenu dans Y .
On peut établir une version plus générale de la topologie en étudiant les algèbres de
Heyting complètes, c’est ce que l’on appelle la topologie sans points (pointfree topology ou
pointless topology).

On voit que décrire une topologie par ses ouverts ou par ses fermés est équivalent,
puisqu’on peut retrouver l’un à partir de l’autre par l’opération T 7→ {X \ T | T ∈ T }.
Voyons enfin l’autre façon possible de décrire une topologie : par les voisinages.
5.1. Topologie générale et filtres 81

Définition 5.1.1.4 (Voisinage). Soit (X, ΩX ) un espace topologique et x ∈ X. On


appelle ensemble des voisinages de x l’ensemble des parties de X contenant un ouvert
contenant x :
Vx ≜ {V ⊆ X | ∃U ∈ ΩX , x ∈ U ∧ U ⊆ V }
L’ensemble des voisinages d’un point est, en particulier, un filtre.
Propriété 5.1.1.5. Soit (X, ΩX ) un espace topologique, alors pour tout x ∈ X, l’ensemble
Vx est un filtre propre sur (P(X), ⊆).
Démonstration. Il nous suffit de vérifier les hypothèses d’un filtre propre :
• puisque X ∈ ΩX et x ∈ X, X ∈ Vx .
• si V ∈ Vx et W est tel que V ⊆ W , alors on trouve U ∈ ΩX tel que x ∈ U ⊆ V , et
par transitivité de l’inclusion, x ∈ U ⊆ W , donc W ∈ Vx .
• si V ∈ Vx et W ∈ Vx alors on trouve U et U ′ des ouverts tels que x ∈ U ⊆ V
et x ∈ U ′ ⊆ W . Comme ΩX est stable par intersection finie, U ∩ U ′ ⊆ W donc
x ∈ U ∩ U ′ ⊆ V ∩ W , donc V ∩ W ∈ Vx .
• l’ensemble ∅ ne contient pas x, donc ∅ ∈
/ Vx .
Ainsi Vx est un filtre propre de P(X).

On peut donc définir la notion de voisinage à partir des ouverts. Réciproquement, il est
possible de retrouver l’ensemble des ouverts à partir des voisinages.
Proposition 5.1.1.6. Soit (X, ΩX ) un espace topologique. Alors U ∈ ΩX si et seulement
si pour tout x ∈ U , U ∈ Vx .
Démonstration. Si U ∈ ΩX , il est évident que pour tout x ∈ U il existe un ouvert (U
lui-même) inclus dans U et contenant x. Réciproquement, supposons que U est un voisinage
de tous ses points. Alors pour tout x ∈ U , on trouve
[ un ouvert Ux ⊆ U contenant x. Comme
les ouverts sont stables par union quelconque, Ux est encore un ouvert. Mais comme
x∈U
Ux ⊆ U , on en déduit que Ux ⊆ U , et comme pour tout x ∈ U, x ∈ Ux , on en déduit que
S

U ⊆ Ux . Il en vient que U est un ouvert en tant qu’union d’ouverts.


S

Remarque 5.1.1.7. Dans cette preuve comme dans d’autres qui suivront, nous utilisons
l’axiome du choix pour, à partir du fait que pour tout x il existe un ouvert Ux ayant une
propriété souhaitée, en extraire une fonction x 7→ Ux .
Pour définir plus facilement une topologie, il nous faut parler de la notion de base
d’une topologie. Par défaut, une famille T ⊆ P(X) n’a pas de raison d’être une topologie,
puisqu’il faut des propriétés de clôture à notre famille. Cependant, la clôture par union
quelconque peut s’obtenir en considérant directement les unions d’éléments de la famille. Il
nous reste à traiter le cas des intersections finies, mais on préfère exiger directement des
famille de parties d’être stables par intersection finie.
Définition 5.1.1.8 (Base d’une topologie, topologie engendrée). Soit un ensemble
X. On dit qu’une partie B ⊆ P(X) est une base de topologie si elle contient
[ X et si, pour
toutes parties U, V ∈ B, il existe une famille A ⊆ B telle que U ∩ V = A.
Si B ⊆ P(X) est une base de topologie, alors on appelle topologie engendrée par B, que
l’on note ΩB , l’ensemble ( )
[
ΩB ≜ B F ⊆B
B∈F
82 Chapitre 5. Topologie

Exercice 5.1.1.9. Montrer que ΩB est bien une topologie.

Remarque 5.1.1.10. Si la famille B est stable par intersections finies, alors c’est une base
de topologie puisque dans ce cas U ∩ V = {U ∩ V }.
S

Exemple. Donnons des exemples de topologies :


• on dispose sur tout ensemble X de la topologie discrète donnée par P(X) tout entier.
• on dispose sur tout ensemble X de la topologie grossière donnée par {∅, X}.
• sur R, on dispose de la topologie engendrée par les intervalles ouverts, c’est-à-dire de
la forme {x ∈ R | a < x < b} où a, b ∈ R ∪ {−∞, +∞}. C’est la topologie naturelle
que l’on utilise sur R.
• plus généralement, sur un ensemble ordonné (X, ≤), on peut définir la topologie
de l’ordre comme la topologie engendrée par les intervalles ouverts, de la forme
{x ∈ X | a < x < b} pour a, b ∈ X ∪ {−∞, +∞}. Remarquons que par exemple sur
N, la topologie de l’ordre coïncide avec la topologie discrète.

Nous verrons plus tard une famille d’espaces topologiques, les espace métriques.
Étant donnée une partie Y ⊆ X, qui n’est ni un ouvert ni un fermé, disons par
exemple {x ∈ R | 1 ≤ x < 2}, peut-on lui associer un ouvert (respectivement un fermé)
naturellement ? La réponse est oui, en considérant l’intérieur (respectivement l’adhérence).

Définition 5.1.1.11 (Intérieur). Soit (X, ΩX ) un espace topologique et Y ⊆ X. On



appelle intérieur de Y , que l’on note Y , le plus grand ouvert contenu dans Y .

Définition 5.1.1.12 (Adhérence). Soit (X, ΩX ) un espace topologique et Y ⊆ X. On


c
appelle adhérence de X, que l’on note Y , le plus petit fermé contenant Y .

Exercice 5.1.1.13. On considère R muni de la topologie décrite plus haut. Montrer que
◦ c
Q = ∅ et que Q = R.

On peut aussi définir la notion de point intérieur et de point adhérent, correspondant


naturellement au fait d’appartenir à l’intérieur (respectivement à l’adhérence), mais sous
une forme plus intuitive.

Définition 5.1.1.14 (Point intérieur). Soit (X, ΩX ) un espace topologique et Y ⊆ X.


On dit qu’un point x est intérieur à Y si Y ∈ Vx .

Définition 5.1.1.15 (Point adhérent). Soit (X, ΩX ) un espace topologique et Y ⊆ X.


On dit qu’un point x est adhérent à Y si pour tout ouvert U contenant x, U ∩ Y ̸= ∅.

Exercice 5.1.1.16. Montrer qu’un point est intérieur à une partie si et seulement s’il est
dans son intérieur.

Exercice 5.1.1.17. Montrer qu’un point est adhérent à une partie si et seulement s’il est
dans l’adhérence de cette partie.

Enfin, définissons la notion de continuité. On la présente pour l’instant comme une


simple notion de morphisme associée à notre structure d’espace topologique. Nous en
verrons une interprétation grâce aux filtres.

Définition 5.1.1.18 (Fonction continue). Soient (X, ΩX ) et (Y, ΩY ) deux espaces


topologiques. Une fonction f : X → Y est dite continue si pour tout U ∈ ΩY , l’ensemble
f −1 (U ) est un ouvert de X.
5.1. Topologie générale et filtres 83

Remarque 5.1.1.19. Si l’on considère un espace topologique comme l’algèbre de Heyting


complète de son ensemble d’ouverts, alors la définition que nous venons de donner signifie
que f induit grâce à f −1 un morphisme d’algèbres de Heyting complètes. Cependant, il est
important de voir que là où f : X → Y , f −1 : P(Y ) → P(X), on a donc une inversion du
sens entre le point de vue algébrique par un ensemble ordonné et le point de vue analytique
comme un ensemble de points muni d’une topologie.

La notion duale, en quelque sorte, de fonction continue, est celle de fonction ouverte.
Celle-ci est largement moins utile, mais nous servira parfois.

Définition 5.1.1.20 (Fonction ouverte). Soient (X, ΩX ) et (Y, ΩY ) deux espaces topo-
logiques. Une fonction f : X → Y est dite ouverte si pour tout U ∈ ΩX , l’ensemble f (U )
est un ouvert de Y .

On définit alors la notion d’isomorphisme, dans le cas des espaces topologiques, comme
une fonction continue admettant un inverse continu.

Définition 5.1.1.21 (Homéomorphisme). Soient (X, ΩX ) et (Y, ΩY ) deux espaces


topologiques, une fonction f : X → Y est appelée un homéomorphisme entre X et Y s’il
existe une fonction continue g : Y → X telle que g ◦ f = idX et f ◦ g = idY .

Exercice 5.1.1.22. Montrer qu’une fonction est un homéomorphisme si et seulement si


elle est une bijection continue dont la réciproque (en tant que fonction ensembliste) est elle
aussi continue.

Exercice 5.1.1.23. Montrer qu’une fonction est un homéomorphisme si et seulement si


elle est une bijection continue et ouverte.

5.1.2 Filtres, limites, séparation


On aborde en général la notion de limite de façon métrique. La définition la plus souvent
vue d’une limite est la suivante, pour une fonction f admettant une limite en a valant b :

∀ε > 0, ∃δ > 0, ∀x ∈ R, |x − a| < δ =⇒ |f (x) − b| < ε

Si nous étudions cette formule en essayant de traduire ce qu’elle énonce au niveau topolo-
gique, on peut commencer par remplacer les inégalités en valeur absolue par l’appartenance
à certains ouverts : au lieu de |f (x) − b| < ε, on peut dire que f (x) appartient à un ouvert,
qui est (b − ε, b + ε). De même, plutôt que de dire que |x − a| < δ, on peut dire que x
appartient à un certain ouvert.
Puisqu’on quantifie sur n’importe quel ε, on peut de la même façon considérer qu’on
quantifie sur tous les ouverts contenant b, sans perte de généralité sur les voisinages de b :
on voit alors apparaître un filtre. En effet, plutôt que de dire que f (x) est dans tel ouvert
autour de b, on peut dire que x est dans la préimage de l’ouvert par f . On trouve donc,
plutôt qu’une suite de quantificateurs quelconque, une considération de finesse. En fait, on
peut reformuler cette formule par la formule équivalente suivante :

f Va ⊇ Vb

c’est-à-dire que le filtre image de Va par f est plus fin que le filtre Vb .
Ainsi, la convergence est une notion particulièrement adaptée à une définition par les
filtres. On va donc pouvoir tout d’abord définir la convergence d’un filtre.
84 Chapitre 5. Topologie

Définition 5.1.2.1 (Convergence d’un filtre). Soit un espace topologique (X, ΩX ) et


un filtre F, on définit le fait que F converge vers a ∈ X par :

lim F = a ≜ F ⊇ Va

Le sens de cette définition est qu’un filtre converge vers a lorsque les parties qu’il décrit
permettent de se rapprocher autant que l’on veut de a.
On peut maintenant facilement définir ce que signifie la convergence pour une fonction
en un point.

Définition 5.1.2.2 (Convergence d’une fonction). Soient (X, ΩX ), (Y, ΩY ) deux es-
paces topologiques et f : X → Y . On dit que f converge vers b ∈ Y en a ∈ X (au sens des
filtres) si
F
lim f (x) = b ≜ f Va ⊇ Vb
x→a
\
Remarquons que comme tout voisinage de a contient a, il est nécessaire que f (a) ∈ Vb .
On a donc envie de dire que f (a) = b, mais on n’a pas de raison de dire a priori que les
filtres d’un voisinage ne contiennent qu’un élément dans leur intersection. Prenons par
exemple sur {a, b, c} la topologie ad hoc suivante :

{{a, b}, {c}, {a, b, c}, ∅}

Les deux éléments a et b ne peuvent pas être distingués.


Cela motive donc une nouvelle notion topologique : la séparation. Un axiome de
séparation est un axiome assurant que pour a ̸= b, on a bien Va ̸= Vb . De nombreux
axiomes de séparation existent, mais nous ne verrons que le plus classique, qu’on appelle
axiome de séparation T2 . Il est à la fois suffisamment puissant pour assurer un bon
comportement à nos espaces, et suffisamment faible pour être vérifié par de nombreux
espaces. La terminologie anglaise donne le nom Hausdorff aux espaces vérifiant l’axiome T2 ,
mais comme nous n’utiliserons que cet axiome de séparation, nous parlerons simplement
d’espace séparé.

Définition 5.1.2.3 (Espace séparé). Soit (X, ΩX ) un espace topologique. On dit que
cet espace est séparé si pour tous x, y ∈ X, il existe une paire (Ux , Uy ) ∈ (ΩX )2 telle que

x ∈ Ux


y∈U y

U ∩ U = ∅

x y

Montrons qu’on a alors l’unicité de la limite.

Proposition 5.1.2.4 (Unicité de la limite). Soit F un filtre propre sur un espace


(X, ΩX ) séparé, alors si F converge, il ne peut converger que vers un seul élément de X.

Démonstration. Supposons que a et b sont deux limites possibles de F. Par séparation, on


trouve Ua et Ub deux ouverts disjoints, contenant respectivement a et b. Comme Ua et Ub
sont des ouverts, on en déduit que Ua ∈ Va et Ub ∈ Vb . De plus, par convergence de F vers
a et b, on en déduit que Ua ∈ F et Ub ∈ F, donc Ua ∩ Ub ∈ F, c’est-à-dire ∅ ∈ F, ce qui
contredit le fait que F est un filtre propre.
5.1. Topologie générale et filtres 85

En particulier, si f converge en un point a et que son espace d’arrivée est un espace


séparé, alors on a unicité du point vers lequel f converge. Cela signifie aussi que si f
converge en un point a, ce point ne peut être que f (a), puisque celui-ci est le seul à
appartenir à f Va .
T

La notion de limite permet aussi de caractériser la continuité : une fonction est continue
quand la limite commute avec l’application par f .

Propriété 5.1.2.5. Soient deux espaces (X, ΩX ) et (Y, ΩY ) et une fonction f : X → Y .


Alors f est continue si et seulement si
F
∀x ∈ X, lim f (y) = f (x)
y→x

Démonstration. Soit x ∈ X. Tout d’abord, supposons que f est continue et montrons que
f Vx ⊇ Vf (x) .
Soit V ∈ Vf (x) et U un ouvert contenant f (x) contenu dans V (donné par la définition
du fait d’être un voisinage de f (x)). Comme f est continue, cela signifie que f −1 (U ) est
aussi un ouvert. Or f −1 (U ) ⊆ f −1 (V ) et x ∈ f −1 (U ) puisque f (x) ∈ U , donc f −1 (V ) ∈ Vx ,
ce qui signifie exactement que V ∈ f Vx , d’où l’inclusion.
Supposons maintenant que pour tout x ∈ X, f Vx ⊇ Vf (x) et montrons que f est
continue.
Soit U un ouvert de Y , montrons que f −1 (U ) est un ouvert de X. Pour cela, il nous
suffit de montrer que pour tout x ∈ f −1 (U ), f −1 (U ) est un voisinage de x. Soit donc
x ∈ f −1 (U ), on sait donc que f (x) ∈ U , donc U ∈ Vf (x) , d’où par inclusion U ∈ f Vx ,
c’est-à-dire f −1 (U ) ∈ Vx . Ainsi la préimage d’un ouvert est voisinage de tous ses points,
donc que c’est un ouvert : f est donc continue.

Exercice 5.1.2.6. On dit qu’une suite u : N → X converge lorsque le filtre image du


filtre de Fréchet sur N converge vers un certain élément x ∈ X. Montrer que cela revient à
vérifier la formule usuelle :

∃x ∈ X, ∀V ∈ Vx , ∃n ∈ N, ∀m ≥ n, um ∈ V

5.1.3 Valeur d’adhérence, compacité


La notion de séparation permet de s’assurer qu’au plus une limite est possible, pour
un filtre donné. Il est cependant possible qu’aucune limite n’existe : par exemple, si on
considère dans R le filtre des parties contenant {1, 2}, on ne peut trouver aucun filtre de
voisinage dont il est plus fin. Cependant, on voudrait pouvoir dire de ce filtre qu’il converge
partiellement vers 1 et vers 2, qui sont des limites plus faibles.
C’est cette notion de limite plus faible qui est donnée par la définition de valeur
d’adhérence. Une valeur d’adhérence d’un filtre est une valeur vers laquelle le filtre pourrait
converger, s’il était plus fin. Dans notre exemple précédent, le filtre pourrait converger si
l’on décidait de le rendre plus fin pour contenir {1} ou {2}.

Définition 5.1.3.1 (Valeur d’adhérence d’un filtre). Soit un espace topologique


(X, ΩX ) et un filtre propre F. On dit que x est une valeur d’adhérence de F s’il existe un
filtre propre H plus fin que F qui converge vers x.

Même si l’espace est séparé, un filtre peut avoir plusieurs valeurs d’adhérence. Cependant,
il est aussi possible qu’un filtre n’en possède aucune. Si on prend par exemple N avec
la topologie discrète, le filtre de Fréchet n’a pas de valeur d’adhérence, puisqu’un filtre
86 Chapitre 5. Topologie

de voisinage serait un ultrafiltre principal, et que nous avons déjà prouvé que le filtre de
Fréchet n’était contenu dans aucun ultrafiltre principal.
Donnons une caractérisation simple des valeurs d’adhérence d’un filtre.
Proposition 5.1.3.2. Soit un espace topologique (X, ΩX ) séparé \ et un filtre propre F.
c
Un point x est une valeur d’adhérence de F si et seulement si x ∈ F .
F ∈F

Démonstration. Supposons que x est une valeur d’adhérence de F. On trouve donc un


c
filtre propre H contenant F et Vx . Soit F ∈ F, montrons que x ∈ F . Pour cela, en utilisant
l’exercice 5.1.1.17, montrons que pour tout ouvert U contenant x, U ∩ F ̸= ∅. Soit donc
U ∈ ΩX contenant x, c’est donc un voisinage de x, donc en particulier U ∈ H, et F ∈ H,
c
donc par compatibilité U ∩ F ∈ H. Comme H est un filtre propre, U ∩ F = ̸ ∅, donc x ∈ F .
Réciproquement, supposons que x est adhérent à tous les éléments de F, montrons
qu’alors il existe un filtre propre H contenant F et Vx . Pour cela, il nous suffit de montrer
que F ∪ Vx a la propriété de l’intersection finie (le filtre engendré sera alors un filtre propre
vérifiant les conditions plus haut).
Comme F et Vx sont des filtres, quitte à prendre l’intersection des éléments, on peut
considérer qu’on a un élément F ∈ F et un élément U ∈ Vx , et il nous suffit alors de
c
montrer que F ∩ U ̸= ∅. Comme x ∈ F , si F ∩ U = ∅, alors F ⊆ (X \ U ) et X \ U est
c
un fermé, donc F ⊆ (X \ U ), donc x ∈ X \ U , sauf que x ∈ U par hypothèse, ce qui
est contradictoire. On en déduit donc que F ∩ U = ̸ ∅, donc que F ∪ Vx a la propriété de
l’intersection finie, d’où le résultat.

On peut alors se demander quand cet ensemble des valeurs d’adhérence est vide. C’est le
cas par exemple du filtre de Fréchet sur N muni de la topologie discrète, et cela s’interprète
par le fait que les parties du filtre vont à l’infini. D’une certaine manière, celles-ci sont
des voisinages d’un point se situant lui-même à l’infini (mais qui n’est pas dans l’espace,
menant à cette absence de valeur d’adhérence).
On motive donc la notion d’espace compact comme un espace dans lequel un tel cas
ne peut pas arriver. En reprenant le cas du filtre de Fréchet, on voit en particulier qu’on
peut prendre l’ensemble des points ({n})n∈N et en combiner une infinité à chaque fois pour
pouvoir construire une suite de parties, toutes contenues les unes dans les autres, telle qu’il
faut une infinité d’étapes pour vider les parties ainsi construites, mais qu’un nombre fini
d’étapes laisse un nombre infini d’éléments.
En inversant le processus et en cherchant à faire croître les segments initiaux ([0, n])n∈N ,
on voit qu’il faut un nombre infini d’étapes pour pouvoir recouvrir tout N : la compacité
est précisément la négation de ce fait.
Définition 5.1.3.3 (Compacité). Soit (X, ΩX ) un espace topologique. On dit que cet
espace est compact si pour toute partie R ⊆ ΩX , si R = X alors il existe une partie finie
S

F ⊆fin R telle que F = X.


S

Remarque 5.1.3.4. Nous adoptons ici la terminologie anglaise, car elle permet de faire la
distinction entre la notion de compacité et celle de séparation. En réalité, dans les textes
français, un espace compact signifie un espace à la fois séparé et compact au sens de ce
cours. Pour parler d’un espace possédant uniquement la propriété de compacité au sens de
ce cours, la terminologie française préfère le terme « quasi-compact ».
Cette propriété exprime que de tout recouvrement de X par des ouverts, on peut
extraire un recouvrement fini. En prenant, au lieu des ouverts, des fermés, cela nous
donne qu’une famille infinie dont toute intersection finie est non vide est une famille dont
l’intersection est non vide.
5.1. Topologie générale et filtres 87

Propriété 5.1.3.5. Un espace topologique (X, ΩX ) est compact si et seulement si pour


tout ensemble S de fermés tel que pour tout F ⊆fin S, F ̸= ∅, on a S ̸= ∅.
T T

Démonstration. A S on associe la famille R par

R ≜ {X \ A | A ∈ S}

en écrivant la contraposée de la proposition ci-dessus, on obtient :


\ \
S = ∅ =⇒ ∃F ⊆fin S, F =∅

En passant au complémentaire :
[ [
(X \ A) = X =⇒ ∃F ⊆fin S, (X \ A) = X
A∈S A∈F

ce qui correspond exactement au fait que si X = R alors il existe F ⊆fin R tel que
S
S
F = X, où R est un ensemble d’ouvert (puisqu’un ensemble de complémentaires de
fermés).

Le fait que tout filtre admette une valeur d’adhérence est maintenant une conséquence
directe.

Proposition 5.1.3.6. Soit (X, ΩX ) un espace topologique, alors c’est un espace compact
si et seulement si tout filtre propre admet une valeur d’adhérence.

Démonstration. Supposons que (X, ΩX ) est un espace \


compact.
c
En utilisant la proposition 5.1.3.2, on sait que F est l’ensemble des valeurs
F ∈F
c
\ cF est un fermé, et on sait par définition d’un
d’adhérence. Chaque filtre propre que pour
tout A ⊆fin F,
T
F est non vide, puisqu’il contient au moins A qui est non vide. Par
F ∈A
compacité, on en déduit que l’ensemble des valeur d’adhérence de F est non vide.
Supposons que tout filtre propre admette une valeur d’adhérence.
On veut montrer que toute famille de fermés ayant la propriété de l’intersection finie
possède une intersection non vide. Soit C une telle famille, on définit
F
F ≜C

qui est un filtre propre car C vérifie la propriété de l’intersection


\ c \ F
finie. Ainsi a une valeur
c
d’adhérence, disons x. Par la proposition 5.1.3.2, x ∈ F donc x ∈ F , mais comme
F ∈F F ∈C
c
les F sont des fermés, F = F , donc x ∈ C. Ainsi C est non vide.
T T

Dans le cas particulier d’un ultrafiltre, une valeur d’adhérence est un point vers lequel
le filtre converge. On a donc la proposition suivante.

Proposition 5.1.3.7. Soit (X, ΩX ) un espace topologique compact. Alors tout ultrafiltre
U sur X converge vers un point. Ce point est unique si l’espace est séparé.

Démonstration. Par compacité, on sait que U a une valeur d’adhérence, disons a. On sait
donc qu’il existe un filtre propre F contenant U et tel que Va ⊆ F. Mais comme U est un
ultrafiltre, cela signifie que F = U, donc que Va ⊆ U, c’est-à-dire que U converge vers a.
Par unicité de la limite, on sait que ce a est unique si l’espace est séparé.
88 Chapitre 5. Topologie

5.1.4 Topologie induite et topologie produit


Nous allons maintenant nous intéresser à des moyens de construire de nouvelles to-
pologies à partir d’anciennes topologies. Les deux moyens que nous allons voir ici sont
la topologie induite et la topologie produit. Un autre outil classique de topologie est la
topologie quotient, mais comme nous n’aurons pas à l’utiliser (et qu’elle demande plus de
technicité), nous l’occultons ici.
La topologie induite est naturelle à considérer : étant donné un espace topologique
(X, Ω) et une partie Y ⊆ X, on veut pouvoir munir Y d’une topologie, en partant de la
topologie Ω. Par exemple, si l’on travaille dans R avec sa topologie habituelle, on peut
parler assez facilement d’être au voisinage d’un point lorsqu’on se restreint à R+ . Nous
allons généraliser ce procédé.
Définition 5.1.4.1 (Topologie induite). Soit (X, ΩX ) un espace topologique, et Y ⊆ X.
On appelle la topologie induite par Y l’espace topologique (Y, ΩY ) défini par

ΩY ≜ {U ∩ Y | U ∈ ΩX }

Démonstration. On vérifie que ΩY est bien une topologie, en utilisant le fait que pour la
stabilité par intersections finies, il suffit de vérifier que Y est un ouvert et que l’intersection
de deux ouverts est un ouvert :
• soit A ⊆ ΩY , pour chaque U ∈ A, par définition, on trouve un ouvert VU ∈ ΩX tel
que U = VU ∩ Y . Alors
!
[ [ [
A= (VU ∩ Y ) = VU ∩Y
U ∈A U ∈A

A ∈ ΩY .
S
donc
• Y = X ∩ Y donc Y ∈ ΩY .
• si U, V ∈ ΩY , alors on trouve U ′ , V ′ ∈ ΩX tels que U = U ′ ∩ Y et V = V ′ ∩ Y , et
U ∩ V = U ′ ∩ Y ∩ V ′ ∩ Y soit U ∩ V = (U ′ ∩ V ′ ) ∩ Y , donc U ∩ V ∈ ΩY .

Exercice 5.1.4.2. Montrer que si (X, ΩX ) est un espace topologique séparé et Y une
partie de X, alors Y munie de la topologie induite est un espace séparé.
La topologie induite permet de définir une partie compacte dans un espace quelconque.
Définition 5.1.4.3 (Partie compacte). Soit (X, ΩX ) un espace topologique. On dit que
K ⊆ X est une partie compacte de X si K muni de la topologie induite est un espace
compact.
Remarque 5.1.4.4. De façon équivalente, une partie K est compacte si pour toute famille
d’ouverts A, si A ⊇ K alors on a F ⊆fin A tel que A ⊇ K.
S S

Propriété 5.1.4.5. Soit (X, ΩX ) un espace topologique séparé et K une partie compacte
de X. Alors K est fermé.
Démonstration. Pour montrer que K est fermé, on va chercher à exprimer K comme une
intersection de fermés, en montrant que pour chaque y ∈ X \ K il existe un fermé Cy
contenant K et ne contenant pas y (l’intersection de tous les Cy sera alors K).
Soit donc y ∈ X \ K. Pour chaque x ∈ K, on trouve deux ouverts Ux et Vx disjoints,
Ux contenant y et Vx contenant x. Par compacité de K, comme {Vx | x ∈ K} forme un
5.1. Topologie générale et filtres 89

recouvrement
\ de K, on extrait F ⊆fin K tel que {Vx | x ∈ F } recouvre K. On en déduit que
Ux ne contient aucun des Vx , et est donc disjoint de K. Comme c’est une intersection
x∈F
finie d’ouverts, c’est aussi un ouvert : on a donc un ouvert U contenant y et disjoint de K,
donc X \ U est un fermé contenant K et ne contenant pas y.

Dans un espace compact séparé, on a une caractérisation forte des parties compactes :
ce sont les fermés de l’espace.
Proposition 5.1.4.6. Soit (X, ΩX ) un espace compact séparé, alors une partie K ⊆ X
est compacte si et seulement si elle est fermée.
Démonstration. Montrons qu’un fermé est compact. Soit un recouvrement A ⊆ ΩK de K
[ donc, pour chaque U ∈ A, un ouvert VU ∈ ΩX tel que
par des ouverts de K. On trouve
U = VU ∩ K. Par hypothèse, VU ⊇ K, et comme K est un fermé, X \ K est un ouvert,
U ∈A
donc {VU | U ∈ A} ∪ {X \ K} est un recouvrement de X : on en déduit par compacité de
X qu’on peut trouver un sous-recouvrement fini F ⊆fin {VU | U ∈ A} ∪ {X \ K}. On voit
alors que ( F ) \ (X \ K) ⊇ K, donc en prenant
S

F ′ ≜ F \ {X \ K}

on trouve un recouvrement de K. De plus, tous les éléments de F ′ sont des éléments de A,


donc on a un sous recouvrement fini de A.
Réciproquement, comme l’espace est séparé, une partie compacte est fermée.

Intéressons-nous maintenant à la topologie produit. Celle-ci, au lieu de munir d’une


topologie un espace plus petit, permet à partir d’une famille d’espaces, d’obtenir un espace
topologique sur le produit de cette famille.
Q
Plutôt que de simplement imaginer l’ensemble Xi et de chercher à le munir d’une
topologie, présentons la construction de la topologie produit par une approche plus catégo-
rique.
On a vu que la notion de morphisme, pour des espaces topologiques, est celle de fonction
continue, pour laquelle l’image réciproque d’un ouvert est encore un ouvert. De plus, si
Q
Xi est muni d’une topologie, alors il est légitime d’exiger de cette topologie qu’elle
rende les projections πj : Xi → Xj continues (les projections sont en quelque sorte
Q

l’élément le plus primitif pour un produit). On veut donc une topologie qui rende ces
fonctions continues, mais beaucoup de choix de topologies sont possibles. En particulier,
pour tout i ∈ I et U ouvert de Xi , on demande que πi−1 (U ) soit ouvert, et cet ensemble
est exactement j̸=i Xi × U .
Q

A partir du moment où ces images réciproques appartiennent à la topologie, on peut


ajouter autant d’ouverts que l’on veut et garder la continuité des projections : c’est donc
la possibilité de rajouter des ouverts qui empêche d’avoir un choix canonique. La réponse
est donc d’imposer que la topologie produit est la plus petite topologie vérifiant cette
continuité des projections.
On donnera une définition plus explicite de la topologie produit, mais l’intuition de la
topologie produit reste celle ci-dessus.
Définition 5.1.4.7 (Cylindre). Soit (Xi )i∈I une famille d’ensembles. Soit F ⊆fin I et
(Yi )i∈F ∈ i∈F P(Xi ), on appelle cylindre en Y l’ensemble
Q

( )
Y
JY K ≜ (xi ) ∈ Xi ∀j ∈ F, xj ∈ Yj
i∈I
90 Chapitre 5. Topologie

  !
Y Y
que l’on peut aussi écrire  Xj  × Yi .
j ∈F
/ i∈F

Propriété 5.1.4.8. Soit une famille (Xi , ΩXi )i∈I d’espaces topologiques. La famille
( )
Y
Cylind((Xi , ΩXi )i∈I ) ≜ JY K F ⊆fin I, (Yi )i∈F ∈ ΩXi
i∈F

est une base de topologie sur Xi .


Y

i∈I

Démonstration. On montre que cette famille est stable par intersection finie (donc que
Q
i∈I Xi est dans cette famille, et qu’elle est stable par intersections binaires) :
Q
• En prenant la famille vide, on a directement J∅K = i∈I Xi .
• Soient JY K et JZK deux éléments de la famille. Soient F et F ′ les parties finies de I
apparaissant dans la définition de Y et de Z. Remarquons d’abord que
( )

Y
JY K ∩ JZK = (xi ) ∈ Xi ∀j ∈ F, xj ∈ Yj , ∀k ∈ F , xk ∈ Zj
i∈I

On définit la famille A sur F ∪ F ′ par




Yi ∩ Zi si i ∈ F ∩ F


Ai = i Y si i ∈ F \ F ′

Z si i ∈ F ′ \ F

i

alors JAK appartient à la famille ci-dessus, car Yi ∩ Zi est une intersection d’ouvert,
donc un ouvert, et Yi (respectivement Zi ) est un ouvert, donc on a bien une famille
finie d’ouverts. De plus, JAK = JY K ∩ JZK en déroulant les définitions.
Ainsi Cylind((Xi , ΩXi )i∈I ) est bien une base de topologie.

La topologie produit est donc la topologie engendrée par les cylindre d’ouverts.

Définition 5.1.4.9 (Topologie produit). Soit (Xi , ΩXY i )i∈I une famille d’espaces topolo-
giques. Alors l’espace topologique produit est l’espace Xi avec la topologie engendrée
i∈I
par Cylind((Xi , ΩXi )i∈I ).

On peut maintenant se demander comment nos deux propriétés, la séparation et la


compacité, sont préservées par produit. Dans le cas de la séparation, le résultat est assez
facile.

Proposition 5.1.4.10. Soit (Xi , ΩXi )i∈I une famille d’espaces séparés, alors l’espace
produit de cette famille est aussi séparé.

Démonstration. Soient (xi )i∈I = ̸ (yi )i∈I deux éléments différents du produit. Puisqu’ils
sont différents, on peut trouver i ∈ I tel que xi ̸= yi . Comme Xi est séparé, on trouve
Ux et Uy deux ouverts de Xi disjoints contenant respectivement xi et yi . Par définition
de notre topologie produit, JUx K et JUy K sont des ouverts, et ils sont disjoints puisqu’un
élément du produit ne peut avoir qu’une valeur en i (et Ux ∩ Uy = ∅). De plus, (xi ) ∈ JUx K
et (yi ) ∈ JUy K, donc on a trouvé deux ouverts disjoints séparant nos deux éléments.
5.2. Dualité de Stone 91

Le produit préserve aussi la compacité, mais ce fait est plus technique à montrer, et
constitue le théorème de Tychonov, dont on peut montrer (dans cette version) qu’il est
équivalent à l’axiome du choix.

Théorème 5.1.4.11 (Tychonov [Tik35]). Y Soit (Xi , ΩXi )i∈I une famille d’espaces topo-
logiques compacts. Alors l’espace produit Xi muni de la topologie produit est aussi un
i∈I
espace compact.
Q
Démonstration. Pour cela, il nous suffit de montrer que tout filtre propre sur Xi admet
une valeur d’adhérence.
Soit F un filtre propre sur Xi . Pour tout i ∈ I, on écrit
Q

Fi ≜ (πi )F

où πi est la projection de Xi sur Xi . Comme F est un filtre propre, Fi est aussi un filtre
Q

propre. Comme chaque Xi est compact, on en déduit que chaque Fi admet une valeur
d’adhérence : soit xi une valeur d’adhérence de Fi (choisir un xY
i pour chaque i ∈ I demande
l’axiome du choix), on peut donc définir l’élément (xi )i∈I ∈ Xi dont on veut montrer
i∈I
qu’il est une valeur d’adhérence de F.
c
Soit F ∈ F (on notera Fi ≜ πi (F )), on veut montrer que (xi ) ∈ F . Soit donc U un
ouvert contenant (xi ). Sans perte de généralité, on suppose que U est un cylindre car tout
ouvert est un union de cylindre, donc si (xi ) appartient à une union de cylindre, on peut
trouver un cylindre en particulier auquel il appartient. On note donc U = J(Ui )i∈J K avec
J ⊆fin I. On veut donc montrer que pour tout i ∈ J, Ui ∩ Fi = ̸ ∅ (pour j ∈
/ J, la condition
est simplement que Xi ∩ Fi ̸= ∅, ce qui signifie que Fi =
̸ ∅, mais Fi ∈ Fi est non vide par
c
hypothèse). On sait que xi ∈ Fi puisque xi est une valeur d’adhérence de Fi , et Ui est
par construction un ouvert de Xi contenant xi , donc Ui ∩ Fi ̸= ∅. Donc pour tout i ∈ I,
c
xi ∈ Fi .
En remarquant que !
\ c \ c
G = πi G
G∈Fi G∈F
\ c
grâce à la continuité de πi , il vient donc que (xi ) ∈ G , donc F admet une valeur
Y G∈F
d’adhérence, donc Xi est compact.
i∈I

Remarque 5.1.4.12. Comme nous l’avons mentionné avant, cette version du théorème est
équivalente à l’axiome du choix. Une autre version existe, qui s’écrit exactement de la même
manière mais utilise la notion française de compact (qui correspond donc ici à compact
séparé). Dans ce cas, plutôt que de choisir un xi pour chaque i ∈ I, il est possible d’étendre
F en un utlrafiltre, ce qui effectue automatiquement ce choix de xi par séparation : il se
trouve que le théorème 4.3.2.6 est strictement plus faible que l’axiome du choix ([Kri98] en
donne par exemple une démonstration).

5.2 Dualité de Stone


Nous profitons de cette introduction à la topologie pour aborder la dualité de Stone,
remontant aux travaux du mathématicien éponyme (en particulier à [Sto36]), qui relie
fortement la logique booléenne et la topologie de certains espaces. Dans son énoncé le plus
92 Chapitre 5. Topologie

théorique, il établit une équivalence de catégories, mais comme nous ne présentons pas
les éléments suffisants de théorie des catégories pour l’énoncer, nous nous contenterons de
montrer la construction des espaces à partir d’algèbres de Boole et réciproquement, et le
fait qu’elles sont presque inverses l’une de l’autre.
Nous étudierons dans un premier lieu les ouverts-fermés et les espaces de Stone, et
donnerons la construction seulement ensuite.

5.2.1 Ouverts-fermés et espace de Stone


Notre premier objectif est, étant donné un espace topologique, de trouver une algèbre
de Boole qui lui est naturellement associée. Les ouverts sont stables par union et par
intersection, donnant un bon candidat, mais ils ne le sont pas par complémentaire. De
même, les fermés ne sont pas stables par complémentaires. Cependant, les ensembles qui
sont à la fois ouverts et fermés, eux, sont bien stables par complémentaires.
Définition 5.2.1.1 (Ouvert-fermé). Soit (X, ΩX ) un espace topologique. On dit que
C ⊆ X est un ouvert-fermé de X si C ∈ ΩX et X \ C ∈ ΩX .
On notera KΩX l’ensemble des ouverts-fermés de X.
Remarque 5.2.1.2. En réalité, KΩX désigne l’ensemble des ouverts compacts de (X, Ω),
mais nous verrons que dans le cas qui nous intéresse, cette notion coïncide avec celle des
ouverts-fermés.
Propriété 5.2.1.3. Soit (X, ΩX ) un espace topologique. L’ensemble ordonné (KΩX , ⊆)
est une algèbre de Boole.
Démonstration. Puisqu’on travaille sur une partie de P(X) et qu’on prend comme candidats
pour les constructions de l’algèbre de Boole les constructions induites par P(X), on vérifie
seulement que celles-ci sont bien des ouverts-fermés :
• X ∈ ΩX et ∅ ∈ ΩX , donc X et ∅ sont des ouverts-fermés.
• si C, C ′ ∈ KΩX , alors C ∪ C ′ est un ouvert, et C ∩ C ′ est un ouvert (parce que C et
C ′ sont des ouverts), et de même C ∪ C ′ est un fermé et C ∩ C ′ est un fermé.
• si C ∈ KΩX , alors comme C est un ouvert, X \ C est un fermé, et comme C est un
fermé, X \ C est un ouvert, donc X \ C ∈ KΩX .

Exercice 5.2.1.4. Soit f : X → Y une fonction continue entre deux espaces topologiques
(X, ΩX ) et (Y, ΩY ). Montrer que f −1 induit un morphisme d’algèbres de Booles entre
(KΩY , ⊆) et (KΩX , ⊆).
On veut ainsi considérer des espaces pour lesquels l’information de leur algèbre de Boole
des ouverts-fermés suffit à la construction. Cela signifie donc qu’on se limite à des espaces
dont les ouverts « importants » sont des ouverts-fermés, ce qui signifie en fait qu’on veut
que notre espace admette une base d’ouverts-fermés. Ces espaces sont dits de dimension
zéro (ou zéro-dimensionnels).
Définition 5.2.1.5 (Espace de dimension zéro). Un espace topologique (X, Ω) est dit
de dimension zéro s’il existe une base de Ω constituée d’ouverts-fermés de Ω.
Nous verrons que par la construction que nous utiliserons pour avoir un espace to-
pologique à partir d’une algèbre de Boole, il est nécessaire d’assurer que tout ultrafiltre
converge vers un unique point, ce qui nous pousse à vouloir étudier des espaces compacts
séparés. Nous avons maintenant les éléments suffisants pour définir ce qu’est un espace de
Stone.
5.2. Dualité de Stone 93

Définition 5.2.1.6 (Espace de Stone). On dit qu’un espace topologique (X, ΩX ) est un
espace de Stone s’il est compact, séparé, et admet une base d’ouverts-fermés.

5.2.2 Spectre d’une algèbre de Boole


En algèbre, le spectre d’un anneau est l’ensemble de ses idéaux premiers. Dans le cas
d’une algèbre de Boole, qui est un cas particulier d’anneau, on peut donc définir la notion
de spectre, qui coïncide avec l’ensemble des idéaux maximaux (puisque dans une algèbre
de Boole, premier et maximal sont confondus). On préfère ici traiter du cas des ultrafiltres,
donc on définit le spectre comme l’ensemble des ultrafiltres, qui par dualité est équivalent.
Le spectre d’un anneau peut être muni d’une topologie : la topologie de Zariski. Celle-ci
est engendrée (en engendrant la topologie par une famille de fermés plutôt que par une
famille d’ouverts) par les images des idéaux par la fonction

I 7→ {P | P est un idéal premier de A, I ⊆ P }

pour A l’anneau considéré. Dans notre cas, on veut générer une topologie sur les ultrafiltres
à partir des éléments de notre algèbre de Boole. Pour cela, on a une façon naturelle d’associer
à un élément un filtre : pour un élément x ∈ B, on considère le filtre {y ∈ B | x ≤ y} qui
est le filtre engendré par {x}.
La topologie du spectre d’une algèbre de Boole sera donc la topologie engendrée par les
ensembles d’ultrafiltres contenant x. On commence par introduire la fonction construisant
notre base de topologie, et on montre qu’elle se comporte correctement.

Définition 5.2.2.1 (Extension d’un élément). Soit une algèbre de Boole (B, ≤). On
définit la fonction
ext : B −→ P(Spec(B))
x 7−→ {U ∈ Spec(B) | x ∈ U}
Propriété 5.2.2.2. Soit une algèbre de Boole (B, ≤). Pour tous x, y ∈ B, les propriétés
suivantes sont vérifiées :
• ext(⊤) = Spec(B)
• ext(⊥) = ∅
• ext(x ∨ y) = ext(x) ∪ ext(y)
• ext(x ∧ y) = ext(x) ∩ ext(y)
• ext(¬x) = Spec(B) \ ext(x)

Démonstration. Ces propriétés découlent directement du fait que ext est un morphisme
d’algèbres de Boole, ce que l’on va prouver :
• tout filtre contient ⊤, donc ext(⊤) = Spec(B).
• tout filtre propre (ce qu’est un filtre premier) ne contient pas ⊥, donc ext(⊥) = ∅.
• on montre que la condition x ∨ y ∈ U, pour un filtre premier U, est équivalente à
x ∈ U ou y ∈ U : un sens se déduit de la définition même d’être un filtre premier, et
l’autre sens se déduit du fait que U est clos par le haut. Ainsi

{U | x ∨ y ∈ U} = {U | x ∈ U ou y ∈ U}

• de même, on sait que pour un filtre, x ∧ y ∈ U est équivalent à x ∈ U et y ∈ U, d’où


l’égalité.
94 Chapitre 5. Topologie

On sait donc, en particulier, que la famille {ext(x) | x ∈ B} est une base de topologie
(puisque B est un inf demi-treillis, on a la stabilité par intersection). On peut donc définir
le spectre d’une algèbre de Boole.

Définition 5.2.2.3 (Spectre d’une algèbre de Boole). Soit (B, ≤) une algèbre de
Boole. On définit le spectre de B par l’ensemble Spec(B) muni de la topologie engendrée
par {ext(x) | x ∈ B}.

Notre définition d’espace de Stone se justifie maintenant par le fait qu’un spectre est
un tel espace.

Propriété 5.2.2.4. Soit (B, ≤) une algèbre de Boole. Alors le spectre de B est un espace
de Stone.

Démonstration. On vérifie les axiomes d’un espace de Stone :


• {ext(x) | x ∈ B} est une base d’ouverts-fermés. Ce sont des ouverts par définition de
notre topologie, et comme ext(¬x) = Spec(B) \ ext(x), ce sont aussi des fermés, d’où
ext(x) ∈ KΩSpec(X) .
• L’espace est séparé : soient U et V deux filtres premiers sur B, différents. Comme
ils sont maximaux, on peut trouver x ∈ U \ V, mais alors ext(x) et ext(¬x) forment
deux ouverts disjoints tels que U ∈ ext(x) et V ∈ ext(¬x) (car x ∈
/ V donc ¬x ∈ V).
• L’espace est compact : on veut montrer qu’une famille de fermés C vérifiant la propriété
d’intersection finie a une intersection non vide. Comme la topologie est engendré
par les ext(x), on peut dire sans perte de généralité que C = {ext(xi ) | i ∈ I} avec
xi ∈ B (quitte à avoir plus d’éléments et à ce que le C original soit une intersection
d’éléments du nouveau C). On définit maintenant le filtre
F
AC = {xi | i ∈ I}

et on veut montrer que ce filtre est un filtre propre. Il nous suffit de montrer que
{xi |^
i ∈ I} a la\propriété de l’intersection finie : soit F ⊆fin I, on a alors l’identité
ext( xi ) = ext(xi ), mais l’expression de droite est une intersection finie de
i∈F i∈F
^ C : c’est donc par hypothèse un ensemble non vide. On trouve donc
fermés dans
V ∈ ext( xi ), qui est un ultrafiltre et ne contient donc pas ⊥. On en déduit donc que
^ i∈F
xi ̸= ⊥. Ainsi AC est bien un filtre propre : on peut donc par le théorème 4.3.2.6
i∈F
l’étendre en un ultrafiltre UC qui, comme AC contient tous les xi , contient aussi tous
T
les xi , c’est donc un élément de ext(xi ), d’où
\
C ̸= ∅

donc Spec(B) est compact.


On a donc prouvé que le spectre de B est un espace de Stone.

On dispose maintenant d’une fonction (B, ≤) 7→ (Spec(B), ΩSpec(B) ) et d’une fonction


(X, ΩX ) 7→ (KΩX , ⊆). On peut voir assez directement que ces fonctions ne sont pas inverses,
puisque le spectre de l’algèbre des ouverts-fermés de X est une partie de P(X). On veut
donc que ces fonctions soient des inverses « faibles » : appliquer une fonction puis l’autre
nous donne deux structures isomorphes, même si potentiellement différentes.
5.2. Dualité de Stone 95

5.2.3 Dualité de Stone


Il nous reste à vérifier que ces espaces sont isomorphes.

Lemme 5.2.3.1. Soit (B, ≤) une algèbre de Boole. On a un isomorphisme d’algèbres de


Boole
(B, ≤) ∼
= (KΩSpec(B) , ⊆)

Démonstration. On a montré que la fonction ext était un morphisme d’algèbres de Boole.


On montre donc que c’est une bijection :
• ext est injective : si x ̸= y alors soit x < y, soit y < x, soit x et y sont incomparables.
Dans les trois cas, quitte à inverser x et y, on voit que ¬x ∧ y ̸= ⊥. On sait donc
F
que {¬x, y} peut être étendu en un ultrafiltre, qui est donc dans ext(y) et pas dans
ext(x), donc ext(x) ̸= ext(y).
• ext est surjective : soit K un ouvert-fermé de Spec(B). Par définition du fait que K
est un ouvert, on peut l’écrire comme une union :
[
K= ext(xi )
i∈I

où xi ∈ B et I est un ensemble quelconque. On sait que Spec(B) est compact, donc


comme K est fermé, il est aussi compact. On en déduit qu’on peut trouver F ⊆fin I
tel que [
K= ext(xi )
i∈F
!
_
Mais alors K = ext xi , donc K est dans l’image de ext.
i∈F
On a donc un morphisme d’algèbres de Boole bijectif, c’est donc un isomorphisme
d’algèbres de Boole (en tant qu’isomorphisme d’anneaux).

Lemme 5.2.3.2. Soit (X, ΩX ) un espace de Stone, on a un homéomorphisme

(X, ΩX ) ∼
= (Spec(KΩX ), ΩSpec(KΩX ) )

Démonstration. Le candidat pour cet homéomorphisme est la fonction

φ : X −→ Spec(KΩX )
x 7−→ {K ∈ KΩX | x ∈ K}

On vérifie que cette fonction retourne bien un élément de l’espace d’arrivée, pour tout
x∈X :
• x ∈ X donc X ∈ φ(x), de même x ∈
/ ∅ donc ∅ ∈
/ φ(x).
• si K ⊆ K ′ et x ∈ K alors x ∈ K ′ , donc φ(x) est clos par le haut.
• si K ∪ K ′ ∈ φ(x), alors x ∈ K ou x ∈ K ′ , par définition de l’union, donc K ∈ φ(x)
ou K ′ ∈ φ(x).
• si K ∈ φ(x) et K ′ ∈ φ(x) alors x ∈ K ∩ K ′ , donc K ∩ K ′ ∈ φ(x).
Ainsi φ(x) est bien un filtre premier sur KΩX .
Vérifions maintenant que φ est bijective :
96 Chapitre 5. Topologie

• si x ̸= y, on peut trouver un ouvert-fermé contenant x et pas y (ce qui suffit à prouver


que φ(x) ̸= φ(y)). En effet, par séparation, on trouve Ux et Uy deux ouverts disjoints,
le premier contenant x et le second y. Comme ΩX est un espace de Stone on peut
écrire Ux comme union d’ouverts-fermés : on trouve donc un ouvert-fermé K ⊆ Ux
tel que x ∈ K et, comme Ux ∩ Uy = ∅, on en déduit que y ∈ / K, d’où le résultat.
• φ est surjective. Soit F un filtre premier sur KΩX . Comme l’espace est compact et
séparé, on trouve un unique x dans l’adhérence de F : on en déduit que
\ c
x∈ K
K∈F

c
mais chaque K est un fermé, donc K = K, donc tous les éléments de F contiennent
x, donc F ⊆ φ(x). Comme F est un ultrafiltre, on déduit de l’inclusion que F = φ(x).
Donc φ est surjective.
Comme on sait que φ est une fonction bijective, il nous suffit de montrer que c’est
une fonction continue et ouverte, c’est-à-dire telle que l’image d’un ouvert est un ouvert.
Vérifions donc ces deux conditions :
• Soit U un ouvert de Spec(KΩX ). Par hypothèse, on peut l’écrire
[
U= ext(Ki )
i∈I

où Ki ∈ KΩX et I est un ensemble quelconque. Il nous suffit de montrer que


φ−1 (ext(Ki )) est un ouvert-fermé de X, puisqu’on sait qu’une telle union est alors
un ouvert.
Soit donc K ∈ KΩX , montrons que φ−1 (ext(K)) est un ouvert-fermé. Par définition,
ext(K) se réécrit
ext(K) = {U ∈ Spec(KΩX ) | K ∈ U}
mais comme φ est surjectif, on peut trouver un ensemble K ′ ⊆ X vérifiant l’équation
ext(K) = φ(K ′ ), c’est-à-dire tel que φ−1 (ext(K)) = K ′ . L’ensemble K ′ est donc

K ′ = {x | K ∈ φ(x)}

c’est-à-dire {x ∈ X | x ∈ K}, soit K, qui est par hypothèse un ouvert-fermé.


• Comme précédemment, on peut se ramener à montrer que l’image d’un ouvert-fermé
est un ouvert-fermé. Soit donc K ∈ ΩX , montrons que φ(K) est un ouvert-fermé de
Spec(KΩX ). Par définition :

φ(K) ≜ {{K ′ ∈ KΩX | x ∈ K ′ } | x ∈ K}

Montrons que φ(K) = ext(K). Soit U ∈ φ(K), par définition on trouve x ∈ K


tel que U = φ(x). On a alors, comme x ∈ K, que K ∈ φ(x), donc U ∈ ext(K).
Réciproquement, soit U ∈ ext(K). On sait donc que K ∈ U, et U converge vers un
unique élément x, donc (car K est fermé) x ∈ K. On en déduit donc que U ∈ φ(x),
donc que U ∈ φ(K).
On en déduit donc que φ(K) = ext(K), ce qui signifie en particulier que φ(K) est
un ouvert-fermé.
Ainsi φ est un homéomorphisme.

On peut donc énoncer une version faible du théorème de dualité de Stone.


5.3. Topologie métrique 97

Théorème 5.2.3.3 (Dualité de Stone [Sto36]). On a une correspondance, bijective à


isomorphisme près, entre les algèbres de Boole et les espaces de Stone.

Le vrai théorème de dualité de Stone s’énonce sur les catégories, et ajoute le fait que ce
quasi-isomorphisme (que l’on appelle équivalence dans le contexte catégorique) fait aussi
correspondre les morphismes, mais dans les directions différentes : une fonction continue
X → Y induit un morphisme d’algèbres de Boole KΩY → KΩX (et réciproquement). Il
est un important représentant du phénomène de dualité géométrie / algèbre, qui établit
des correspondances entre d’un côté le point de vue géométrique (ou encore topologique)
et de l’autre le point de vue algébrique. Le nom de dualité vient du fait qu’une action
géométrique se traduit par une action algébrique dans l’autre sens (et réciproquement).

5.3 Topologie métrique


Cette dernière section s’attardera sur la topologie métrique, qui est un cas particulier
mais très fréquent de topologie (et ayant le bon goût de beaucoup mieux se comporter).
Nous aborderons ici les notions d’espace métrique, de partie dense, d’espace séparable
et d’espace complet, pour pouvoir définir les espaces polonais qui seront étudiés en théorie
descriptive des ensembles.

5.3.1 Espace métrique


Dans un espace métrique, on s’éloigne de l’idée de la topologie générale de considérer
des parties pour décrire la proximité, et on utilise une fonction donnant explicitement la
distance entre deux points. On appelle une telle fonction, très naturellement, une distance.

Définition 5.3.1.1 (Distance). Soit X un ensemble. On appelle distance sur X une


fonction d : X × X → R+ vérifiant les axiomes suivants :
• séparation : ∀x, y ∈ X, d(x, y) = 0 =⇒ x = y
• symétrie : ∀x, y ∈ X, d(x, y) = d(y, x)
• inégalité triangulaire : ∀x, y, z ∈ X, d(x, z) ≤ d(x, y) + d(y, z)
On utilise aussi le terme « métrique » pour désigner une distance.

Définition 5.3.1.2 (Espace métrique). Un espace métrique est un couple (X, d) où X


est un ensemble et d est une distance sur X.

Un espace métrique a naturellement une topologie, ce qui est heureux vu le thème de


notre chapitre.

Définition 5.3.1.3 (Boule, topologie métrique). Soit (X, d) un espace métrique. Pour
x ∈ X et ε ≥ 0, on définit la boule ouverte centrée en x de rayon ε par

Bε (x) ≜ {y ∈ X | d(x, y) < ε}

On définit de façon analogue la boule fermée :

B ε (x) ≜ {y ∈ X | d(x, y) ≤ ε}

On appelle topologie métrique de (X, d) la topologie engendrée par la famille

{Bε (x) | ε > 0, x ∈ X}


98 Chapitre 5. Topologie

Remarque 5.3.1.4. Dans ce cas-là, notre famille n’est pas stable par intersection finie,
même si elle reste une base de topologie. En effet, l’intersection de deux boules ouvertes n’a
pas de raison d’être une boule ouverte, mais on peut quand même écrire cette intersection
comme une union quelconque de boules ouvertes. Si x ∈ Bε (a) ∩ Bε′ (b), alors on peut
trouver un δ tel que Bδ (x) est inclus dans cette intersection, et ainsi considérer l’union de
toutes les boules Bδ (x) pour x dans l’intersection.

Exercice 5.3.1.5. Soit un ensemble X, montrer que la distance discrète

d : X × X −→ R
(
0 si x = y
(x, y) 7−→
1 sinon

est bien une distance. Montrer que la topologie métrique associée est la topologie discrète
sur X.

Exercice 5.3.1.6 (Sur les espaces ultra-métriques). Soit un ensemble X. On dit


qu’une distance d est ultramétrique lorsqu’elle vérifie les deux premiers axiomes d’une
distance et la propriété suivante, à la place de l’inégalité triangulaire :

∀x, y, z ∈ X, d(x, z) ≤ max(d(x, y), d(y, z))

Montrer qu’une distance ultramétrique est bien une distance. Montrer que pour tous
x, y ∈ X et ε > 0, si Bε (x) ∩ Bε (y) ̸= ∅ alors Bε (x) = Bε (y). Ainsi, dans un espace
ultramétrique, tous les points d’une boule ouverte en sont centre.

Exercice 5.3.1.7. Montrer qu’un espace métrique est séparé (on pourra prendre, pour
deux points x ̸= y, deux boules de rayon d(x, y)/3).

Remarque 5.3.1.8. Avec l’exemple de la distance discrète, on voit que dans le cas général,
B ε (x) n’est pas toujours l’adhérence de Bε (x) : en prenant ε = 1, la boule ouverte est un
singleton fermé mais la boule fermée est l’espace tout entier.

On peut généraliser la notion de distance pour établir la distance entre un élément et


une partie (ou entre deux parties).

Définition 5.3.1.9 (Distance entre parties). Soit (X, d) un espace métrique, Y ⊆ X


et x ∈ X. On définit la distance de x à Y par

d(x, Y ) ≜ inf d(x, y)


y∈Y

et la distance d’une partie Y ⊆ X à une partie Z ⊆ X par

d(Y, Z) ≜ inf d(y, z)


y∈Y,z∈Z

On en déduit une caractérisation de l’adhérence par les distances.

Proposition 5.3.1.10. Soit (X, d) un espace métrique et Y ⊆ X. Alors pour tout x ∈ X,


on a l’équivalence suivante :
c
x∈Y ⇐⇒ d(x, Y ) = 0
5.3. Topologie métrique 99

c
Démonstration. Supposons que x ∈ Y et montrons que d(x, Y ) = 0. Soit ε > 0, on va
c
montrer qu’il existe y ∈ Y tel que d(x, y) < ε : par définition de x ∈ Y , on peut trouver
un élément dans Bε (x) ∩ Y (puisque l’intersection avec un ouvert contenant x est non
vide), mais cet élément y vérifie justement d(x, y) < ε, d’où le résultat.
Réciproquement, supposons que d(x, Y ) = 0. Soit ε > 0, on veut montrer qu’il existe
y ∈ Bε (x)∩Y . Comme on sait que inf d(x, Y ) = 0, on peut trouver y ∈ Y tel que d(x, y) < ε,
c
et cet élément vérifie y ∈ Bε (x) ∩ Y , d’où le fait que x ∈ Y .
Exercice 5.3.1.11. Trouver deux parties de R qui sont à une distance 0 l’une de l’autre
et qui ont une intersection vide.

5.3.2 Caractérisations séquentielles


Un intérêt des espaces métriques, outre le fait qu’ils sont souvent bien plus faciles à
visualiser que des espaces topologiques quelconques, est que leur filtre de voisinages peut
être engendré par un ensemble dénombrable. Pour le voir, il suffit de remarquer qu’on peut
engendrer les voisinages d’un point x par la famille des B1/n (x) pour n ∈ N∗ .
La conséquence principale que nous voulons en tirer est la suivante : pour caractériser
des comportements topologiques dans un espace métrique, il suffit d’étudier des suites. Cette
conséquence vient du fait que, pour caractériser une convergence, il suffit de rencontrer
tous les voisinages d’un point. Pour ce faire, dans le cas général, on peut avoir besoin
d’un nombre excessivement grand (et indénombrable) de points, ce qui empêche une suite
d’atteindre la limite. Par contre, avec un filtre dont une base est dénombrable, il suffit de
rencontrer chaque ensemble de cette base, ce qui peut se faire avec un nombre dénombrable
de points.
On a vu dans l’exercice 5.1.2.6 qu’on pouvait définir la convergence d’une suite à l’aide
de filtres. Évidemment, on utilisera dans le cas métrique la définition plus pragmatique
avec les quantificateurs :
lim un = ℓ ≜ ∀ε > 0, ∃n ∈ N, ∀m > n, d(um , ℓ) < ε
n→∞
On va donc montrer, dans un premier temps, que les notions déjà vues peuvent être
caractérisées par des suites. Commençons par un exercice pour nous mettre en jambe (qui
découle directement de ce la proposition précédente).
c
Exercice 5.3.2.1. Soit un espace métrique (X, d), Y ⊆ X et x ∈ X. Montrer que x ∈ Y
si et seulement s’il existe une suite (xn ) ∈ Y N telle que lim xn = x.
Pour pouvoir généraliser la notion de valeur d’adhérence aux suites, on définit d’abord
la notion de sous-suite.
Définition 5.3.2.2 (Sous-suite). Soit un espace métrique (X, d) et une suite (xn ) ∈ X N .
On dit que (yn ) est une sous-suite, ou suite extraite, de (xn ), s’il existe φ : N → N une
fonction strictement croissante telle que
∀n ∈ N, yn = xφ(n)
On appelle la fonction φ de cette définition l’extractrice de (yn ).
On a vu qu’on pouvait faire converger un filtre vers une de ses valeurs d’adhérence
en ajoutant des parties au filtre pour en faire un ultrafiltre. Le procédé d’extraction de
sous-suite est assez analogue, en ce qu’il permet de choisir seulement quelques valeurs d’une
suite pour se rapprocher d’une valeur plus qu’une autre. Ainsi, on peut faire converger
une suite vers une valeur d’adhérence en en prenant une sous-suite bien choisie. C’est la
définition que nous prendrons pour la valeur d’adhérence d’une suite.
100 Chapitre 5. Topologie

Définition 5.3.2.3 (Valeur d’adhérence d’une suite). Soit (X, d) un espace métrique
et (xn ) ∈ X N une suite à valeurs dans X. On dit que y est une valeur d’adhérence de (xn )
s’il existe une sous-suite (yn ) de (xn ) telle que lim yn = y. On note Adh(xn ) l’ensemble des
valeurs d’adhérence de xn .

Exercice 5.3.2.4. Montrer que l’ensemble des valeurs d’adhérence de (xn ) peut s’écrire
comme : \ c
Adh(xn ) = {uk | k > n}
n∈N

Remarque 5.3.2.5. On voit une forme très proche de celle des valeurs d’adhérence d’un
filtre. L’ensemble {uk | k > n} joue le rôle d’un ensemble du filtre. En fait, on peut associer
à une suite le filtre des parties contenant un ouvert contenant une infinité de valeurs de la
suite. Ce point relie directement les définitions avec les filtres et les définitions séquentielles.

On veut maintenant caractériser la compacité dans un espace métrique grâce à des


suites. Notre analogie entre les suites et le filtres nous motive à donner une définition
séquentielle des compacts utilisant la notion de valeur d’adhérence, c’est ce que nous faisons.

Définition 5.3.2.6 (Compact séquentiel). Soit un espace métrique (X, d). On dit
qu’une partie Y ⊆ X est une partie séquentiellement compacte si toute suite (xn ) ∈ Y N
admet une valeur d’adhérence.

Un espace séquentiellement compact est alors, naturellement, un espace métrique (X, d)


tel que X en est une partie séquentiellement compacte.
Pour prouver que cette notion alternative de compacité est équivalente à notre notion
générale, un sens demande plus de technique : c’est celui de montrer qu’un espace compact
au sens séquentiel l’est au sens général. Nous introduisons deux notions importantes pour
prouver ce sens plus naturellement : le nombre de Lebesgue et la précompacité.

Définition 5.3.2.7 (Nombre de Lebesgue). Soit (X, d) un espace métrique et (Ui )i∈I
un recouvrement de X. On dit que (Ui ) admet un nombre de Lebesgue si la propriété
suivante est vérifiée :
∃ρ > 0, ∀x ∈ X, ∃i ∈ I, Bρ (x) ⊆ Ui
Si (Ui ) admet un nombre de Lebesgue, on appelle nombre de Lebesgue de (Ui ) un ρ tel
que dans la formule précédente.

Lemme 5.3.2.8. Si (X, d) est séquentiellement compact, alors tout recouvrement (Ui )i∈I
de X admet un nombre de Lebesgue.

Démonstration. On raisonne par l’absurde. Supposons donc que pour tout ρ > 0, on puisse
trouver x ∈ X tel que pour tout i ∈ I, Bρ (x) \ Ui ≠ ∅. On décide donc, pour chaque ρ > 0,
de noter xρ un élément de Bρ (x) \ Ui . Cela forme une suite (x1/n )n∈N , dont on peut par
compacité séquentielle extraire une suite convergente, dont on note φ l’extractrice, (yn ) la
suite extraite et x la limite.
Comme (Ui ) est un recouvrement, on trouve i ∈ I tel que x ∈ Ui . Comme Ui est ouvert
et x ∈ Ui , on trouve ε > 0 tel que Bε (x) ⊆ Ui . Cependant, comme (yn ) converge vers
x, on trouve n ∈ N tel que pour tout m > n, ym ∈ Bε/2 (x). On sait alors que pour tout
m > n et tout y ∈ Bε/2 (ym ), d(y, x) < ε par inégalité triangulaire. Cela signifie donc que
Bε/2 (ym ) ⊆ Bε (x) ⊆ Ui , mais cela est impossible pour m suffisamment grand (puisqu’alors
B1/m (ym ) serait inclus dans Ui ), ce qui est absurde.
Le recouvrement (Ui )i∈I possède donc un nombre de Lebesgue.
5.3. Topologie métrique 101

L’idée du nombre de Lebesgue est de montrer qu’un recouvrement donné contient


des ouverts suffisamment gros : il montre que tout point est contenu dans au moins un
des ouverts avec assez d’espace autour de lui. Cet élément est important car on pourrait
s’attendre à un échec de l’extraction d’un recouvrement fini justement à cause d’ouverts
devenant de plus en plus petits. Ici, on a montré que s’il est possible d’avoir des ouverts
devenant de plus en plus petits, ces ouverts trop petits ne sont pas important à considérer :
tous les points sont déjà recouverts par d’autres suffisamment gros.
La deuxième étape est donc de prouver que ces ouverts suffisamment grands suffisent
pour prouver la compacité. Cela se réduit à la propriété de précompacité, dont nous donnons
la définition.
Définition 5.3.2.9 (Précompacité). Soit (X, d) un espace métrique. On dit que X est
précompact si pour tout ε > 0, il existe un recouvrement fini de X constitué uniquement
de boules de rayon ε.
Lemme 5.3.2.10. Soit (X, d) un espace métrique et séquentiellement compact, alors il est
précompact.
Démonstration. Par l’absurde, supposons qu’il existe ε > 0 tel qu’il n’existe aucun recou-
vrement fini de X constitué de boules de rayon ε. On peut alors construire une suite (xn )
de la façon suivante :
• x0 ∈ X
[
• si (xn )n<N est construite, alors on considère xn+1 ∈ X \ Bε (xn ), qui est non vide
n<N
car sinon on aurait un recouvrement fini de X par des boules ouvertes de rayon ε.
On voit donc que (xn ) vérifie la propriété que pour tout i < j, d(xi , xj ) ≥ ε (sinon on
a une contradiction vis à vis de la définition de xj ). Comme (X, d) est séquentiellement
compact, on peut extraire une suite convergente de (xn ) : notons-la (yn ) et x sa limite.
On voit alors que par définition de la limite, on peut trouver n0 ∈ N tel que pour tout
ε
n > n0 , d(yn , x) < , mais alors pour p, q > n0 on trouve
2
d(yp , yq ) ≤ d(yp , x) + d(x, yq )
ε ε
< +
2 2

mais on sait que d(yp , yq ) ≥ ε : c’est absurde.


Ainsi, pour tout ε > 0, il doit exister un recouvrement de (X, d) par des boules ouvertes
de rayon ε.

On peut maintenant prouver l’équivalence entre la compacité séquentielle et la compacité


générale.
Théorème 5.3.2.11 (Bolzano-Weierstrass généralisé). Soit (X, d) un espace métrique.
Alors une partie K ⊆ X est compacte si et seulement si elle est séquentiellement compacte.
Démonstration. Supposons que K est compacte. Alors toute famille de fermés de K ayant
la propriété d’intersection finie a une intersection non vide. Soit (xn ) ∈ K N . On peut définir
Adh(xn ) par une intersection de fermés par l’exercice 5.3.2.4, et la famille ainsi définie
vérifie la propriété d’intersection finie : si F ⊆fin N, alors on peut trouver p > max(F ), et
alors \ c c
{uk | k > n} ⊇ {uk | k > p}
n∈F
102 Chapitre 5. Topologie

On déduit de la compacité que Adh(xn ) est non vide.


Supposons que K est séquentiellement compacte. Soit (Ui )i∈I un recouvrement ouvert
de K. Par le lemme 5.3.2.8, on trouve ρ un nombre de Lebesgue de (Ui ). De plus, par
le lemme 5.3.2.10, on sait qu’on peut trouver un recouvrement fini de K par des boules
ouvertes de rayon ρ, notons Y ⊆fin X l’ensemble des points tel que {Bρ (x) | x ∈ Y } soit le
recouvrement fini obtenu par notre lemme. Par définition du nombre de Lebesgue, on sait
que pour chaque x ∈ Y , il existe ix ∈ I tel que Bρ (x) ⊆ Uix : notre recouvrement fini est
alors {Uix | x ∈ Y }, puisque
[ [
K⊆ Bρ (x) ⊆ Uix
x∈Y x∈Y

On en déduit que K est compacte.

On introduit maintenant une nouvelle notion, qui a du sens en topologie générale mais
que l’on préfère introduire dans le cas métrique : la densité.

Définition 5.3.2.12 (Densité). Soit (X, ΩX ) un espace topologique. On dit qu’une partie
c
Y ⊆ X est dense si Y = X.

La caractérisation séquentielle est directe, mais on l’écrit tout de même.

Propriété 5.3.2.13. Soit (X, d) un espace métrique. Une partie Y ⊆ X est dense si et
seulement si pour tout x ∈ X il existe une suite (yn ) ∈ Y N telle que lim yn = x.

Exemple. L’exemple le plus évident de densité est le fait que Q est dense dans R (en
munissant R de la topologie usuelle, dont on peut montrer qu’elle dérive de la métrique
(x, y) 7→ |x − y|).

Nous donnons en exercice une caractérisation de la continuité, analogue à la pro-


priété 5.1.2.5, mais utilisant la limite de suites.

Exercice 5.3.2.14. Soient (X, d) et (Y, d) deux espaces métriques. Montrer que toute
fonction f : X → Y est continue si et seulement si, en notant ℓ(X) l’ensemble des suites
convergentes à valeurs dans X, on a
 
∀(xn ) ∈ ℓ(X), lim f (xn ) = f lim xn
n→∞ n→∞

On peut donc définir la notion de séparabilité, qui exprime qu’un espace est, d’une
certaine manière, l’adhérence d’un espace dénombrable.

Définition 5.3.2.15 (Espace séparable). Soit (X, ΩX ) un espace topologique. On dit


que cet espace est séparable s’il existe une partie Y ⊆ X dense et dénombrable.

Le fait d’être dénombrable se prête particulièrement bien au cas métrique, d’où le fait
de l’introduire ici.

5.3.3 Complétude
Nous finissons ce chapitre sur l’introduction de la notion de complétude. Cette notion
est purement métrique, et non topologique. On peut la motiver par une observation à
propos de R et Q : dans le premier, une suite qui « a l’air » de converger, converge bien ;
dans le deuxième, une suite qui « a l’air » de converger, peut n’avoir aucune limite car sa
limite est un irrationnel.
5.3. Topologie métrique 103

A partir de cette observation, on voit que R possède une propriété que Q ne vérifie pas.
Cependant, cette observation ne suffit pas : il faut encore décrire concrètement ce qu’est
une suite ayant l’air de converger. Cette notion est celle des suites de Cauchy, dont l’écart
entre les différentes valeurs tend vers 0.

Définition 5.3.3.1 (Suite de Cauchy). Soit (X, d) un espace métrique. On dit qu’une
suite (xn ) ∈ X N est de Cauchy si elle vérifie la propriété suivante :

∀ε > 0, ∃n ∈ N, ∀p, q > n, d(xp , xq ) < ε

Remarque 5.3.3.2. La notion de suite de Cauchy dépend de la métrique et pas seulement


de la topologie. On peut vérifier que la topologie induite par R sur (−1, 1) et la topologie
obtenue par un homéomorphisme tel que argth sont les mêmes, mais les distances induites
sont très différentes. En particulier, une suite qui tend vers −1 est de Cauchy pour la
première métrique mais pas pour la deuxième.

Pour se convaincre qu’une telle suite a l’air de converger, donnons une propriété
importante des suites de Cauchy : une valeur d’adhérence est une limite pour ces suites.

Propriété 5.3.3.3. Soit (X, d) un espace métrique et (xn ) ∈ X N une suite de Cauchy. On
a l’équivalence suivante, pour tout x ∈ X :

lim xn = x ⇐⇒ x ∈ Adh(xn )
n→∞

Démonstration. Si x est la limite de (xn ) il est clair que x en est une valeur d’adhérence :
il suffit de considérer id comme extractrice.
Réciproquement, supposons que x est une valeur d’adhérence de (xn ). On trouve donc
une fonction φ : N → N strictement croissante telle que lim xφ(n) = x. Montrons que (xn )
converge vers x : soit ε > 0, par définition de la limite, on peut trouver n0 tel que
ε
∀n ≥ n0 , d(xφ(n) , x) <
2
De plus, comme (xn ) est de Cauchy, on trouve n1 tel que
ε
∀p, q ≥ n1 , d(xp , xq ) <
2
On sait donc que pour m ≥ max(n0 , n1 ), on a

d(xm , x) ≤ d(xm , xφ(m) ) + d(xφ(m) , x)


ε ε
< +
2 2

ε
Où l’inégalité d(xm , xφ(m) ) < vient du fait que φ(m) ≥ m ≥ n1 . On en déduit que (xn )
2
converge vers x.

On peut alors introduire la notion d’espace complet.

Définition 5.3.3.4 (Espace complet). Soit (X, d) un espace métrique. On dit que c’est
un espace complet si toute suite de Cauchy converge dans X.

On peut aussi définir la notion d’être métrisable (respectivement complètement métri-


sable), qui n’impose pas la métrique mais seulement son existence.
104 Chapitre 5. Topologie

Définition 5.3.3.5 (Espace complètement métrisable). Soit (X, ΩX ) un espace


topologique. On dit qu’il est un espace (complètement) métrisable s’il existe une distance
d engendrant la topologie ΩX (et telle que l’espace métrique est complet).

Il existe une construction permettant de plonger un espace métrique dans un espace


métrique complet, on l’appelle la complétion.
L’intérêt de cette construction est de donner un espace semblant le plus proche possible
de notre espace initial. Pour un espace X, son complété X̂ est un espace contenant X
comme partie dense, donc tous les points ajoutés pour construire X̂ ne sont que des limites
d’éléments de X : on n’ajoute en quelque sorte que les limites manquantes aux suites de
Cauchy non convergentes. De plus, on peut montrer que la distance sur X̂ est induite par
la distance sur X de telle sorte que deux éléments de X sont à la même distance, qu’ils
soient considérés comme des éléments de X ou comme des éléments de X̂. Pour formaliser
cette idée, nous donnons d’abord la définition d’isométrie.

Définition 5.3.3.6 (Isométrie). Soient (X, d) et (Y, d′ ) deux espaces métriques. On dit
qu’une fonction X → Y est une isométrie si elle vérifie la propriété suivante :

∀x, y ∈ X, d(x, y) = d′ (f (x), f (y))

Propriété 5.3.3.7. Une isométrie entre (X, d) et (Y, d′ ) est une fonction continue.

Démonstration. En utilisant l’exercice 5.3.2.14, il nous suffit de montrer que pour une suite
convergente (xn ), dont on notera x sa limite, on a lim f (xn ) = f (x).
n→∞
Soit ε > 0, par définition de lim xn = x on trouve n0 tel que

∀n > n0 , d(xn , x) < ε

alors, pour tout n > n0 , on a

d′ (f (xn ), f (x)) = d(xn , x)


d’où le fait que lim f (xn ) = f (x).


n→∞

Proposition 5.3.3.8. Soit (X, d) un espace métrique. Il existe un espace métrique complet
ˆ pour lequel (X, d) se plonge isométriquement dans une partie dense.
(X̂, d)

Démonstration. On considère l’espace

Y ≜ {(xn ) ∈ X N | (xn ) est de Cauchy}

et la distance
d′ ((xn ), (yn )) ≜ lim d(xn , yn )
n→∞

Cet espace n’est pas métrique car il ne vérifie pas la séparabilité : on quotiente donc
cet espace par la relation

(xn ) ∼ (yn ) ≜ lim d(xn , yn ) = 0


n→∞

On vérifie qu’on a alors une distance et que l’espace engendré est complet :
5.3. Topologie métrique 105

• la fonction d′ est bien définie : si (xn ) et (yn ) sont de Cauchy, alors pour tout ε > 0
on trouve n0 tel que
ε ε
∀p, q > n0 , d(xp , xq ) ≤ ∧ d(yp , yq ) ≤
2 2
Alors, pour tous p, q > n0 , on voit que

|d(xp , yp ) − d(xq , yq )| ≤ |d(xp , xq ) + d(xq , yp ) − d(xq , yq )|


≤ |d(xp , xq ) + d(xq , yq ) + d(yp , yq ) − d(xq , yq )|
ε ε
≤ + + d(xq , yq ) − d(xq , yq )
2 2
≤ε

La suite d(xn , yn ) est donc de Cauchy, ce qui signifie qu’elle converge (puisque la
suite est à valeurs dans R+ ).
• la fonction dˆ induite par d′ est bien définie. En effet, si (xn ) ∼ (yn ) et (zn ) ∼ (an ),
cela signifie que lim d(xn , yn ) = 0 et lim d(zn , an ) = 0, d’où
n→∞ n→∞

d′ ((xn ), (zn )) = lim d(xn , zn )


n→∞
= lim d(xn , zn ) + lim d(xn , yn ) + lim d(zn , an )
n→∞ n→∞ n→∞
= lim d(yn , xn ) + d(xn , zn ) + d(zn , an )
n→∞
≥ lim d(yn , an )
n→∞

De la même façon, on prouve l’autre inégalité, donc d′ ((xn ), (zn )) = d′ ((yn ), (an )),
donc d′ est constante sur les classes d’équivalences.
• pour la séparation, soient (xn ), (yn ) deux éléments de l’espace quotient. Si l’on suppose
ˆ n ), (yn )) = 0, alors par définition lim d(xn , yn ) = 0, donc (xn ) ∼ (yn ), ce qui
d((x
n→∞
signifie que les deux classes sont égales.
• pour la symétrie, cela découle directement de la symétrie de d puisque les définitions
utilisent d.
• pour l’inégalité triangulaire, soient (xn ), (yn ), (zn ) trois éléments de l’espace quotient.
On veut prouver l’inégalité

lim d(xn , zn ) ≤ lim d(xn , yn ) + lim d(yn , zn )


n→∞ n→∞ n→∞

mais cette inégalité passe directement à la limite puisque, pour tout n, le fait que d
est une distance implique

d(xn , zn ) ≤ d(xn , yn ) + d(yn , zn )

• si xn est une suite de Cauchy dans X̂, alors par définition on peut réécrire cette suite
((ai,j )i∈N )j∈N . Intuitivement, une limite à cette suite est la suite des limites sur j
des ai,j , mais cette limite n’existe pas. Cependant, on peut considérer un procédé
diagonal, en prenant la suite ai,i : à mesure que i grandit, on s’approche de la limite
de ai , et ai . Il reste malheureusement un dernier souci, qui est que la suite ai,i n’est
pas une suite de Cauchy à première vue. Pour contourner ce problème, on commence
106 Chapitre 5. Topologie

par définir une fonction i 7→ mi de la façon suivante : pour tout i ∈ N, on sait que xi
est de Cauchy, donc on peut trouver mi tel que
1
∀p, q ≥ mi , d(ap,i , aq,i ) <
i+1
On définit la limite de xn comme
x ≜ (ami ,i )i∈N
1 ε
Montrons que (ami ,i ) est bien de Cauchy. Soit ε > 0, on trouve n0 tel que <
n0 + 1 4
et n1 tel que
ˆ p , xq ) < ε
∀p, q ≥ n1 , d(x
4
ˆ p , xq ) en lim d(an,p , an,q ) donc, par définition de la limite, on
On peut réécrire d(x
n→∞
peut trouver n2 (p, q) tel que pour tout m > n2 (p, q), on a
ˆ p , xq ) + ε
d(am,p , am,q ) < d(x
4
ε
soit encore d(am,p , am,q ) < par inégalité trianglulaire, si p, q > n1 . Alors, on pose
2
n3 = max(n0 , n1 ), et on sait que pour p, q > n3 et m > max(n2 (p, q), mp , mq ), on a
d(amp ,p , amq ,q ) ≤ d(amp ,p , am,p ) + d(am,p , am,q ) + d(am,q , amq ,q )
1 ε 1
≤ + +
p+1 2 q+1
ε ε ε
≤ + +
4 2 4
≤ε
Ainsi, on a prouvé qu’il existait n3 tel que
∀p, q > n3 , d(amp ,p , amq ,q ) < ε
donc notre suite est de Cauchy.
Montrons que la suite (xn ) converge vers x. Par la propriété 5.3.3.3, il nous suffit
de montrer que x est une valeur d’adhérence de (xn ), ce que l’on prouve donc. Soit
ε > 0. Avec les arguments précédents, on sait qu’on peut trouver n0 tel que
ε
∀p, q ≥ n0 , d(amp ,p , amq ,q ) <
2
1 ε
On trouve aussi n1 tel que < . Soit n2 = max(n0 , n1 ). Par définition de la
n1 + 1 4
ˆ xn ) en lim d(am ,n , an,n ), on trouve n3 tel que pour
limite, et en réécrivant d(x, 2 n 2
n→∞
tout i ≥ n3 , on a
ˆ xn ) < d(am ,i , ai,n ) + ε
d(x, 2 i 2
4
Soit i ≥ max(n2 , n3 ), on montre alors l’inégalité voulue :
ˆ xn ) < d(am ,i , ai,n ) + ε
d(x, 2 i 2
4
ε
< d(ami ,i , amn2 ,n2 ) + d(amn2 ,n2 , ai,n2 ) +
4
ε 1 ε
< + +
2 n2 + 1 4

ˆ xn ) < ε, d’où lim xn = x.
Donc pour tout ε > 0, il existe n2 tel que d(x, 2
n→∞
5.3. Topologie métrique 107

ˆ est donc bien un espace métrique complet.


L’espace (X̂, d)
ˆ Pour cela,
De plus, on veut montrer que (X, d) s’injecte isométriquement dans (X̂, d).
on considère l’application

ι : X −→ X̂
x 7−→ (n 7→ x)n∈N

ˆ
Dans ce cas, on voit que d(ι(x), ι(y)) = d(x, y), donc ι est bien isométrique (et donc
injective).
Enfin, montrons que l’image de ι est dense dans X̂. Soit un élément (xn ) ∈ X̂ et ε > 0,
ˆ n ), ι(x)) ≤ ε, ce qui se traduit par
montrons qu’il existe x ∈ X tel que d((x

lim d(xn , x) ≤ ε
n→∞

mais on sait, par définition, que (xn ) est une suite de Cauchy : on peut donc trouver n0 tel
que
∀p, q ≥ n0 , d(xp , xq ) ≤ ε
donc, en prenant x = xn0 , la limite précédente est majorée à partir d’un certain rang par ε,
d’où l’inégalité. Ainsi X est dense dans X̂.

Pour clore ce chapitre, on peut maintenant définir ce qu’est un espace polonais, et


comment celui-ci se comporte vis à vis de la complétion.

Définition 5.3.3.9 (Espace polonais). Un espace polonais (X, ΩX ) est un espace


topologique complètement métrisable séparable.

Proposition 5.3.3.10. Soit (X, d) un espace métrique séparable. Alors la complétion


ˆ de cet espace, comme construite précédemment, est un espace polonais.
(X̂, d)

Démonstration. On sait qu’il existe une partie dense dénombrable Y ⊆ X, et que X est
dense dans X̂, donc Y est dense (et dénombrable) dans X̂. Comme X̂ est par construction
un espace complet, on en déduit qu’il est un espace séparable complet : c’est un espace
polonais.
108 Chapitre 5. Topologie
Deuxième partie

Théorie des ensembles

109
Chapitre 6
Formaliser les mathématiques

Table des sous-matières


6.1 Axiomes de ZFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.1.1 Premiers axiomes . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.1.2 Les schémas d’axiomes . . . . . . . . . . . . . . . . . . . . . . . . 113
6.1.3 L’axiome de l’infini et les entiers . . . . . . . . . . . . . . . . . . 115
6.1.4 Axiome du choix et fonctions . . . . . . . . . . . . . . . . . . . . 116
6.1.5 Axiome de fondation . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.1.6 Résumé : les fragments de ZFC . . . . . . . . . . . . . . . . . . . 122
6.2 Construction des autres ensembles de nombres . . . . . . . . . 122
6.2.1 Les entiers naturels . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.2.2 Les entiers relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.2.3 Les nombres rationnels . . . . . . . . . . . . . . . . . . . . . . . . 128
6.2.4 Les nombres réels . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

our commencer notre étude, nous allons étudier l’une des propriétés les plus connues
P de la théorie des ensembles : la capacité d’expression suffisante pour formaliser toutes
les mathématiques usuelles. Ce chapitre se concentrera donc sur l’étude des axiomes de
ZFC et de leur utilisation pour construire les objets mathémtiques que nous connaissons
habituellement.
Nous devons ici faire quelques éclaircissements d’ordre philosophique. Tout d’abord,
sur la méta-théorie : nous considérons que l’univers ambiant dans lequel nous pratiquons
les mathématiques est lui-même un modèle de la théorie ZFC. Plus précisément, en notant
U l’objet mathématique qui sera la collection de tous les objets mathématiques, ZFC peut
être vu comme une théorie donnant une approximation du comportement de U.
En particulier, U contient des collections, que nous appelons d’habitude ensembles, et
si un objet X apparait dans une collection C, on écrit X ∈ C. Cependant, les objets que
nous manipulerons ne seront pas ces collections, et la relation ∈ utilisée dans ZFC ne sera
pas « être un objet mathématique apparaissant dans cette collection intuitive » : nous
utiliserons des outils purement formels pour étudier ZFC, et devons donc les distinguer des
objets intuitifs associés. Aussi nous appellerons « ensemble » un objet de la théorie ZFC,
et « collection » un ensemble au sens intuitif, dans U. De même, les objets formels seront
associés à la notion d’appartenance, et les collections à la notion d’occurrence.
Remarquons cependant qu’un ensemble donne de fait naissance à une collection :
l’ensemble X définit la collection {x ∈ U | x ∈ X}.

111
112 Chapitre 6. Formaliser les mathématiques

Enfin, nous traiterons régulièrement des classes. S’il est possible de ne se restreindre
qu’aux ensembles pour l’étude de ZFC, nous verrons qu’il est bien plus pratique d’énoncer
certaines constructions en terme de classes. Une classe est une collection qui ne peut pas
être représentée par un ensemble (par exemple la classe des ensembles, cf. le paradoxe de
Russell), mais que l’on peut décrire par un prédicat. Ainsi, une classe peut se représenter
par le prédicat lui correspondant. Si une classe C est décrite par un prédicat φ(x), alors
x ∈ C doit se lire comme une reformulation plus lisible de φ(x). Un léger défaut vient
avec cette approche : certains théorèmes, se référant aux classes, doivent se lire comme des
schémas de théorèmes, c’est-à-dire des théorèmes paramétrés par le prédicat φ définissant
une classe.

6.1 Axiomes de ZFC


6.1.1 Extensionalité, paire, union, ensemble de parties
Commençons par étudier la théorie ZFC en en listant les axiomes. Un premier point
important est de définir le langage sur lequel nous travaillerons : nous utiliserons LZF = {∈2 }.
En effet, tous les énoncés seront écrits seulement à l’aide du symbole de relation binaire ∈
et de la relation =, symbole logique déjà inclus dans tout langage.
Remarque 6.1.1.1. En réalité, nous le verrons, notre langage sera bien plus riche : nous
ajouterons des symboles de fonctions, de constantes, et diverses relations. Cependant, tous
ces ajouts doivent être considérés comme des aides à la lecture : toute proposition formulée
dans l’enrichissement que nous donnerons au fur et à mesure doit pouvoir se formuler dans
LZF , mais avec un nombre possiblement bien plus grand de symboles.
Axiome 6.1.1.2 (Extensionalité). L’axiome d’extensionalité exprime que deux ensembles
sont égaux exactement lorsqu’ils possèdent les mêmes éléments :
∀x∀y, x = y ⇐⇒ (∀z, z ∈ x ⇐⇒ z ∈ y)
Cet axiome définit ce que signifie l’égalité dans le monde des ensembles. Cela permet
directement de voir que l’ordre ou le nombre d’occurrences n’importent pas dans un
ensemble, contrairement par exemple au cas des listes. C’est un axiome au statut particulier
car il ne permet pas de construire de nouvel ensemble. Les autres axiomes, eux, donneront
principalement de nouvelles méthodes pour, à partir d’ensembles déjà construits, définir de
nouveaux ensembles.
Axiome 6.1.1.3 (Paire). L’axiome de la paire exprime que si deux ensembles x et y ont
été construits, alors l’ensemble {x, y} peut être construit à partir d’eux :
∀x∀y∃z, ∀a, a ∈ z ⇐⇒ a = x ∨ a = y
Exercice 6.1.1.4. Montrer que pour tous ensembles x, y, il existe un unique ensemble z
tel que décrit dans l’axiome 6.1.1.3. Cela justifie donc la notation {x, y} pour cet ensemble,
puisqu’il n’y a pas d’ambigüité sur lequel il est.
En utilisant l’axiome de la paire, on peut ainsi construire des collections finies telles
que {x, {y, z}}, mais on ne peut pas par exemple définir {x, y, z} : il nous faut un axiome
permettant d’accéder à l’intérieur d’un ensemble pour en construire un nouveau.
Axiome 6.1.1.5 (Union). Pour tout ensemble x, on peut construire l’ensemble
S
x
contenant les éléments des éléments de x :
∀x∃y, ∀z, z ∈ y ⇐⇒ (∃a, z ∈ a ∧ a ∈ x)
6.1. Axiomes de ZFC 113

Notation 6.1.1.6. De la même façon qu’avec l’axiome de la paire, l’ensemble y défini par
S
l’axiome est unique, on l’écrira donc x.

Exercice 6.1.1.7. Soient x1 , . . . , xn des ensembles, montrer par récurrence qu’il existe
l’ensemble {x1 , . . . , xn }.
n
[
Notation 6.1.1.8. Etant donnée une famille x1 , . . . , xn d’ensembles, on définit xi
i=1
{x1 , . . . , xn }. En particulier, x ∪ y est {x, y}.
S S
comme

Enfin, l’axiome de l’ensemble des parties permet de considérer comme un ensemble la


collection des parties d’un ensemble. En un sens, il permet de faire croître considérablement
la taille de ce que l’on peut construire.

Notation 6.1.1.9. On définit le prédicat binaire ⊆, appelé l’inclusion, par

x ⊆ y ≜ ∀z, z ∈ x =⇒ z ∈ y

Axiome 6.1.1.10 (Ensemble des parties). Pour tout ensemble x, il existe l’ensemble
P(x) dont les éléments sont exactement les ensembles inclus dans x :

∀x∃y, ∀z, z ∈ y ⇐⇒ z ⊆ x

Notation 6.1.1.11. Comme le y défini plus haut est unique, on peut là encore lui donner
une notation, qui est bien sûr P(x).

6.1.2 Les schémas d’axiomes


Les axiomes précédemment donnés constituent les briques de base pour construire des
ensembles, mais sont en général trop grossiers. L’intérêt de la théorie des ensembles est
de pouvoir construire des ensembles correspondant à des collections, ce qui manque pour
l’instant à notre système. C’est pour cela que nous ajoutons l’axiome de compréhension :
étant donnée une formule φ et un ensemble X, on peut construire l’ensemble {x ∈ X | φ(x)}
des éléments de x vérifiant φ.
La restriction de la compréhension à des parties d’un ensemble s’explique par le
paradoxe de Russell : si l’on pouvait construire un ensemble pour chaque formule, on
pourrait construire {x | x ∈
/ x}, qui appartient à lui-même si et seulement s’il n’appartient
pas à lui-même.
Un autre problème doit être contourné, et il est la raison pour laquelle on parle de
schéma d’axiomes et non d’axiome. Si l’on voulait définir le schéma avec ce qui a été dit,
celui-ci commencerait moralement par ∀φ : cela n’est pas une quantification du premier
ordre, et il n’est donc pas possible de donner un axiome pour toutes les formules. A la
place, on introduit un schéma d’axiomes, c’est-à-dire une infinité d’axiomes ayant tous la
même forme et dépendant d’un paramètre que l’on quantifie sur les formules.

Axiome 6.1.2.1 (Schéma de compréhension). Soit φ(x0 , . . . , xn ) une formule sur


LZF à n variables libres. Alors pour tous ensembles X et a1 , . . . , an , il existe l’ensemble
{x ∈ X | φ(x, a1 , . . . , an )}, ce qui s’écrit formellement

∀X∀a1 · · · an ∃y, ∀x, x ∈ y ⇐⇒ (x ∈ X ∧ φ(x, a1 , . . . , an ))

Notation 6.1.2.2. On définit donc la notation {x ∈ X | φ(x, a1 , . . . , an )} pour l’ensemble


précédent.
114 Chapitre 6. Formaliser les mathématiques

T
Exercice 6.1.2.3. Soit un ensemble x non vide, montrer qu’il existe l’ensemble x des
éléments qui sont dans tous les éléments de x.

Notation 6.1.2.4. On définit des notations pour l’intersection analogues à celles pour
n
\
l’union : xi et x ∩ y.
i=1

Exercice 6.1.2.5. Soient x et y deux ensembles. On définit le couple (x, y) par

(x, y) ≜ {{x, y}, {x}}

Montrer que pour tous x, y, x′ , y ′ , (x, y) = (x′ , y ′ ) si et seulement si x = x′ et y = y ′ .


Construire un prédicat φ(x, y, z) tel que φ(x, y, z) est vrai si et seulement si z = (x, y).
En déduire en considérant une partie bien choisie de P(P(x ∪ y)) que

x × y ≜ {(a, b) | a ∈ x, b ∈ y}

est un ensemble bien défini.

Le second axiome, le schéma d’axiomes de remplacement, peut être vu comme une


version plus forte de la compréhension. Plutôt que de s’intéresser à filtrer des éléments
dans un ensemble plus gros, le but de ce schéma d’axiomes est de construire un ensemble
par une fonction. Comme la notion de fonction n’est pas encore définie, nous utilisons à la
place la notion de relation fonctionnelle.

Définition 6.1.2.6 (Relation fonctionnelle). Une relation binaire est ici une formule à
deux variables libres. On dit qu’une relation R(x, y) est fonctionnelle si pour chaque x, il
existe au plus un y tel que R(x, y). On écrira pour raccourcir

Funct(R) ≜ ∀x∀y∀z, R(x, y) ∧ R(x, z) =⇒ y = z

Pour une relation fonctionnelle R(x, y), on définit la collection du domaine de R :

Dom(R)(x) ≜ ∃y.R(x, y)

et la collection de l’image de R :

Im(R)(y) ≜ ∃x.R(x, y)

Axiome 6.1.2.7 (Schéma de remplacement). Pour toute formule R(x0 , . . . , xn+1 ),


pour tous ensembles X, a1 , . . . , an , si R(a1 , . . . , an ) est une relation fonctionnelle en ses
deux dernières variables libres alors l’ensemble image de R(a1 , . . . , an ) par X est aussi un
ensemble :

∀a1 · · · an , Funct(R(a1 , . . . , an )) =⇒ ∀X, ∃y,


∀x, x ∈ y ⇐⇒ (∃z, z ∈ X ∧ R(a1 , . . . , an , z, x))

Exercice 6.1.2.8. En remarquant qu’une relation fonctionnelle peut représenter une


fonction partielle, montrer que le schéma d’axiomes de compréhension peut se déduire du
schéma d’axiomes de remplacement.

Exercice 6.1.2.9. En réutilisant le prédicat φ de l’exercice 6.1.2.5, montrer grâce au


schéma d’axiomes de remplacement que pour tous ensembles x, y, l’ensemble x × y est bien
défini même sans l’axiome de l’ensemble des parties.
6.1. Axiomes de ZFC 115

Donnons aussi l’axiome le plus évident.

Axiome 6.1.2.10 (Univers non vide). Il existe un ensemble.

Exercice 6.1.2.11. Montrer que l’axiome précédent est équivalent à l’existence de l’en-
semble vide ∅ défini par
∀z, z ∈
/∅
(où x ∈
/ y signifie ¬(x ∈ y))

Remarque 6.1.2.12. Le fait d’ajouter ou non cet axiome dépend de si l’on considère qu’un
modèle est nécessairement non vide (de façon équivalente, que l’énoncé (∀x, φ(x)) =⇒
(∃x, φ(x)) est vérifié). Avec la syntaxe de preuves donnée dans le chapitre 3, cet axiome
n’est pas nécessaire. Nous verrons de toute façon que l’axiome de l’infini nous donnera
automatiquement un ensemble dans notre univers, mais nous présentons cet axiome pour
pouvoir considérer la théorie sans axiome de l’infini mais où l’univers est quand même
supposé non vide.

6.1.3 L’axiome de l’infini et les entiers


Pour introduire l’axiome suivant, il nous faut d’abord motiver l’utilisation de ses
éléments constitutifs. L’ensemble mathématique le plus élémentaire que l’on est amené à
étudier est certainement N, l’ensemble des entiers naturels. Une formalisation habituelle de
cet ensemble demande en général les trois constituants suivant :
• l’élément 0
• la fonction unaire S, correspondant à n 7→ n + 1
• le principe de récurrence, que l’on peut encoder dans les ensembles par le fait que si
F ⊆ N, 0 ∈ F et ∀n, n ∈ F =⇒ S n ∈ F alors F = N.
Chercher à définir N dans ZFC nous demande donc de définir ces éléments. Un candidat
naturel à 0 est ∅ : les deux sont les objets nuls par excellence, et ∅ est le premier ensemble
que l’on peut construire. La question de savoir ce qu’est S x pour un ensemble x est alors
naturelle : pour cela, nous utilisons le codage de Von Neumann consistant à coder l’entier
naturel n par {0, . . . , n − 1}. En effet, cela nous offre une définition simple à la fonction S :

S x ≜ x ∪ {x}

Remarquons que l’on peut déjà construire tous les entiers que l’on souhaite : on peut
construire 0 et itérer la fonction S. Malheureusement, rien ne nous dit que la collection
{S n 0 | n ∈ N} est bien elle-même un ensemble (où le N apparaissant dans la définition est
l’ensemble des entiers naturels de notre méta-théorie, nos entiers au sens intuitif). Pour
palier ce problème, et pour éviter d’utiliser notre méta-théorie explicitement, on va à la
place définir N comme le plus petit ensemble contenant 0 et stable par la fonction S. Il
nous reste à savoir qu’un ensemble contenant 0 et stable par S existe bien.

Axiome 6.1.3.1 (Infini). Il existe un ensemble contenant ∅ et stable par S :

∃x, ∅ ∈ x ∧ ∀y, y ∈ x =⇒ S y ∈ x

Remarque 6.1.3.2. On peut donc se passer de l’axiome de l’ensemble vide en prenant


l’axiome de l’infini (et en adaptant sa définition pour ne pas appeler explicitement l’ensemble
vide).
116 Chapitre 6. Formaliser les mathématiques

Définition 6.1.3.3 (Entiers naturels). Soit X l’ensemble défini par l’axiome de l’infini.
On définit alors N comme

N ≜ {x ∈ X | ∀Y, Y ⊆ X ∧ ∅ ∈ Y ∧ (∀a, a ∈ Y =⇒ S a ∈ Y ) =⇒ x ∈ Y }

On vérifie maintenant le principe de récurrence.


Théorème 6.1.3.4 (Récurrence). Soit F une partie de N telle que ∅ ∈ F et telle que
∀n, n ∈ F =⇒ S n ∈ F , alors F = N.
Démonstration. Comme F est une partie de N, il nous suffit de montrer que N ⊆ F . Par
transitivité de l’inclusion, F ⊆ X pour X l’ensemble à partir duquel N a été défini. On
sait de plus que

x ∈ N =⇒ ∀Y, Y ⊆ X ∧ ∅ ∈ Y ∧ (∀a, a ∈ Y =⇒ S a ∈ Y ) =⇒ x ∈ Y

d’où, en spécialisant Y en F , et sachant que ∅ ∈ F et ∀n, n ∈ F =⇒ S n ∈ F , il vient


que
x ∈ N =⇒ x ∈ F
ce qui est exactement N ⊆ F , d’où le résultat.

Notation 6.1.3.5. A partir de maintenant, pour fluidifier l’écriture, on adoptera un style


plus laxiste sur l’écriture des propositions. Par exemple on se permettra d’écrire ∀x ∈ X, ψ
pour ∀x, x ∈ X =⇒ ψ et tous les légers abus de notations du même genre.
Remarque 6.1.3.6. Pour que la définition de N soit robuste, il convient de vérifier que le
X utilisé ne change pas le résultat final : c’est le cas. En effet, si deux ensembles X et Y
contiennent ∅ et sont stables par successeur, alors notons NX et NY les deux versions de
N obtenues respectivement avec X et avec Y . Alors X ∩ Y contient ∅ et est stable par
successeur, donc X ∩ Y contient NX et NY , mais alors on en déduit que NY est une partie
de X contenant ∅ et stable par successeur, donc NX ⊆ NY . De même NY ⊆ NX donc,
finalement, NX = NY .

6.1.4 Axiome du choix et fonctions


Pour introduire l’axiome du choix, le mieux est de parler de ce qu’on voudrait faire
mais ne peut pas faire sans lui. Prenons X1 , . . . , Xn des ensembles finis non vides. On peut
prouver qu’il existe (x1 , . . . , xn ) ∈ X1 × · · · × Xn (en codant le produit itéré et les tuples
de taille arbitraire). Pour cela, il suffit de raisonner par récurrence sur n : pour passer de
l’étape n à l’étape n + 1 il suffit de remarquer que Xn+1 est non vide, et prendre alors un
élément x ∈ Xn+1 pour l’ajouter au tuple déjà construit.
Le problème ici est que, si l’on peut obtenir ce résultat sur un nombre fini d’ensembles
non vides, ce processus ne fonctionne plus lorsque l’on passe au cas infini. On ne peut pas
faire une infinité de choix, puisque l’on n’utilise que des méthodes finies. C’est pourquoi
l’axiome du choix existe : il permet de choisir dans des familles infinies d’ensembles non
vides. Donnons d’abord la définition de cet axiome.
Axiome 6.1.4.1 (Choix). Soit X un ensemble dont les éléments sont non vides et deux
à deux disjoints. Alors il existe un ensemble C tel que pour tout x ∈ X, C ∩ x est un
singleton. Écrit formellement :

∀X, ∅ ̸= X ∧ ∅ ∈
/ X ∧ (∀x, y ∈ X, x ∩ y ̸= ∅ =⇒ x = y)
=⇒ ∃C, ∀x ∈ X, ∃y, C ∩ x = {y}
6.1. Axiomes de ZFC 117

Il existe plusieurs reformulations naturelles de l’axiome du choix. Pour celles-ci, nous


allons introduire le formalisme pour traiter des fonctions.

Définition 6.1.4.2 (Fonction). Soient X, Y deux ensembles. Une fonction f : X → Y


est une partie Γf ⊆ X × Y (appelée graphe de f ) telle que le prédicat (x, y) ∈ Γ, défini
pour x ∈ X et y ∈ Y , est une relation fonctionnelle. On désigne par Dom(f ) et Im(f ) les
ensembles associés à la relation fonctionnelle. On dit que f est partielle si Dom(f ) ̸= X, et
totale si Dom(f ) = X.
Pour deux ensembles X, Y , on note par Funct(X, Y ) l’ensemble des fonctions de X
dans Y :
Funct(X, Y ) ≜ {f : X → Y }

Exercice 6.1.4.3. Soient X et Y deux ensembles. Montrer que Funct(X, Y ) est bien un
ensemble.

Remarque 6.1.4.4. Dire que f est partielle, dans ce cadre, n’est pas bien défini. En
effet, on peut toujours prendre une fonction f : X → Y et l’étendre en f : S X → Y : la
fonction est la même mais cette propriété change. Pour éviter cela, une fonction consistera
souvent plutôt en un triplet (X, Y, Γf ), mais nous nous concentrerons simplement sur Γf .
Il y a donc un abus de notation ici lorsque nous construirons par exemple une fonction en
construisant juste son graphe, mais celui-ci reste léger car on connait toujours grâce au
contexte les deux autres composantes de la fonction.

Notation 6.1.4.5. Soit une fonction f : X → Y . On s’autorise à ajouter f comme symbole


de fonction dans notre langage, dont l’argument est un élément de X. Cela n’est pas
autorisé par défaut, et nous devons donc le coder dans notre langage élémentaire (de la
même manière que l’on convient qu’il est possible de réécrire x ∪ y uniquement grâce à ∈
et =). Pour cela, on définit la traduction d’une phrase φ faisant potentiellement intervenir
l’expression f (x) en une phrase φ′ sans f (x), par induction sur la structure de φ :
• si φ = R(f (x)) où R est une proposition atomique (une relation avec potentiellement
d’autres termes que f (x)), alors

φ′ ≜ ∀y ∈ Y, (x, y) ∈ Γf =⇒ R(y)

• si φ = ¬ψ, alors φ′ = ¬ψ ′ .
• si φ = ψ ∨ χ, alors φ′ = ψ ′ ∨ χ′ .
• si φ = ψ ∧ χ, alors φ′ = ψ ′ ∧ χ′ .
• si φ = ∃a, ψ, alors φ′ = ∃a, ψ ′ .
• si φ = ∀a, ψ, alors φ′ = ∀a, ψ ′ .
On considère donc qu’introduire la notation f (x) est une facilité d’écriture.

Remarque 6.1.4.6. Cet abus de notation est aussi possible dans le cas d’une relation
fonctionnelle qui n’est pas donnée par une fonction (au sens ensembliste). On peut en
particulier voir nos ajouts de notations tels que ∅, ou {x ∈ X | φ(x)} comme de tels abus
S

de notation. Il est d’ailleurs possible de rendre ce procédé formel, ce qui se base sur la notion
d’extension par définition, mais nous ne préciserons pas ces notions métamathématiques
dans ce livre, nous renvoyons le lecteur intéressé par ces questions à [Tro73].

On définit de plus les notions d’injectivité, de surjectivité et de bijectivité.


118 Chapitre 6. Formaliser les mathématiques

Définition 6.1.4.7 (Injectivité, surjectivité, bijectivité). Une fonction f : A → B est


dite injective si chaque élément b ∈ B a au plus un antécédent, c’est-à-dire si la proposition
suivante est vérifiée :
∀x, y ∈ A, f (x) = f (y) =⇒ x = y
Une fonction f : A → B est dite surjective si tout élément b ∈ B a au moins un
antécédent, c’est-à-dire si la proposition suivante est vérifiée :

∀y ∈ B, ∃x ∈ A, f (x) = y

Une fonction f : A → B est dite bijective si elle est à la fois injective et surjective.
Donnons un exercice pour manipuler la notion de fonction et celle de récurrence.
Exercice 6.1.4.8. Montrer que l’on peut définir des fonctions par récursion sur N, c’est-à-
dire montrer que si l’on a un ensemble X, un élément x0 ∈ X et une fonction fS : N×X → X
alors il existe une unique fonction f : N → X telle que
(
f (0) = x0
∀n ∈ N, f (S n) = fS (n, f (n))

L’exercice suivant permet de définir des fonctions depuis un produit cartésien en


considérant seulement ses projections.
Exercice 6.1.4.9. Soient X, Y, Z des ensembles. Montrer qu’il existe une bijection entre
Funct(X × Y, Z) et Funct(X, Funct(Y, Z)) donnée par f 7→ (x 7→ y 7→ f (x, y)).
Donnons maintenant deux nouvelles formulations de l’axiome du choix.
Proposition 6.1.4.10. L’axiome du choix est équivalent à la proposition suivante :
[
∀x, ∅ ̸= x ∧ ∅ ∈
/ x =⇒ ∃f : x → x, ∀y ∈ x, f (y) ∈ y

Démonstration. Supposons l’axiome du choix. On considère un ensemble x dont tous les


éléments sont non vides. On définit alors l’ensemble

C0 ≜ {{(y, z) | z ∈ y} | y ∈ x}

Comme x n’a pas d’élément vide, chaque élément de C0 est non vide. De plus, si a ̸= b ∈ C0 ,
alors a = {(a, y) | y ∈ a} et b = {(b, y) | y ∈ b}, donc a ∩ b = ∅. On peut donc appliquer
l’axiome du choix sur C0 pour trouver C tel que pour tout y ∈ x,

{(y, z) | z ∈ y} ∩ C = {(y, f (y))}

donc C ∩ C0 définit exactement une relation fonctionnelle f (à y on n’associe qu’une


S

seule image), et par définition de C0 on sait que f (y) ∈ y.


Supposons qu’on possède une fonction de choix pour tout ensemble sans élément vide.
Soit X un ensemble dont les éléments sont non vides et deux à deux disjoints. On peut
alors trouver f : X → X telle que f (x) ∈ x pour tout x ∈ X. Soit alors C = Im(f ).
S

Comme f (x) ∈ x et tous les éléments de X sont deux à deux disjoints, on en déduit que
C ∩ x contient au plus un élément, pour chaque x ∈ X. Comme de plus f (x) = x, C ∩ x
contient au moins un élément. Donc C ∩ x est un singleton.

Proposition 6.1.4.11. L’axiome du choix est équivalent à la proposition suivante :

∀x, x ̸= ∅ =⇒ ∃f : P(x)\{∅} → x, ∀y ∈ P(x)\{∅}, f (y) ∈ y


6.1. Axiomes de ZFC 119

Démonstration. Cette formulation est un cas particulier de la formulation précédente,


puisque P(x) \ {∅} est non vide et ne contient que des éléments non vides.
Réciproquement, supposons qu’on a x non vide donc les éléments sont non vides. On a
alors  
[
x⊆P x \ {∅}

d’où le résultat en spécialisant une fonction de choix donnée par hypothèse sur x.

Une autre formulation importante nécessite la notion de produit, que l’on peut simple-
ment considérer comme une généralisation de l’opération ×.

Définition 6.1.4.12 (Produit cartésien quelconque). Soit X un ensemble, on définit


Q
X par n o
Y [
X ≜ f : X → X ∀x ∈ X, f (x) ∈ x

Si {Xi }i∈I est une famille de fonctions (c’est-à-dire une fonction g : i 7→ Xi ) alors on
considère que n o
Y [
Xi ≜ f : I → Xi ∀i ∈ I, f (i) ∈ Xi
i∈I i∈I

Proposition 6.1.4.13. L’axiome du choix est équivalent à la proposition suivante :


Y
∀x, x ̸= ∅ ∧ (∀y ∈ x, y ̸= ∅) =⇒ x ̸= ∅
Q
Démonstration. Par définition, X est non vide si et seulement si on a une fonction
f : X → X telle que ∀x ∈ X, f (x) ∈ x. C’est un énoncé précédent de l’axiome du
S

choix.

6.1.5 Axiome de fondation


Le dernier axiome de ZFC est l’axiome de fondation. Selon les auteurs, il est ou non
ajouté à ZFC : ici, nous considérerons que ZFC le contient. Cet axiome empêche l’existence
de cycles d’appartenance, par exemple d’ensemble x tel que x ∈ x. Formellement, l’axiome
énonce que la relation ∈ sur l’univers ensembliste U est bien fondée.

Axiome 6.1.5.1 (Fondation). Pour tout ensemble x non vide, il existe y ∈ x tel que
x ∩ y = ∅. Formellement, cela s’écrit :

∀x, x ̸= ∅ =⇒ ∃y ∈ x, x ∩ y = ∅

Si l’on voit un ensemble x comme un arbre, où chaque nœud est un ensemble et où l’on
place une arête entre x et y si x ∈ y, alors l’axiome de fondation stipule que pour chaque
ensemble, l’arbre ainsi construit n’a pas de branche infinie (ni de cycle).
Remarquons que l’arbre que nous avons construit contient non seulement les éléments
de x mais aussi les éléments des éléments de x, et ainsi de suite. Cette idée nous permet
d’introduire la notion d’ensemble transitif, qui est un ensemble tel que l’arbre ainsi généré
ne contient que des éléments de l’ensemble (c’est-à-dire que tous les éléments des éléments
de x sont aussi éléments de x).

Définition 6.1.5.2 (Ensemble transitif). Soit un ensemble x. On dit que x est transitif
si tout élément d’un élément de x est aussi élément de x. Formellement, cela s’écrit

trans(x) ≜ ∀y ∈ x, ∀z ∈ y, z ∈ x
120 Chapitre 6. Formaliser les mathématiques

Remarquons qu’étant donné un ensemble, on peut toujours ajouter ses éléments, les
éléments de ses éléments et ainsi de suite pour obtenir à la fin un ensemble transitif.
Proposition 6.1.5.3. Soit x un ensemble. Alors il existe un unique plus petit ensemble
trcl(x) transitif contenant x.
Démonstration. Pour construire trcl(x), on construit la suite d’ensembles (xi )i∈N suivante :
• x0 = x
S
• xi+1 = xi
[
L’ensemble trcl(x) est alors xn .
n∈N
Vérifions que trcl(x) est bien transitif et contient x. Comme x0 ⊆ trcl(x) par définition
de l’union, trcl(x) contient x. Soient y ∈ trcl(x) et z ∈ y. Par définition, il existe n ∈ N tel
que y ∈ xn . Alors z ∈ xn+1 puisque z ∈ y ∈ xn et xn+1 = xn . Ainsi z ∈ trcl(x).
S

Soit un ensemble transitif y contenant x. Alors par récurrence sur n, xn ⊆ y :


• par hypothèse, x ⊆ y.
• si xn ⊆ y, alors soit z ∈ xn+1 , par définition on trouve a ∈ xn tel que z ∈ a ∈ xn , et
comme xn ⊆ y, a ∈ y. Mais y est transitif, donc z ∈ y : on en déduit que xn+1 ⊆ y.
Par récurrence, on en déduit que ∀n ∈ N, xn ⊆ y, d’où trcl(x) ⊆ y. Comme on a une
inclusion, si deux ensembles ont la même propriété d’être les plus petits ensembles transitifs
contenant x, alors ils sont inclus l’un dans l’autre et donc égaux, d’où l’unicité.

Exercice 6.1.5.4. Montrer qu’un ensemble x est transitif si et seulement si la propriété


suivante est vérifiée :
∀y ∈ x, y ⊆ x
Les deux propriétés de bonne fondation de ∈ et de transitivité mènent au lemme
d’effondrement de Mostowski. Celui-ci montre que toute classe munie d’une relation se
comportant suffisamment comme la relation ∈ peut en fait se simuler par une unique classe
transitive bien fondée où la relation est directement ∈.
Lemme 6.1.5.5 (Effondrement de Mostowski [Mos49]). Soit M une classe et R une
relation vérifiant :
• R définit des ensembles, c’est-à-dire que pour tout x ∈ M, la collection définie par
R−1 [x] ≜ {y | yRx} est un ensemble.
• R est bien fondée, c’est-à-dire :

∀X ⊆ M, ∃x ∈ X, R−1 [x] ∩ X = ∅

• R est extensionnelle, c’est-à-dire :

∀x, y ∈ M, R−1 [x] = R−1 [y] =⇒ x = y

Alors il existe une unique classe N et un unique isomorphisme ϕ : M → N tels que


ϕ
(M, R) ∼
= (N , ∈).
Remarque 6.1.5.6. Nous n’avons pas formellement défini ce qu’est un isomorphisme
entre classes. Cette définition est assez naturelle : étant données deux classes M et N avec
chacune une relation R (respectivement R′ ), un isomorphisme ϕ : (M, R) ∼ = (N , R′ ) est
une proposition ϕ à deux variables libres telle que, pour une proposition ψ définissant M
et une proposition χ définissant N , les propositions suivantes peuvent être prouvées :
6.1. Axiomes de ZFC 121

• ∀x, ∀y, ∀z, ψ(x) ∧ χ(y) ∧ χ(z) ∧ ϕ(x, y) ∧ ϕ(x, z) =⇒ y = z


• ∀x, ψ(x) =⇒ ∃y, χ(y) ∧ ϕ(x, y)
• ∀x, ∀y, ∀z, ψ(x) ∧ ψ(y) ∧ χ(z) ∧ ϕ(x, z) ∧ ϕ(y, z) =⇒ x = y
• ∀y, χ(y) =⇒ ∃x, ψ(x) ∧ ϕ(x, y)
• ∀x, ∀x′ , ∀y, ∀y ′ , ψ(x)∧ψ(x′ )∧χ(y)∧χ(y ′ )∧ϕ(x, y)∧ϕ(x′ , y ′ ) =⇒ (xRx′ ⇐⇒ yR′ y ′ )
Cependant, nous allons simplement travailler sur les classes comme sur les ensembles,
puisque les manipulations syntaxiques correspondant à nos arguments ensemblistes habituels
sont les mêmes que celles que nous allons faire sur nos classes. Remarquons simplement que
ce lemme est, puisqu’il parle de classe, un schéma de lemmes paramétré par les propositions
définissant M et R.
Démonstration. Montrons d’abord que si M1 et M2 sont deux classes transitives et que
θ : M1 → M2 est un isomorphisme pour la rleation ∈, alors θ est l’identité.
Par l’absurde, supposons que θ n’est pas l’identité. La classe C = {x | θ(x) ̸= x} n’est
donc pas vide. Par l’axiome de fondation, on trouve un élément minimal x ∈ C, et soit
y = θ(x). On peut alors remarquer que par minimalité de x, pour tout z ∈ x, θ(z) = z, et
comme θ est un isomorphisme on en déduit que z ∈ y. Ainsi x ⊆ y. Il nous reste à montrer
que y ⊆ x : si z ∈ y, alors z ∈ M2 comme M2 est une classe transitive, donc on trouve
a ∈ M1 tel que θ(a) = z, mais comme θ(a) ∈ θ(x), on en déduit que a ∈ x, et puisque x
est minimal dans C, θ(a) = a, c’est-à-dire z = a. Donc y ⊆ x. On a donc une absurdité
étant donné que x = θ(x) : ainsi C est vide, donc θ est l’identité.
Reprenons maintenant notre classe M. On définit alors la classe N par l’image de la
fonction π définie comme suit :
π : M −→ U
x 7−→ {π(y) | y ∈ R−1 [x]}
c’est-à-dire que la relation π est définie par la proposition
π(y) ≜ {π(z) | z ∈ R−1 [x]}
où l’on prouve par l’absurde que cette proposition vérifie les propriétés d’un isomorphisme
entre (M, R) et (N , ∈), en utilisant un principe analogue à la preuve précédente. La classe
N est définie par la proposition
y ∈ N ≜ ∃x ∈ M, π(x, y)
L’unicité découle alors du fait que s’il existe une autre telle classe N ′ , alors l’isomor-
phisme entre elle et N vérifie les hypothèses du résultat intermédiaire, et est donc l’identité.
D’où N = N ′ .

Remarque 6.1.5.7. Notre définition de π peut sembler illégitime, étant donné que le
théorème 4.1.4.9 ne couvre que le cas où le domaine est un ensemble (et qu’il est un ordre
bien fondé, mais il est assez clair que cela se déroule de la même façon pour une relation
bien fondée qui n’est pas forcément un ordre). Cependant, on voit que pour définir π(y),
il suffit de le définir sur un ensemble, celui des éléments inférieurs (comme R définit des
ensembles, cela fonctionne bien).
Ainsi la version purement formelle de π devrait être, avec φ le prédicat définissant M :

π(x, y) ≜ ∃X, (∀a ∈ X, φ(a) ∧ ∀b, bRa =⇒ b ∈ X) ∧ ∃f : X → U,


(∀z ∈ X, ∀Y, (∀a, a ∈ Y ⇐⇒ aRz) =⇒ f (z) = {f (a) | aRz})
∧ f (x) = y
122 Chapitre 6. Formaliser les mathématiques

Et l’utilisation du théorème 4.1.4.9 permet de conclure que cette relation est bien
fonctionnelle.

6.1.6 Résumé : les fragments de ZFC


Concluons cette section en redonnant les différents axiomes de ZFC. En fait, en enlevant
les doublons, il nous suffit d’un petit fragment de ce que nous avons vu. Donnons d’abord
les axiomes de ZF :
• l’axiome 6.1.1.2 (extensionalité)
• l’axiome 6.1.1.5 (réunion)
• l’axiome 6.1.1.10 (ensemble des parties)
• l’axiome 6.1.2.7 (schéma de remplacement)
• l’axiome 6.1.3.1 (infini)
• l’axiome 6.1.5.1 (fondation)
ZFC est alors obtenue comme ZF + AC. On peut aussi définir ZF − AF par exemple. De plus,
la théorie Z, de Zermelo, est la théorie contenant le schéma d’axiomes de compréhension
mais pas de remplacement, ne contenant pas l’axiome de fondation et contenant l’axiome de
la paire (et les axiomes d’extensionalité, de réunion, d’ensemble des parties et de l’infini).
Dans la suite du chapitre, nous n’aurons besoin que de Z − AF.

6.2 Construction des autres ensembles de nombres


Nous avons construit N directement grâce à l’axiome de l’infini, mais celui-ci n’est pas
le seul ensemble de nombres important à construire. Dans cette section, nous allons voir la
construction de Z, Q et R, ainsi que leurs propriétés essentielles. Nous allons commencer
notre étude par celle de N, puisque nous avons simplement défini cet ensemble et le principe
de récurrence.

6.2.1 Les entiers naturels


Rappelons les points essentiels à propos de N : cet ensemble contient 0, une fonction S
unaire, et le principe de récurrence. De plus, on peut définir une fonction par récursion.
Nous pouvons donc définir les fonctions + et ×.

Définition 6.2.1.1 (Addition, multiplication). On définit la fonction + : N × N → N


et la fonction × : N × N → N par récursion sur leur premier argument :
• ∀n ∈ N, n + 0 = n
• ∀n, m ∈ N, n + (S m) = S(n + m)
• ∀n ∈ N, n × 0 = 0
• ∀n, m ∈ N, n × (S m) = n × m + n

Notation 6.2.1.2. On définit 1 = S 0, 2 = S S 0 et ainsi de suite. Plutôt que S n, nous


utiliserons souvent l’expression n + 1.

Propriété 6.2.1.3. Les propriétés suivantes sont vérifiées :


• 0 est un élément neutre pour + : pour tout n ∈ N, 0 + n = n et n + 0 = n.
• + est commutatif : pour tous n, m ∈ N, n + m = m + n.
6.2. Construction des autres ensembles de nombres 123

• + est associatif : pour tous n, m, p ∈ N, n + (m + p) = (n + m) + p.


• + est régulier : pour tous n, p, m ∈ N, si n + m = n + p alors m = p.
• pour tous n, m ∈ N, si n + m = 0 alors n = 0 et m = 0.
• + distribue sur × : pour tous n, m, p ∈ N, n × (m + p) = n × m + n × p et
(n + m) × p = n × p + m × p.
• 1 est un élément neutre pour ×.
• 0 est absorbant pour × : pour tout n ∈ N, 0 × n = 0.
• × est commutatif.
• × est associatif.
• La structure est intègre : pour tous n, m ∈ N, si n × m = 0 alors n = 0 ou m = 0.
Démonstration. On montre seulement quelques résultats parmi ceux-ci :
• 0 est neutre : pour la première égalité, le résultat est par définition. Pour la deuxième,
montrons par récurrence sur n que 0 + n = n :
◦ 0 + 0 = 0 par définition de +.
◦ supposons que 0 + n = n, alors 0 + S n = S (0 + n) = S n.
D’où le résultat par récurrence.
• + est commutatif : on montre d’abord par récurrence sur m que pour tous n, m ∈ N,
on a S n + m = S (n + m) :
◦ S n + 0 = S n = S (n + 0).
◦ si S (n + m) = S (n + m), alors
S n + S m = S (S n + m)
= S (S (n + m))
= S (n + S n)

Nous donnant un premier résultat par récurrence. On montre maintenant que + est
commutatif par récurrence sur l’argument de droite :
◦ n + 0 = n = 0 + n comme nous l’avons déjà prouvé.
◦ supposons que n + m = m + n, alors
n + S m = S (n + m)
= S (m + n)
=S m+n
en utilisant le résultat précédent.
Donc + est commutatif.
• + est associatif. On prouve par récurrence sur k la proposition
∀k ∈ N, ∀n ∈ N, ∀m ∈ N, n + (m + k) = (n + m) + k
◦ si k = 0 alors n + (m + 0) = n + m et (n + m) + 0 = n + m, d’où l’égalité.
◦ supposons la proposition pour k, alors
n + (m + S k) = n + S (m + k)
= S (n + (m + k))
= S ((n + m) + k)
= (n + m) + S k
124 Chapitre 6. Formaliser les mathématiques

D’où le résultat par récurrence.


L’ensemble des propriétés confère à (N, 0, 1, +, ×) une structure de demi-anneau intègre.

Exercice 6.2.1.4. Démontrer les autres propriétés non démontrées ci-dessus.

La relation ≤ est aussi définissable grâce à notre langage ensembliste.

Définition 6.2.1.5 (Inégalité). On définit la relation ≤⊆ N × N par :

n ≤ m ≜ ∃k ∈ N, m = n + k

Propriété 6.2.1.6. La relation ≤ est une relation d’ordre.

Démonstration. Prouvons que la relation est réflexive, antisymétrique et transitive :


• soit n ∈ N, alors n = n + 0, d’où n ≤ n.
• soient n, m ∈ N, supposons que n ≤ m et m ≤ n. On trouve alors k, k ′ tels que
n = m + k et m = n + k ′ . En substituant la deuxième inégalté dans la première, on
obtient alors

n = (n + k ′ ) + k
= n + (k ′ + k)
n + 0 = n + (k ′ + k)
0 = k + k′ par régularité de +

d’où 0 = k, donc n = m.
• soient n, m, p ∈ N tels que n ≤ m et m ≤ p. On trouve donc k, k ′ tels que m = n + k
et p = m + k ′ . Par substitution, on en déduit que p = (n + k) + k ′ , et par associativité
p = n + (k + k ′ ), d’où n ≤ p.
Ainsi, ≤ est une relation d’ordre.

6.2.2 Les entiers relatifs


Nous allons maintenant construire les entiers relatifs, dont l’ensemble est noté Z, avec
la construction classique : on cherche à transformer le monoïde (N, 0, +) en un groupe.
Cette construction se généralise en fait en une construction sur n’importe quel monoïde
commutatif.
Nous allons donc voir d’abord la construction de Z, puis la construction plus générale
du symétrisé d’un monoïde commutatif.
L’ensemble Z sera vu comme un quotient de l’ensemble N × N. L’idée est de considérer
une paire (n, m) comme l’entier n − m. On voit alors que pour avoir (n, m) = (p, q), il faut
et il suffit que n − m = p − q, c’est-à-dire que n + q = p + m. Cela motive la définition de
notre relation ∼.

Définition 6.2.2.1 (Congruence additive). On définit la relation binaire ∼ sur N × N


par :
(n, m) ∼ (p, q) ≜ n + q = p + m

Proposition 6.2.2.2. La relation ∼ est une relation d’équivalence.

Démonstration. On vérifie les axiomes d’une relation d’équivalence :


6.2. Construction des autres ensembles de nombres 125

• on voit que n + m = n + m donc (n, m) ∼ (n, m).


• supposons que (n, m) ∼ (p, q), alors n + q = p + m, donc par symétrie de l’égalité
p + m = n + q, donc (p, q) ∼ (n, m).
• supposons que (n, m) ∼ (p, q) et (p, q) ∼ (r, s). On sait donc que n + q = p + m
et p + s = r + q. En ajoutant r de chaque côté dans la première équation et en
réordonnant les termes, on a alors

n + (r + q) = p + m + r

d’où n + p + s = p + m + r donc, par régularité, n + s = r + m. Donc (n, m) ∼ (r, s).


Ainsi ∼ est une relation d’équivalence.

Pour simplifier nos constructions, nous allons maintenant introduire la notion de


congruence.

Définition 6.2.2.3 (Congruence). Soit (X, ⋆) un magma. On appelle congruence une


relation d’équivalence ∼⊆ X × X telle que

∀x, y, x′ , y ′ ∈ X, x ∼ x′ ∧ y ∼ y ′ =⇒ x ⋆ y ∼ x′ ⋆ y ′

Une congruence nous permet de définir directement une opération sur l’ensemble
quotient.

Proposition 6.2.2.4. Soit (X, ⋆) un magma et ∼ une congruence sur (X, ⋆). Alors il existe
une unique opération de magma ⋆′ définie sur X/ ∼ vérifiant

∀x, y ∈ X, x ⋆ y = x ⋆′ y

Démonstration. Le fait qu’il existe au plus une telle opération découle directement du
fait que la propriété définit l’opération ⋆′ . On veut donc montrer que l’opération est bien
définie : soient x, x′ , y, y ′ ∈ X tels que x ∼ x′ et y ∼ y ′ , alors comme ∼ est une congruence,
on en déduit que x ⋆ y ∼ x′ ⋆ y ′ , donc que

x ⋆′ y = x′ ⋆′ y ′

c’est-à-dire que le résultat de ⋆′ ne dépend pas du représentant choisi.

Exercice 6.2.2.5. Montrer que si les propriétés suivantes sont vraies pour (X, ⋆) alors
elles le sont aussi pour (X/ ∼, ⋆′ ) :
• associativité
• commutativité
• existence d’un élément neutre
• existence d’un inverse
• régularité à gauche (respectivement à droite)

En revenant sur le cas de notre construction de Z, on voit que N × N peut être


muni d’une structure de monoïde en considérant l’addition coordonnée par coordonnée :
(n, m) + (p, q) = (n + p, m + q). Il se trouve que ∼ est une congruence sur cette opération.

Proposition 6.2.2.6. ∼ est une congruence sur N × N avec la structure de monoïde


coordonnée par coordonnée.
126 Chapitre 6. Formaliser les mathématiques

Démonstration. Il s’agit d’une simple vérification : supposons que (n, m) ∼ (n′ , m′ ) et que
(p, q) ∼ (p′ , q ′ ), alors (n + p, m + q) ∼ (n′ + p′ , m′ + q ′ ) :

n + p + m′ + q ′ = (n + m′ ) + (p + q ′ )
= (n′ + m) + (p′ + q)
= n′ + p ′ + m + q

Ainsi, en notant Z = (N×N)/ ∼, on a défini une opération + lui conférant une structure
de monoïde commutatif. Il nous reste à prouver que c’est en fait un groupe abélien.

Proposition 6.2.2.7. (Z, +) est un groupe abélien.

Démonstration. Soit x ∈ Z, par définition on trouve n, m ∈ N tels que x = (n, m), et on


pose −x = (m, n). On montre que x + (−x) ∼ (0, 0). Par définition,

x + (−x) = (n + m, m + n)

et n + m + 0 = 0 + m + n, donc (n, n) = (0, 0), d’où le résultat.

On s’attarde maintenant à la structure multiplicative de Z.

Définition 6.2.2.8. On définit sur N × N l’opération × par

(n, m) × (p, q) = (n × p + m × q, m × p + n × q)

et × est définie sur Z par passage au quotient de cette opération par ∼.

Exercice 6.2.2.9. Montrer que ∼ est bien une congruence pour ×.

Exercice 6.2.2.10. Montrer que (Z, 0, +, 1, ×) est un anneau.

On montre qu’on peut injecter le demi-anneau (N, 0, +, 1, ×) dans l’anneau (Z, 0, +, 1, ×).

Proposition 6.2.2.11. La fonction

ι : N −→ Z
n 7−→ (n, 0)

est un morphisme de demi-anneau injectif.

Démonstration. On vérifie chaque axiome :


• pour tous n, m ∈ N :

ι(n) + ι(m) = (n, 0) + (m, 0)


= (n + m, 0 + 0)
= ι(n + m)

• pour tous n, m ∈ N :

ι(n) × ι(m) = (n, 0) × (m, 0)


= (n × m + 0, 0 + 0) = (n × m, 0)
= ι(n + m)
6.2. Construction des autres ensembles de nombres 127

• le neutre de l’anneau Z est (1, 0), qui est bien ι(1).


• si ι(n) = ι(m), alors (n, 0) = (m, 0), donc (n, 0) ∼ (m, 0), c’est-à-dire n = m.
On en déduit que ι est un morphisme de demi-anneau injectif.

Enfin, sur Z, on peut caractériser les éléments comme des entiers naturels ou des
opposés d’entiers naturels.

Proposition 6.2.2.12. Pour tout k ∈ Z, il existe n ∈ N tel que soit k = ι(n), soit
k = (−ι(1)) × ι(n), que l’on écrira plus rapidement k = n (respectivement k = −n).

Démonstration. Soit k ∈ Z. Par définition, on trouve n, m ∈ N tels que k = (n, m). Comme
≤ est total, on sait que soit n ≤ m, soit m ≤ n. Deux cas se présentent alors :
• si n ≤ m, alors m = (m − n) + n, donc k = (0, m − n), nous donnant k = (−ι(1)) ×
ι(m − n).
• si m ≤ n, alors n = (n − m) + m, donc k = (n − m, 0), nous donnant k = ι(n − m).
D’où le résultat.

Passons maintenant à la construction générale sur un monoïde commutatif.

Définition 6.2.2.13. Soit (M, ⋆, e) un monoïde commutatif. On définit sur M × M muni


des opérations coordonnée par coordonnée la congruence suivante :

(m, m′ ) ∼ (a, a′ ) ≜ ∃k ∈ M, m ⋆ a′ ⋆ k = m′ ⋆ a ⋆ k

On appelle symétrisé de (M, ⋆, e) le groupe abélien obtenu à partir de M × M par


quotient par ∼.

Démonstration. Montrons que ∼ est une congruence :


• ∼ est réflexive : pour (m, m′ ), on a m ⋆ m′ ⋆ e = m ⋆ m′ ⋆ e.
• ∼ est symétrique par symétrie de l’égalité.
• ∼ est transitive : supposons qu’on a (m, m′ ) ∼ (a, a′ ) ∼ (b, b′ ) et montrons qu’alors
(m, m′ ) ∼ (b, b′ ). D’après les définitions, on trouve k, k ′ ∈ M tels que
(
m ⋆ a′ ⋆ k = m′ ⋆ a ⋆ k
a ⋆ b′ ⋆ k ′ = a′ ⋆ b ⋆ k ′

En « additionnant » les deux lignes, on obtient

m ⋆ (a ⋆ a′ ⋆ k ⋆ k ′ ) ⋆ b′ = m′ ⋆ (a ⋆ a′ ⋆ k ⋆ k ′ ) ⋆ b

d’où le résultat en prenant k ′′ = a ⋆ a′ ⋆ k ⋆ k ′ .


• ∼ est une congruence : supposons que (m, m′ ) ∼ (a, a′ ) et (n, n′ ) ∼ (b, b′ ), alors
(m ⋆ n, m′ ⋆ n′ ) ∼ (a ⋆ b, a′ ⋆ b′ ). En effet, si on considère k, k ′ ∈ M tels que
(
m ⋆ a′ ⋆ k = m′ ⋆ a ⋆ k
n ⋆ b ′ ⋆ k ′ = n′ ⋆ b ⋆ k ′

alors on obtient en « additionnant » les deux lignes

(m ⋆ n) ⋆ (a′ ⋆ b′ ) ⋆ (k ⋆ k ′ ) = (m′ ⋆ n′ ) ⋆ (a ⋆ b) ⋆ (k ⋆ k ′ )

nous donnant le résultat en prenant k ′′ = k ⋆ k ′ .


128 Chapitre 6. Formaliser les mathématiques

On en déduit que ∼ est une congruence. Ainsi le symétrisé est un monoïde commutatif.
Il nous reste à prouver que c’est un groupe. Soit (m, m′ ) un élément du symétrisé. On
définit son inverse par (m′ , m) :

(m, m′ ) ⋆ (m′ , m) = (m ⋆ m′ , m′ ⋆ m)

or (m, m) ∼ (e, e) assez directement, d’où le fait que leur produit vaut (e, e), le neutre du
symétrisé.

Remarque 6.2.2.14. On ajoute dans notre définition de ∼ un terme k : celui-ci est


nécessaire pour le cas où notre monoïde n’est pas régulier. On voit en effet que ce k absorbe
le terme a ⋆ a′ pour la transitivité.

Exercice 6.2.2.15. Soit M un monoïde commutatif et A son symétrisé. Montrer que la


fonction
ι : M −→ A
m 7−→ (m, e)
est un morphisme de monoïde.

Exercice 6.2.2.16. Soit M un monoïde commutatif et A son symétrisé. Montrer que pour
tout groupe G et tout morphisme de monoïde f : M → G il existe un unique morphisme
de groupe fˆ : A → G tel que f = fˆ ◦ ι, ce que l’on peut représenter par le fait que tout
diagramme comme suit peut être complété en un diagramme commutatif :
f
M G

ι

6.2.3 Les nombres rationnels


Nous avons vu comment construire les nombres entiers en tant que cas particulier de
symétrisation : Z est N auquel on a ajouté des inverses pour la loi +. Pour le cas de Q, on
va montrer qu’on peut construire cet ensemble comme cas particulier du procédé dit de
localisation, qui permet d’inverser pour la loi × dans un anneau. Comme précédemment,
on commence par construire le cas particulier de Q et sa structure de corps avant d’étudier
le cas plus général de la localisation.
Si la construction de Z peut paraître assez difficile à visualiser au début, celle de Q
sera au contraire très naturelle : elle consiste simplement à étudier les fractions. On sait en
p
effet manipuler les fractions comme des « couples » de la forme où plusieurs règles nous
q
permettent de transformer un couple en un autre. Ces règles peuvent se synthétiser en

p p′
= ′ ≜ p × q ′ = p′ × q
q q

Á partir de là, le procédé est très similaire au précédent : on considère cela comme
une relation d’équivalence sur des couples, et on en déduit la construction du corps des
fractions.

Définition 6.2.3.1. On définit la relation d’équivalence ∼ sur Z × (N \ {0}) par :

(p, q) ∼ (p′ , q ′ ) ≜ p × q ′ = p′ × q
6.2. Construction des autres ensembles de nombres 129

Démonstration. On vérifie que cela définit bien une relation d’équivalence :


• pour tout (p, q), p × q = p × q donc (p, q) ∼ (p, q).
• pour tous (p, q) ∼ (p′ , q ′ ), la symétrie de l’égalité nous fait déduire que (p′ , q ′ ) ∼ (p, q).
• si (p, q) ∼ (p′ , q ′ ) ∼ (p′′ , q ′′ ), alors on sait que
(
p × q ′ = p′ × q
p′ × q ′′ = p′′ × q ′

si l’un des nombres parmi p, p′ , p′′ est nul, alors tous les autres le sont (puisque q, q ′ , q ′′
sont tous les trois non nuls). On en déduit donc qu’on peut simplifier (puisque Z est
un anneau intègre) le produit des deux lignes par q ′ × p′ , nous donnant :

p × q ′′ = p′′ × q

donc (p, q) ∼ (p′′ , q ′′ ).


Donc ∼ est une relation d’équivalence.

Exercice 6.2.3.2. Montrer qu’on peut munir Z × (N \ {0}) d’une structure d’anneau en
définissant les opérations

(p, q) + (p′ , q ′ ) ≜ (p × q ′ + p′ × q, q × q ′ ) (p, q) × (p′ , q ′ ) ≜ (p × p′ , q × q ′ )

Cette structure passe au quotient par ∼, ce qui nous donnera la structure souhaitée
pour Q.

Proposition 6.2.3.3. La relation ∼ est une congruence pour les deux opérations définies
dans l’exercice 6.2.3.2.

Démonstration. Soient (p, q) ∼ (p′ , q ′ ) et (r, s) ∼ (r′ , s′ ), montrons les deux relations

(p × s + q × r, q × s) ∼ (p′ × s′ + q ′ × r′ , q ′ × s′ ) (p × r, q × s) ∼ (p′ × r′ , q ′ × s′ )

la seconde relation est la plus facile à montrer : cela revient à l’égalité

p × r × q ′ × s ′ = q × s × p′ × r ′

mais on sait que p × q ′ = p′ × q et que r × s′ = t′ × s, ce qui nous donne directement le


résultat en multipliant les deux égalités entre elles.
Pour la première relation, celle-ci revient à montrer l’égalité

(p × s + q × r) × q ′ × s′ = (p′ × s′ + q ′ × r′ ) × q × s

ce qui, par distributivité, donne

p × q ′ × s × s′ + r × q × q ′ × s′ = p′ × q × s × s′ + r′ × q × q ′ × s

or p × q ′ = p′ × q et r × s′ = r′ × s, donnant le résultat en multipliant les équations


respectivement par s × s′ et par q × q ′ , puis en les additionnant.
p
Notation 6.2.3.4. On notera p/q ou pour noter (p, q).
q
On peut donc définir Q : c’est l’anneau quotient obtenu à partir de ∼. On montre
maintenant que cet anneau est un corps.
130 Chapitre 6. Formaliser les mathématiques

Proposition 6.2.3.5. (Q, 0, +, 1, ×) est un corps.


Démonstration. On a déjà prouvé qu’on avait un anneau commutatif, il nous reste à
montrer que c’est un corps. Pour cela, soit p/q ∈ Q non nul. Cela signifie en particulier
que p ̸= 0. Si p > 0, alors on définit l’inverse de p/q par q/p, et on voit que
p p pq
× = =1
q q pq
Si p < 0, alors on définit l’inverse de p/q par (−q)/(−p), et on trouve alors
p −q −pq
× = =1
q −p −pq
Dans les deux cas, si r ∈ Q est non nul, alors il est inversible pour ×.

Exercice 6.2.3.6. Montrer que la fonction


ι : Z −→ Q
k 7−→ k1
est un morphisme d’anneau injectif.
Ainsi Q peut se voir comme le plus petit corps contenant Z, voire comme le plus petit
corps contenant N.
On passe maintenant au cas général. Tout d’abord, on peut voir que la construction
ne demande, pour être effectuée, que d’avoir une partie stable par × dans Z. Si l’on
imagine prendre l’ensemble {2n | n ∈ N}, par exemple, on peut vérifier que la construction
précédente donne encore une structure, qui ne sera cependant pas un corps : ce sera un
anneau contenant Z dans lequel chaque élément de {2n | n ∈ N} devient inversible. C’est
ce procédé qu’on appelle localisation.
Définition 6.2.3.7. Soit A un anneau commutatif intègre. On considère une partie S ⊆ A
close par produit, c’est-à-dire telle que
∀x, y ∈ S, x × y ∈ S
On définit la relation ∼S sur A × S par
(a, s) ∼ (a′ , s′ ) ≜ a × s′ = a′ × s
Proposition 6.2.3.8. ∼S est une congruence pour les opérations
(a, s) + (a′ , s′ ) ≜ (a × s′ + a′ × s, s × s′ ) (a, s) × (a′ , s′ ) ≜ (a × a′ , s × s′ )
Démonstration. On montre les différents axiomes :
• pour tout (a, s), on a a × s = a × s donc (a, s) ∼ (a, s).
• la symétrie vient de celle de l’égalité.
• si (a, s) ∼ (a′ , s′ ) ∼ (a′′ , s′′ ), alors (a, s) ∼ (a′′ , s′′ ). En effet, l’hypothèse nous dit que
(
a × s′ = a′ × s
a′ × s′′ = a′′ × s′
d’où, en multipliant les deux lignes :
a × (s′ × a′ ) × s′′ = a′′ × (s′ × a′ ) × s
si l’un parmi a, a′ , a′′ est nul, les trois sont nuls et le résultat est direct. Sinon, par
intégrité, on peut simplifier la multiplication par s′ × a′ , nous donnant a × s′′ = a′′ × s,
donc (a, s) ∼ (a′′ , s′′ ).
6.2. Construction des autres ensembles de nombres 131

• si (a, s) ∼ (a′ , s′ ) et (b, t) ∼ (b′ , t′ ), pour montrer que (a, s) × (b, t) ∼ (a′ , s′ ) × (b′ , t′ ),
il nous faut montrer l’égalité

(a × t + b × s) × s′ × t′ = (a′ × t′ + b′ × s′ ) × s × t

et le raisonnement donné plus tôt dans le cas de Q fonctionne encore.


• si (a, s) ∼ (a′ , s′ ) et (b, t) ∼ (b′ , t′ ), on veut montrer que

a × b × s′ × t′ = a′ × b′ × s × t

ce qui se déduit directement des hypothèses.


Ainsi ∼ est bien une congruence pour les opérations considérées.

On peut alors montrer que A/ ∼, qu’on note en général S −1 A, contient A et des


inverses pour chaque élément de S. En réalité, on peut construire la localisation sans avoir
l’intégrité, en prenant une définition analogue à celle où on ajoute k dans la définition de
la symétrisation.

6.2.4 Les nombres réels


Nous abordons notre dernière construction avec celle des réels. Il existe deux construc-
tions classiques de R : celle par suites de Cauchy et celle par coupures de Dedekind. Comme
nous avons abordé la complétion dans le cadre général dans le chapitre 5, nous allons étudier
ici la construction par les coupures de Dedekind, qui se base sur la structure ordonnée de
Q. Plutôt que de simplement donner la construction historique de [Ded72], nous adoptons
une construction adaptée de la complétion idéale, présentée par exemple dans [AC98].
La relation ≤, en effet, peut s’étendre de N à Z puis à Q, conférant à Q une structure
de corps ordonné. Il nous faut donc commencer par donner les définitions d’ordre sur Z et
Q:

Définition 6.2.4.1. On définit sur Z la relation ≤ par :

a≤b≜b−a∈N

où N est identifié à ι(N) ⊆ Z.

Exercice 6.2.4.2. Montrer que ≤ est une relation d’ordre totale compatible avec l’addition,
c’est-à-dire que pour tous a ≤ b et c ≤ d, on a a + c ≤ b + d. Montrer de plus que si a ≥ 0 et
b ≥ 0 alors a × b ≥ 0. La structure (Z, 0, +, 1, ×, ≤) est alors appelée un anneau totalement
ordonné.

Définition 6.2.4.3. On définit la partie de Q suivante :

p
 
Q+ ≜ | p, q ∈ N
q

On définit alors la relation ≤ sur Q par :

r ≤ s ≜ s − r ∈ Q+

Exercice 6.2.4.4. Montrer que (Q, 0, +, 1, ×, ≤) est aussi un anneau totalement ordonné.
On dit alors que c’est un corps totalement ordonné.
132 Chapitre 6. Formaliser les mathématiques

De plus, toutes ces structures ordonnées ont la propriété d’être archimédiennes, ce qui
signifie que Z et Q vérifient la proposition suivante :
∀k ∈ A, ∃n ∈ N, n ≥ k
On veut désormais compléter Q, ce qui signifie moralement qu’on veut supprimer tous
les trous que contient cet ensemble. Dans le contexte des suites de Cauchy, cela signifie
qu’on veut qu’une suite de Cauchy, devant converger en terme d’à quel point ses points se
rapprochent, doit converger effectivement vers un point donné. Dans le contexte de l’ordre,
la notion naturelle de limite est celle de borne supérieure ou inférieure. On peut voir cela
par exemple avec l’intervalle (0, 1) : il ne contient ni 0 ni 1, mais on pense à 1 comme à un
point limite de l’intervalle. Pour une suite croissante, d’ailleurs, la limite coïncide avec la
borne supérieure (dans R).
On souhaite donc ajouter à notre ensemble Q toutes les bornes supérieures de parties
de Q. Une construction générale de théorie des ordres existe pour cela : c’est la complétion
idéale. Elle consiste à étudier, à la place d’un ensemble ordonné (X, ≤), l’ensemble I(X) de
ses idéaux muni de l’inclusion. La construction des coupures de Dedekind est très proche,
mais considère au lieu des idéaux des paires (L, U ) d’un idéal et d’un filtre. Dans notre cas,
nous allons traiter le cas général de la complétion idéale plutôt que la version historique
des coupures de Dedekind.
Notre présentation sera un entre deux : nous donnons une construction similaire à
celle de la complétion idéale pour les ordres partiels complets, mais nous nous plaçons
directement dans le cadre des ordres totaux. On parle donc d’ordre total complet, et
on considère une variante qui nous rapproche directement de la propriété de la borne
supérieure, qu’on veut vérifier dans R.
Définition 6.2.4.5 (Ordre total complet). On dit qu’un ensemble totalement ordonné
(X, ≤) est complet si toute partie non vide majorée admet une borne supérieure et toute
partie minorée non vide admet une borne inférieure.
Notre objectif est donc, à partir de (Q, ≤), de construire l’ensemble ordonné (R, ≤) qui
est complet et contient, en un sens, Q. On veut donc « ajouter les bornes supérieures »
de Q, les bornes inférieures en étant conséquences du fait que x 7→ −x envoie les bornes
supérieures sur les bornes inférieures et inversement (on le verra après notre construction).
Partons d’une remarque essentielle : les bornes supérieures existent toujours quand on
étudie des ensembles d’ensembles, grâce à l’union. Cela nous motive à plonger Q dans un
ensemble d’ensembles. En l’occurrence, il existe une façon assez naturelle d’associer une
partie de Q à un rationnel r : il suffit de considérer l’ensemble {r′ ∈ Q | r′ ≤ r}. Cette
association tient compte de l’ordre, ce qui est souhaité vu notre objectif.
On veut donc caractériser les parties qui se comportent comme celle définie plus haut.
Une propriété évidente est qu’une telle partie est close par le bas, par transitivité de l’ordre
≤. Une telle partie est aussi non vide, dans le cas de Q, puisque Q n’est pas minoré. Elle
n’est pas non plus l’ensemble tout entier. Ces conditions sont exactement celles définissant
un idéal dans un ensemble totalement ordonné (car la propriété à propos de ∧ est alors
automatiquement vérifiée), et ne pas être Q signifie être un idéal propre.
Cependant, on voit que deux idéaux peuvent sembler coder le même rationnel : {q < 2}
et {q ≤ 2} sont des idéaux et ont la même borne supérieure, ce qui est un problème dans
notre cas. Pour arranger cela, on ajoute qu’une partie ayant une borne supérieure doit la
contenir.
Définition 6.2.4.6 (Complétion idéale). Soit (X, ≤) un ensemble totalement ordonné.
On appelle complétion idéale l’ensemble I(X) ⊆ P(X) défini par le fait que Y ∈ I(X) si
et seulement si :
6.2. Construction des autres ensembles de nombres 133

• pour tout x, y ∈ X, si x ≤ y et y ∈ Y alors x ∈ Y .


• Y ̸= ∅
• Y ̸= X
Y ∈Y.
W W
• si Y existe, alors
muni de l’inclusion comme ordre.

Remarque 6.2.4.7. On aurait aussi pu caractériser cet ensemble comme l’ensemble des
idéaux de X fermés pour la topologie de l’ordre, qui est la topologie engendrée par les
intervalles ouverts, c’est-à-dire de la forme {x ∈ X | y < x < z} pour y, z ∈ X.

On peut alors montrer que (I(X), ⊆) est un ordre total complet.

Proposition 6.2.4.8. Soit (X, ≤) un ordre totalement ordonné non majoré. Alors (I(X), ⊆)
est un ordre total complet.

Démonstration. On souhaite d’abord montrer que cet ordre est total. Soient Y, Z ∈ I(X),
Y ≠ Z. Par définition, on trouve x ∈ Y ∆Z. Par symétrie du rôle de Y et Z, on suppose
sans perte de généralité que x ∈ Y . Alors pour tout z ∈ Z, si x ≤ z on aurait x ∈ Z
puisque Z est clos par le bas. Donc, comme x ∈ Y \ Z, on en déduit que x ≤ z est faux.
Comme l’ordre est total, on en déduit que z ≤ x, donc par clôture par le bas de Y que
z ∈ Y . En conclusion, Z ⊆ Y , donc l’ordre est total.
Soit maintenant une partie A ⊆ I(X) non vide majorée, on construit la borne supérieure
S
de A en deux temps. On pose d’abord B = A. Si B admet une borne supérieure (dans X),
alors on considère comme borne supérieure de A l’ensemble B ∪ { B}, sinon on considère
W

simplement B. On note cet ensemble C. On vérifie que C ∈ I(X) :


• soient x, y ∈ X tels que x < y et y ∈ C. Si y = B, alors comme x < B, on en
W W

déduit qu’il existe z ∈ B tel que x < z, et par définition de z ∈ B on trouve Z ∈ A


tel que z ∈ Z, donc x ∈ Z, donc x ∈ B. Si y ∈ B, alors on trouve Z ∈ A tel que
y ∈ Z et on en déduit que x ∈ Z, donc que x ∈ B.
• comme A ̸= ∅, on trouve Y ∈ A, et Y ̸= ∅ donc on trouve y ∈ Y , on en déduit que
y ∈ C, donc que C ̸= ∅.
• comme A est majorée, on trouve Y ∈ I(X) tel que pour tout z ∈ C, z ∈ Y . Comme
Y ̸= X, on trouve x ∈ X \ Y , et par totalité de ≤ on en déduit que x est un
majorant de Y , c’est de plus un majorant strict puisque la borne supérieure de Y
doit appartenir à Y . On remarque que C ⊆ Y , donc x ∈/ C, donc C ̸= X.
W W
• si C existe, alors par construction c’est B qui est un élément de C.
Donc C ∈ I(X).
On montre maintenant que c’est la borne supérieure de A :
• C contient l’union de A donc pour tout Y ∈ A, Y ⊆ C.
• soit Z ∈ I(X) tel que pour tout Y ∈ A, Y ⊆ Z. Alors B ⊆ Z, il nous faut donc
montrer que si B existe alors B ∈ Z. Supposons que cet élément existe et qu’il
W W

n’appartient pas à Z. Alors il est un majorant de Z. Soit z un autre majorant de Z,


alors si z < B, on en déduit qu’il existe Y ∈ A tel que z ∈ Y , donc z ∈ Z, donc z
W
W
est le maximum de Z, qui est une borne supérieure : on en déduit que B = z, donc
que B ∈ Z, ce qui est absurde. Ainsi B ∈ Z, donc C ⊆ Z.
W W

Ainsi C est le plus petit majorant de A, donc C est la borne supérieure de A dans (I(X), ⊆).
Le cas des bornes inférieures est laissé en exercice.
134 Chapitre 6. Formaliser les mathématiques

Exercice 6.2.4.9. Montrer qu’une partie minorée non vide A possède une borne inférieure
dans (I(X), ⊆). Indication : on considère comme candidat de cette borne inférieure de A
T
l’ensemble A.

Exercice 6.2.4.10. Soit (X, ≤) un ensemble totalement ordonné non majoré. Montrer que
tout Y ∈ I(X) est majoré dans X.

Remarque 6.2.4.11. On peut noter la différence de traitement de la borne supérieure de


l’idéal entre l’intersection et l’union. La raison à cela peut s’interpréter de façon topologique :
nous imposons à nos idéaux d’être des fermés, donc considérer l’union nous demande de
prendre ensuite l’adhérence (qui correspond dans notre cas à ajouter la borne supérieure)
là où la stabilité par intersection est assurée.

On veut aussi montrer que I(X) est un prolongement, en un sens, naturel, de X. Cela
se traduit par deux faits : on peut plonger X dans I(X), et I(X) est le plus petit ensemble
contenant X et étant stable par sups de parties bornées non vides.

Proposition 6.2.4.12. Soit (X, ≤) un ensemble totalement ordonné non majoré. La


fonction
ι : X −→ I(X)
x 7→ {y ∈ X | y ≤ x}
est une fonction strictement croissante.

Démonstration. Montrons d’abord que la fonction est bien définie, c’est-à-dire que pour
tout x ∈ X, ι(x) est bien un élément de I(X) :
• si y, z ∈ X tels que y ≤ z et z ∈ ι(x), alors z ≤ x donc y ≤ x par transitivité, donc
y ∈ ι(x).
• x ∈ ι(x) donc ι(x) ̸= ∅.
• X n’est pas majoré, donc on trouve y > x, ce qui signifie que y ∈
/ ι(x), donc ι(x) ̸= X.
ι(x) = x et x ∈ ι(x) donc la borne supérieure de ι(x) existe et appartient bien à
W

ι(x).
On en déduit que ι est bien définie.
Si x < y alors pour tout z ∈ ι(x), z ≤ x donc par transitivité z ≤ y, donc z ∈ ι(y). De
plus, y ∈
/ ι(x) et y ∈ ι(y) donc ι(x) ⊊ ι(y). ι est donc strictement croissante.

Remarque 6.2.4.13. On peut utiliser ce résultat pour prouver que I(X) n’est pas majoré.
En effet, s’il l’était, alors son majorant contiendrait tous les ι(x) pour x ∈ X, donc tout
X, ce qui n’est pas possible. En réalité, on pourrait simplement considérer l’ensemble des
idéaux et non l’ensemble des idéaux propres (un idéal est propre s’il est différent de X),
mais dans notre construction de R cela introduirait un point à l’infini.

Lemme 6.2.4.14. Soit (X, ≤) un ensemble totalement ordonné. Alors pour tout Y ∈ I(X),
on a l’égalité [
Y = ι(x)
x∈Y

Démonstration. On prouve ce résultat par double inclusion :


[
• pour tout x ∈ Y , comme Y est clos par le bas, ι(x) ⊆ Y , donc ι(x) ⊆ Y .
x∈Y
[
• on sait que x ∈ ι(x), donc pour tout x ∈ Y , x ∈ ι(x).
x∈Y
6.2. Construction des autres ensembles de nombres 135

D’où le résultat par double inclusion.

Théorème 6.2.4.15 (Propriété universelle de la complétion idéale). Soit (X, ≤)


un ensemble totalement ordonné non majoré. Soit (Y, ≤) un ensemble totalement ordonné
complet et f : X → Y une fonction croissante préservant les bornes inférieures et supérieures.
Il existe une unique fonction fˆ : I(X) → Y qui préserve les bornes supérieures et les bornes
inférieures et telle que f = fˆ ◦ ι.
Démonstration. On procède par analyse-synthèse :
• si une telle fonction fˆ existe, alors par définition, on sait que pour tout x ∈ X,
fˆ(ι(x))
[ = f (x). De plus, par le lemme 6.2.4.14, on sait que pour tout Y ∈ ι(x),
Y = ι(x), donc par préservation des bornes supérieures on en déduit que
x∈Y

fˆ(Y ) =
_
f (x)
x∈Y

ce qui définit de façon unique fˆ.


• Montrons que notre candidat fˆ est une fonction croissante qui préserve les bornes
supérieures et inférieures :
◦ Tout d’abord, si Y ⊆ Z, comme la borne supérieure est croissante pour l’inclusion,
on en déduit que f (Y ) ≤ f (Z), d’où fˆ(Y ) ≤ fˆ(Z).
W W

◦ Soit A ⊆ I(X) admettant une borne supérieure, qu’on note a. On a vu que


S
cette borne supérieure est A, en ajoutant si nécessaire la borne supérieure
S
(dans X) de A, ce qui nous donne donc

fˆ(a) =
_
f (x)
x∈a

on veut montrer que cette valeur est la borne supérieure de fˆ(A). Comme la
borne supérieure est croissante vis à vis de l’inclusion, on sait déjà que fˆ(a) est
un majorant de fˆ(A). Soit b un majorant de fˆ(A), cela signifie que pour tout
Y ∈ A, x∈Y f (x) ≤ b, donc pour tout x ∈ A, f (x) ≤ b. Il nous reste donc, si
W S

a existe, à montrer que f ( a) ≤ b. Mais cela est dû au fait que f préserve les
W W

bornes supérieures.
◦ Le cas de la borne inférieure est laissé en exercice.
Ainsi il existe une unique fonction fˆ vérifiant les conditions imposées.

Exercice 6.2.4.16. Montrer que fˆ préserve bien les bornes inférieures.


Remarque 6.2.4.17. On peut représenter la propriété précédente par le fait qu’il existe
une unique flèche fˆ faisant commuter le diagramme suivant :
f
X Y

ι

I(X)

On peut donc construire l’ensemble ordonné (R, ≤), mais nous souhaitons aussi définir
les opérations sur cet ensemble. Pour l’addition, nous avons besoin d’un simple lemme
car l’addition est compatible avec l’ordre de Q. Cependant, il nous est ici nécessaire de
supposer un résultat proche d’une caractérisation de la borne supérieure, dans le cas où
cette borne n’existe pas forcément.
136 Chapitre 6. Formaliser les mathématiques

Lemme 6.2.4.18. Soit (X, +, ≤) un groupe abélien non majoré où + est compatible avec
≤. On suppose de plus que pour tout Y ∈ I(X) et x > 0, il existe un élément y ∈ Y tel
que y + x est un majorant strict de Y . Alors l’ensemble ordonné (I(X), ⊆) peut être muni
de la loi de composition interne + définie par :

Y + Z ≜ {y + z | y ∈ Y, z ∈ Z}

en ajoutant la borne supérieure de cet ensemble si celle-ci existe dans X. (I(X), +, ⊆) est
alors un groupe abélien et + est compatible avec ⊆.
Démonstration. Soient Y, Z ∈ I(X), montrons que Y + Z ∈ I(X) :
• soient x, x′ ∈ X tels que x ≤ x′ et x ∈ Y + Z. Par définition, si x′ n’est pas la borne
supérieure de Y + Z, on trouve y ∈ Y, z ∈ Z tels que x′ = y + z. Comme x ≤ y + z,
on en déduit que x − z ≤ y par compatibilité de + avec ≤, et comme Y est clos par
le bas, x − z ∈ Y , donc x − z + z ∈ Y + Z, et x − z + z = x, donc x ∈ Y + Z.
Rajouter la borne supérieure à cet ensemble ne change pas la clôture par le bas,
puisque tout élément inférieur à la borne supérieure de Y + Z est inférieur à un
élément de Y + Z. En effet, si x ≤ (Y + Z) et x > a pour tout a ∈ Y + Z, alors x
W

est un majorant de Y + Z donc (Y + Z) ≤ x, donc x = (Y + Z).


W W

• comme Y et Z sont non vides, on trouve y ∈ Y et z ∈ Z. Comme y + z ∈ Y + Z,


Y + Z ̸= ∅.
• Y +Z ≠ X : en utilisant l’exercice 6.2.4.10, on trouve y un majorant de Y et z un
majorant de Z. On sait donc que y + z est un majorant de Y + Z puisque + est
compatible avec ≤. Comme X est supposé non majoré, on peut donc trouver un
élément strictement supérieur à y + z, qui est donc un majorant strict de Y + Z,
donc Y + Z ̸= X.
• le fait d’ajouter la borne supérieure assure que notre ensemble vérifie la dernière
condition.
On vérifie maintenant qu’on a un groupe abélien, en omettant le cas où la borne
supérieure doit être ajoutée dans la somme de deux idéaux :
• pour tous Y, Z, A ∈ I(X), on a

Y + (Z + A) = {y + (z + a) | y ∈ Y, z ∈ Z, a ∈ A}
= {(y + z) + a | y ∈ Y, z ∈ Z, a ∈ A}
= (Y + Z) + A

• en notant 0 le neutre de X, on a pour tout Y ∈ I(X) :

Y + ι(0) = {y + 0 | y ∈ Y }
= {y | y ∈ Y }
=Y

• pour tout Y ∈ I(X), on définit

−Y ≜ X \ {−y | y ∈ Y }

augmenté si besoin de sa borne supérieure. C’est un élément de I(X) :


◦ si x, y ∈ X, x ≤ y et y ∈ −Y , alors on sait que −y ∈
/ Y , et −y ≤ −x. Si −x ∈ Y ,
alors −y ∈ Y par clôture par le bas, donc on en déduit que −x ∈ / Y , donc
x ∈ −Y .
6.2. Construction des autres ensembles de nombres 137

◦ comme Y ̸= X, on trouve y ∈ / Y , et alors −y ∈ −Y , donc −Y ̸= ∅.


◦ comme Y ̸= ∅, on trouve y ∈ Y , et alors −y ∈ / −Y , donc −Y ̸= X.
◦ ajouter la borne supérieure si elle existe assure la dernière condition.
On montre alors que pour tout Y ∈ I(X), on a Y +(−Y ) = ι(0). Soient y ∈ Y, y ′ ∈ −Y ,
si y + y ′ > 0, alors y > −y ′ , donc par clôture par le bas de Y , −y ′ ∈ Y , ce qui est
faux par définition de −Y : il en résulte que y + y ′ ≤ 0, donc que Y + (−Y ) ⊆ ι(0).
Réciproquement, soit x < 0. On sait donc que −x > 0, donc on trouve y ∈ Y
tel que y − x est un majorant strict de Y . On sait donc que x − y ∈ −Y , donc
x = (x − y) + y ∈ Y + (−Y ).
• enfin, + est commutatif : pour tout Y, Z ∈ I(X), on a :

Y + Z = {y + z | y ∈ Y, z ∈ Z}
= {z + y | z ∈ Z, y ∈ Y }
=Z +Y

Ainsi (I(X), +, ⊆) est un groupe abélien ordonné.

On peut donc utiliser ce fait pour munir R de la loi +. Cependant, pour la loi ×, cela
pose un problème : × n’est pas compatible avec ≤ dans Q. Pour contourner ce problème,
on peut définir d’abord × sur R⋆+ : la loi × est en effet compatible avec ≤ sur Q⋆+ et donne
un groupe.

Définition 6.2.4.19 (Ensemble des réels). On définit (R, +, ≤) comme la complétion


idéale de Q. On définit de plus (R⋆+ , ×, ≤) comme la complétion idéale de (Q⋆+ , ×).

Remarque 6.2.4.20. Ces constructions peuvent être définies grâce au fait que Q et Q⋆+
sont non majorés.

Définition 6.2.4.21 (Produit de réels). On définit maintenant le produit de nombres


réels par

 0 si x = 0 ∨ y = 0

 x ×Q+ y si x > 0 ∧ y > 0





x×y ≜ −(x ×Q⋆+ (−y)) si x > 0 ∧ y < 0
−((−x) ×Q⋆+ y) si x < 0 ∧ y > 0





 −((−x) × ⋆ (−y)) si x < 0 ∧ y < 0

Q+

Exercice 6.2.4.22. Montrer que (R, +, ×, ≤) est un corps totalement ordonné.

Corollaire 6.2.4.23. Toute partie non vide majorée (respectivement, minorée) de R admet
une borne supérieure (respectivement, inférieure).

Remarque 6.2.4.24. On aurait pu, au lieu de faire cette disjonction de cas, construire nos
ensembles de nombres dans un ordre plus efficace en vu de la construction par complétion
idéale. En construisant N, puis Q+ (en inversant × dans N⋆ ), on peut directement considérer
le demi-anneau (R, +, ×, ≤) complet, puis le symétriser pour la loi + pour obtenir un corps
totalement ordonné complet.
Cette construction, cependant, demande d’affiner le lemme 6.2.4.18 pour le cas d’un
monoïde régulier, puisque (Q+ , +) n’a pas une structure de groupe.
138 Chapitre 6. Formaliser les mathématiques

Remarque 6.2.4.25. L’autre construction de R n’exige pas de construction ad hoc comme


la disjonction de cas précédente. Elle utilise la complétion par les suites de Cauchy : il
se trouve que si (A, +, ×) est un anneau, alors les suites de Cauchy à valeurs dans A
ont naturellement une structure d’anneau en considérant les opérations termes à termes.
L’ensemble des suites de Cauchy de limite nulle est alors un idéal de cet anneau : on peut
donc directement construire l’anneau quotient. Cette construction de R est plus directe et
plus naturelle depuis Q, mais nous souhaitions traiter de cette autre construction que sont
les coupures de Dedekind (dans une version éloignée de la construction historique).
Chapitre 7
Ordinaux, cardinaux, cofinalité

Table des sous-matières


7.1 Ordinaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.1.1 Description des ordinaux . . . . . . . . . . . . . . . . . . . . . . 140
7.1.2 Induction transfinie . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.1.3 Ordinal de Hartogs et axiome du choix . . . . . . . . . . . . . . . 153
7.2 Cardinaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.2.1 Axiome du choix et dichotomie cardinale . . . . . . . . . . . . . . 155
7.2.2 Nombre cardinal . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.2.3 Arithmétique cardinale . . . . . . . . . . . . . . . . . . . . . . . . 160
7.3 Cofinalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.3.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.3.2 Répartition des cofinalités . . . . . . . . . . . . . . . . . . . . . . 167
7.3.3 Théorème de König . . . . . . . . . . . . . . . . . . . . . . . . . . 168

ans ce chapitre, on s’intéresse aux notions les plus incontournables de la théorie des
D ensembles que sont les ordinaux, les cardinaux et la cofinalité. Ces trois notions sont
bâties l’une sur la suivante : les cardinaux sont une famille spécifique d’ordinaux et la
cofinalité désigne une fonction retournant des cardinaux.
Moralement, les ordinaux forment une hiérarchie d’ensembles canoniques. La classe des
ordinaux est une classe existant dans tout modèle de ZF, et se comporte particulièrement
bien. Cette classe nous permet de comparer des bons ordres, mais nous verrons qu’elle
revêt une importance plus particulière dans le cadre de la théorie des ensembles : elle est
une classe ordonnée arbitrairement grande, et permet donc de considérer des représentants
pour des phénomènes ensemblistes arbitrairement grands. De plus, c’est une classe bien
ordonnée, ce qui signifie qu’on a un principe de choix sur cette classe (si on a un ensemble
de parties d’un bon ordre, on peut prendre le minimum de chaque partie dans l’ensemble),
nous permettant en choisissant des minima d’obtenir des représentants canoniques.
Les cardinaux forment l’exemple le plus évident d’un tel procédé : par défaut, on imagine
un cardinal comme une classe d’équipotence, c’est-à-dire comme l’univers ensembliste U
quotienté par la relation d’équivalence

X ∼ Y ≜ ∃f : X → Y, bij(f )

Le souci, évidemment, est que ces classes ne sont pas des ensembles. Pour le cardinal 1, on
peut par exemple prendre n’importe quel ensemble X et considérer {X}, montrant que tout

139
140 Chapitre 7. Ordinaux, cardinaux, cofinalité

l’univers U peut être injecté dans la classe des ensembles de cardinal 1. La solution adoptée
en théorie des ensembles est de choisir, pour chaque classe, un représentant canonique.
Plutôt que de définir ces classes d’équipotence, on remarque que chaque classe rencontre la
hiérarchie des ordinaux, et on prend alors l’ordinal minimum qui appartient à la classe. Il
reste un souci dans cette définition : est-on sûrs que la classe des cardinaux rencontre la
hiérarchie des ordinaux ? Si l’on admet AC, c’est le cas, comme nous le verrons, mais on
traitera dans ce chapitre plus en détail des implications de l’axiome du choix (on prouvera
en particulier le lemme de Zorn).
Enfin, la cofinalité est une notion, différente de la cardinalité, exprimant à quel point un
ordinal (ou un cardinal) a besoin d’un grand nombre d’étapes pour être parcouru. L’idée
de la cofinalité est assez technique et demande d’être manipulée pour être pleinement
assimilée. Nous verrons ce que sont les cardinaux réguliers et singuliers, et étudierons
quelques conséquences comme le théorème de König.

7.1 Ordinaux
Commençons par donner une présentation informelle motivant la définition des ordinaux.

7.1.1 Description des ordinaux


On rappelle qu’un bon ordre est un ordre tel que toute partie admet un minimum. La
classe des bons ordres est ainsi la classe des ensembles ordonnés (X, <) où < est un bon
ordre sur X. On a par exemple {1} et {2} qui sont deux bons ordres (avec le seul ordre
possible sur un seul élément) : ils sont donc isomorphes, et représentent le même ordre, en
ignorant l’étiquette des éléments ordonnés eux-mêmes.
Dans le but de décrire efficacement la classe des bons ordres, il nous faut donc trouver
un moyen de représenter canoniquement un ensemble bien ordonné. Tout d’abord, pour un
ensemble X quelconque, il peut exister un nombre considérable de bons ordres (souvent
infini), il nous faut donc fixer la relation pour un ensemble donné. En repensant au lemme
de Mostovski, on voit qu’on peut représenter certains ensembles munis de relation par un
ensemble muni de la relation ∈ et le besoin d’expliciter la relation est alors éliminé, puisque
la relation ∈ existe dans la théorie même.
On souhaite donc représenter un ensemble bien ordonné (X, <) par un ensemble X ′
pour lequel le bon ordre est ∈. Comme nous l’avons vu pour le lemme d’effondrement
de Mostovski, un tel représentant existe bien et est unique si l’on choisit le représentant
comme étant transitif. Ainsi tout ensemble bien ordonné est équivalent (on le montrera) à
un unique ensemble transitif bien ordonné pour la relation ∈. Telle est donc notre définition
d’ordinal.
Définition 7.1.1.1 (Ordinal). On dit qu’un ensemble α est un ordinal si :
• α est transitif, c’est-à-dire que ∀x ∈ α, ∀y ∈ x, y ∈ α
• α est strictement bien ordonné pour ∈, c’est-à-dire que ∈ est un ordre strict sur α :

(∀x ∈ α, x ∈
/ x) ∧ (∀x, y, z ∈ α, x ∈ y ∧ y ∈ z =⇒ x ∈ z)

et que toutes ses parties non vides ont un minimum :

∀X ⊆ α, X ̸= ∅ =⇒ ∃x ∈ X, ∀y ∈ X, (x = y ∨ x ∈ y)

On note Ord la classe des ordinaux, qui peut donc être définie par la conjonction des
formules données ci-dessus.
7.1. Ordinaux 141

Remarque 7.1.1.2. On peut aussi décrire le fait d’être un bon ordre par le fait d’être
total et d’être un ordre bien fondé. La propriété d’être bien fondée, en présence de l’axiome
de fondation, est automatiquement vérifiée : un ordinal est alors un ensemble transitif pour
lequel la relation ∈ est totale, c’est-à-dire que x ∈ y ∨ x = y ∨ x ∋ y. Même si l’axiome de
fondation simplifie les preuves, on décide de travailler pour l’instant dans ZF − AF, pour
montrer que toute la construction des ordinaux est possible avec peu d’axiomes.

Exemple. Donnons quelques cas pratiques d’ordinaux :


• 0 est un ordinal.
• Plus généralement, tout entier n = {0, . . . , n − 1} est un ordinal.
• ω, qui est le nom qu’on utilise en théorie des ensembles pour l’ensemble qu’on a
décrété être N, est aussi un ordinal. Les différents axiomes du fait d’être un ordinal
peuvent se prouver par récurrence. C’est aussi le plus petit ordinal infini, puisque
pour tout n ∈ ω, n est fini (nous donnerons plus tard une définition d’être un ordinal
fini).

Notation 7.1.1.3. On désignera un ordinal par une lettre grecque du début de l’alphabet :
α, β, γ, δ, . . .

On donne maintenant trois propriétés basiques sur les ordinaux : Ord est stable par S,
par intersection et l’inclusion entre ordinaux est équivalente à l’appartenance ou l’égalité.

Proposition 7.1.1.4. Soit α un ordinal, alors S α = α ∪ {α} est aussi un ordinal.

Démonstration. On suppose que α est un ordinal et on vérifie les axiomes d’un ordinal
pour S α :
• S α est un ensemble transitif. Soient x ∈ y ∈ S α. Si y = α alors x ∈ α et
S α = α ∪ {α} donc x ∈ S α. Si y ∈ α, alors par transitivité de α on en déduit que
x ∈ α, donc x ∈ S α.
• ∈ est un bon ordre strict sur S α, c’est-à-dire :
◦ ∈ est irréflexif : si x ∈ S α, alors soit x ∈ α soit x = α. Dans le premier cas,
comme ∈ est irréflexif sur α, x ∈ / x. Dans le deuxième cas, si x = α, alors si
x ∈ x, cela signifie que x ∈ α, donc que x ∈ / x, ce qui est absurde.
◦ ∈ est transitif : si x ∈ y ∈ z sont des éléments de S α, alors soit z = α et la
transitivité de α donne le résultat, soit z ∈ α et la transitivité de ∈ dans α
donne le résultat.
◦ soit une partie non vide X ⊆ S α, alors X a un minimum. Si X = {α}, son
minimum est α. Sinon, on en déduit que X ∩ α ̸= ∅, donc on peut considérer,
comme α est un ordinal, le minimum de X \ {α} : le minimum de cet ensemble
est le minimum de X puisque α est plus grand que tous ses éléments.
On en déduit donc que S α est un ordinal.

Proposition 7.1.1.5. Soient α et β deux ordinaux. Alors α ∩ β est aussi un ordinal.

Démonstration. On vérifie les axiomes d’un ordinal pour α ∩ β :


• α ∩ β est transitif. Si x ∈ y ∈ α ∩ β, alors x ∈ y ∈ α et x ∈ y ∈ β, par transitivité
des deux ordinaux, on en déduit que x ∈ α et x ∈ β, donc x ∈ α ∩ β.
• ∈ est un bon ordre sur α ∩ β :
◦ ∈ est irréflexif : si x ∈ α ∩ β, alors x ∈ α donc x ∈
/ x (parce qu’α est un ordinal).
142 Chapitre 7. Ordinaux, cardinaux, cofinalité

◦ ∈ est transitif : si x ∈ y ∈ z sont des éléments de α ∩ β alors en particulier


x ∈ y ∈ z dans α, donc x ∈ z par transitivité de ∈ dans α.
◦ soit X ⊆ α ∩ β non vide. Par définition, X ⊆ α donc on peut trouver un
minimum pour X dans α, notons-le m. Pour montrer que m est un minimum
dans α ∩ β, il suffit de montrer que m ∈ β puisque tout élément de α ∩ β est
élément de α, donc minorer dans α implique de minorer dans α ∩ β. Or, on sait
que X ⊆ α ∩ β, donc, m étant le minimum de X, m ∈ α ∩ β. Donc X a un
minimum.
Ainsi α ∩ β est bien un ordinal.

Proposition 7.1.1.6. Soient α et β deux ordinaux. On suppose que α ⊆ β, alors α ∈ β


ou α = β.

Démonstration. On suppose que α ⊊ β, montrons qu’alors α ∈ β. On sait donc que β \ α


est une partie non vide, soit z ≜ min β \ α. On montre maintenant que z = α par double
inclusion.
Si x ∈ α, alors x ∈
/ β \ α donc x ≠ z. Montrons que x ∈ z. Supposons que z ∈ x. Alors,
comme α est transitif, z ∈ α, mais z ∈ β \ α, ce qui est absurde. Donc x ∈ z, donc α ⊆ z.
Si x ∈ z, alors x ∈
/ β \ α (car z est le minimum de cet ensemble), donc x ∈ α.
Donc α = z et z ∈ β, donc α ∈ β.

La classe Ord est elle-même bien ordonnée pour ∈, ce que l’on prouve dans la proposition
suivante.

Proposition 7.1.1.7 (Paradoxe de Burali-Forti [Bur97]). Les propositions suivantes


sont vraies :
1. si α ∈ β ∈ Ord alors α ∈ Ord.
2. si X ⊆ Ord est non vide, alors X ∈ Ord.
T

3. Ord n’est pas un ensemble.

Démonstration. On vérifie les différentes propositions :


1. α est un ordinal :
• α est transitif : si x ∈ y ∈ α, alors comme β est transitif et α ∈ β, α ⊆ β, donc
x ∈ y ∈ α est vrai pour ∈ restreint à β. Par transitivité de ∈ dans β, x ∈ α.
• ∈ est un bon ordre strict sur α :
◦ ∈ est irréflexif : si x ∈ α alors x ∈ β donc x ∈
/ x puisque β est un ordinal.
◦ ∈ est transitif puisque transitif sur β et α ⊆ β.
◦ si X ⊆ α est non vide, alors X ⊆ β donc X a un minimum pour ∈ : c’est
aussi un minimum pour ∈ dans α.
Donc α est un ordinal.
T
2. X est un ordinal :
X est transitif : si x ∈ y ∈ X, alors pour tout α ∈ X, x ∈ y ∈ α donc par
T T

transitivité de α, x ∈ α, donc x ∈ X.
T

• ∈ est un bon ordre strict sur X :


T

◦ si x ∈ X alors en particulier x ∈ α pour un certain α ∈ X, et comme


T

α ∈ Ord, on en déduit que x ∈ / x.


◦ ∈ est transitif : si x ∈ y ∈ z est vrai dans X, alors les relations sont encore
T

vraies dans un certain α ∈ X, donc x ∈ z par transitivité de ∈ dans α.


T
7.1. Ordinaux 143

◦ si X ⊆ X est non vide, alors on peut en trouver un minimum dans un


T

certain α ∈ X. Ce minimum est dans X, donc dans X : c’est donc bien


T

un minimum au sens de ∈ dans X.


T
T
Donc X est un ordinal.
3. Supposons que Ord est un ensemble. Alors, par les propositions précédentes, c’est un
ordinal : on en déduit que Ord ∈ Ord, or par hypothèse, Ord ∈/ Ord.

Notation 7.1.1.8. Comme les ordinaux appartiennent à une classe elle-même ordonnée,
on écrira souvent α < β ou α ≤ β plutôt que α ∈ β ou α ⊆ β.

Propriété 7.1.1.9. Soit X ⊆ Ord un ensemble, alors X ∈ Ord.


S

Démonstration. On vérifie les axiomes d’un ordinal :


• si x ∈ y ∈ X alors on trouve α ∈ X tel que x ∈ y ∈ α, et comme α est transitif,
S

x ∈ α, donc x ∈ X.
S

• si x ∈ X alors on trouve α ∈ X tel que x ∈ α, donc comme α est un ordinal, x ∈


/ x.
• si x ∈ y ∈ z sont trois éléments de X, alors on trouve α, β, γ ∈ X tels que
S

x ∈ α, y ∈ β, z ∈ γ. Comme Ord est bien ordonnée, on trouve un maximum entre α,


β et γ, disons α quitte à renommer nos ordinaux. Il vient donc que x, y, z ∈ α, donc
que x ∈ z comme ∈ est un ordre sur α.
• soit Y ⊆ X une partie non vide de X. On trouve par hypothèse un élément x ∈ Y ,
S

et donc α ∈ X tel que x ∈ α. Alors Y ∩ α a un plus petit élément, notons-le m.


Montrons que m est un minorant de Y . Soit y ∈ Y , par hypothèse on trouve β ∈ X
tel que y ∈ β. Comme y ∈ β, y est un ordinal, donc soit y ⊆ α, soit α ∈ y. Dans
le premier cas, si y ∈ α alors y ∈ Y ∩ α donc m ≤ y par définition, et si y = α
alors m ∈ Y ∩ α donc m ≤ α. Supposons maintenant que α ∈ y. Alors on sait que
m ∈ α ∈ y, donc m ∈ y, d’où m ≤ y.
S
X est donc un ordinal.

Donnons maintenant un outil efficace pour prouver qu’un ensemble est un ordinal.

Proposition 7.1.1.10. Soit α un ordinal et Y ⊆ α une partie close par le bas, c’est-à-dire
telle que si x ∈ Y , y ∈ α et y ∈ x alors y ∈ α, alors Y est un ordinal (on dit aussi que Y
est un segment initial de α).

Démonstration. On vérifie les axiomes d’un ordinal pour Y :


• Y est transitif : par définition de partie close par le bas, pour l’ordre strict ∈.
• ∈ est un ordre strict sur Y :
◦ ∈ est irréflexif : si x ∈ Y alors x ∈ α donc x ∈ / x.
◦ ∈ est transitif : si x ∈ y ∈ z est vrai dans Y , alors la même chose est vraie dans
α, donc x ∈ z par transitivité de α.
◦ si X ⊆ Y est non vide, alors comme Y ⊆ α on peut y trouver un minimum m
pour ∈ dans α. C’est un élément de X, donc de Y , et comme les éléments de Y
sont éléments de α on en déduit que m est bien le minimum de X dans Y .
Y est donc un ordinal.
144 Chapitre 7. Ordinaux, cardinaux, cofinalité

On voudrait maintenant utiliser le lemme d’effondrement de Mostovski pour prouver


qu’un ensemble bien ordonné est isomorphe à un unique ordinal. Comme nous avons fait le
choix de travailler dans ZF − AF, le lemme d’effondrement n’est pas utilisable. On va donc
en remontrer une version adaptée aux ordinaux, qui vérifient l’axiome de fondation.
On montre d’abord un lemme similaire à celui utilisé pour la démonstration du lemme
d’effondremnet de Mostovski.

Lemme 7.1.1.11. Soient α et β deux ordinaux, avec φ : (α, ∈) ∼


= (β, ∈), alors φ = id et
α = β.

Démonstration. Supposons par l’absurde que φ ̸= id. On définit donc l’ensemble non vide
{γ ∈ α | φ(γ) ̸= γ}, soit γ le plus petit élément de cet ensemble. On applique le même
raisonnement que dans le lemme 6.1.5.5 pour en déduire que γ = φ(γ), donc que φ ̸= id
est absurde.

Proposition 7.1.1.12. Soit (X, <) un bon ordre. Alors il existe un unique ordinal α et
un unique isomorphisme π : (X, <) ∼
= (α, ∈).
Démonstration. On définit la fonction π : X → Ord par récursion bien fondée sur X :

π(x) ≜ {π(y) | y < x}

qui, d’après l’axiome de remplacement et par une induction bien fondée, peut bien être
défini comme une fonction π : X → Y avec Y ⊆ Ord. On vérifie alors que π est un
isomorphisme d’ensemble ordonné vers un ordinal :
• π est surjective par définition, puisqu’on considère son codomaine comme étant son
image.
̸ y alors x < y sans perte de généralité, et π(x) ⊊ π(y), donc
• π est injective : si x =
π(x) ̸= π(y).
• si x < y alors π(x) ∈ π(y).
• si π(x) ∈ π(y), alors y < x est impossible puisque dans ce cas, π(y) ∈ π(x), donc
(comme < est total) x < y.
• Y est un segment initial de Ord : si α ∈ Y alors on trouve x ∈ X tel que α = π(x),
et si β ∈ α alors on trouve y ∈ X tel que β = π(y) et y < x, par définition de π, donc
β ∈Y.
On a donc trouvé un isomorphisme entre (X, <) et un ordinal α donné. Si on avait deux
ordinaux isomorphes, alors par le lemme précédent, l’isomorphisme induit entre eux est
l’identité, donc on a en fait un seul tel ordinal, et l’isomorphisme est unique par le même
argument.

Corollaire 7.1.1.13. Soient deux ordinaux α, β tels qu’on a une fonction strictement
croissante f : α → β et une fonction strictement croissante g : β → α, alors α = β et
f = g = idα .

Définition 7.1.1.14. Soit (X, <) un bon ordre. On appelle type de (X, <), souvent abrégé
en type de X, que l’on note type(X) l’unique ordinal α tel que (X, <) ∼
= (α, ∈).
On a vu que la classe Ord contenait ω, mais elle s’étend au-delà, déjà en considérant
S ω. De même, on peut considérer ω + ω, que l’on peut définir par
[
ω+ω ≜ Sn ω
n∈ω
7.1. Ordinaux 145

ou d’autres tels ordinaux toujours plus grands. Nous verrons plus tard l’arithmétique
ordinale, permettant de donner un sens plus précis à des expressions telles que ω + ω, mais
nous allons d’abord étudier les différentes sortes d’ordinaux existants.
L’ordinal 0 a un rôle particulier, puisqu’il est le plus petit ordinal existant. A part lui,
les ordinaux sont de deux sortes : les ordinaux successeurs et les ordinaux limites.

Définition 7.1.1.15 (Ordinal successeur). Un ordinal α est dit successeur s’il existe
β ∈ Ord tel que α = S β.

Définition 7.1.1.16 (Ordinal limite). Un ordinal λ est dit limite s’il est non nul et
vérifie λ = supβ<λ β.

Propriété 7.1.1.17. Tout ordinal est soit 0, soit un successeur, soit un ordinal limite,
chaque cas étant exclusif.

Démonstration. Le fait que 0 n’est ni successeur ni limite découle de la définition. Montrons


qu’un ordinal ne peut être à la fois limite et successeur. Soit S α un ordinal successeur,
alors [
β = {γ ∈ β | β ∈ α ∪ {α}}
β<S α

par transitivité, si γ ∈ β ∈ α alors γ ∈ α, et si β ∈ {α} alors γ ∈ α par définition. Dans


l’autre sens, si β ∈ α alors β ∈ α ∈ {α}. Donc (S α) = α. Ainsi un ordinal successeur ne
S

peut pas être limite.


Montrons que tout ordinal est soit 0, soit un successeur, soit un ordinal limite. Supposons
S
qu’il existe α qui n’est aucun des trois. On définit β = α. Comme α est transitif (c’est un
ordinal), β ⊆ α, donc β ∈ α ou β = α. Si β = α alors α est limite, donc β ∈ α. Montrons
que α = S β. Pour ça, montrons que le seul élément de α \ β est β. On sait que β ∈ α \ β
car β ∈/ β. Soit γ ∈ α \ β, montrons que γ = β. Comme γ ∈ / β, γ ≥ β, montrons que γ ≤ β.
Comme γ ∈ α, on en déduit que si ξ ∈ γ alors ξ ∈ α, donc γ ⊆ β. Donc γ = β, donc
α = S β.

7.1.2 Induction transfinie


La structure de Ord ressemble fortement à celle des entiers, mais avec l’ajout d’ordinaux
limites. On s’attend donc à avoir un principe d’induction et de récursion proche de celui
de nos ensembles inductifs du chapitre 1. C’est en effet le cas, et nous le donnerons sous
deux formes : avec l’induction de bon ordre et avec la distinction des sortes d’ordinaux.

Théorème 7.1.2.1 (Induction transfinie). Soit φ(x0 , . . . , xn , y) une formule dans le


langage des ensembles. On a alors la propriété

∀x0 , . . . , xn , (∀α ∈ Ord, (∀β < α, φ(x0 , . . . , xn , β)) =⇒ φ(x0 , . . . , xn , α))


=⇒ ∀α ∈ Ord, φ(x0 , . . . , xn , α)

Démonstration. Soient x0 , . . . , xn des ensembles. Supposons que pour tout α ∈ Ord, on a

(∀β < α, φ(x0 , . . . , xn , β)) =⇒ φ(x0 , . . . , xn , α)

Supposons par l’absurde qu’il existe α ∈ Ord tel que ¬φ(x0 , . . . , xn , α). On peut alors
prendre un tel α minimal : on en déduit donc que pour tout β < α, φ(x0 , . . . , xn , β) est
vraie, donc par hypothèse φ(x0 , . . . , xn , α) est vraie aussi, ce qui est une contradiction.
146 Chapitre 7. Ordinaux, cardinaux, cofinalité

Ce résultat est cependant souvent plus pratique à utiliser une fois combiné à la
disjonction de cas sur ce qu’est un ordinal.
Proposition 7.1.2.2 (Induction transfinie, variante). Soit φ(x0 , . . . , xn , y) une formule
dans le langage des ensembles. Soient x0 , . . . , xn des ensembles. On suppose que :
• φ(x0 , . . . , xn , 0) est vérifiée.
• pour tout ordinal α, si φ(x0 , . . . , xn , α) alors φ(x0 , . . . , xn , S α).
• pour tout ordinal limite λ, si ∀β < λ, φ(x0 , . . . , xn , β) alors φ(x0 , . . . , xn , λ).
Alors φ(x0 , . . . , xn , α) est vraie pour tout ordinal α.
Démonstration. Par l’absurde, supposons que la classe

{α ∈ Ord | ¬φ(x0 , . . . , xn , α)}

n’est pas vide. On trouve alors un minimum à cette classe, qu’on note α. On sait que α ̸= 0
d’après nos hypothèses. De plus, si α est successeur, alors α = S β et φ(x0 , . . . , xn , β) est
vérifiée, donc par hypothèse φ(x0 , . . . , xn , α), ce qui est absurde. Si α est limite, alors pour
tout β < α, φ(x0 , . . . , xn , β) est vérifiée, d’où encore une absurdité. Ainsi la classe est vide,
donc tout ordinal vérifie la formule.

Notre principe d’induction est donc généralisé à des ensembles bien plus grands que ω.
On va de même montrer un principe de récursion. Dans le cas des entiers, on peut définir
une suite un à un rang n donné à partir de n et de un−1 . Pour un ordinal, on étend cette
définition avec le cas d’un ordinal limite, pour lequel f (λ) est définie à partie des tous les
f (β) et β, pour β < λ.
Pour préciser ces notions, nous allons introduire un peu de vocabulaire.
Définition 7.1.2.3 (Fonction inductive pour une relation). Soit H(x, y) une relation
fonctionnelle à deux variables libres. Soit α un ordinal. On dit qu’une fonction f : α → U
est inductive pour H si pour tout β < α, on a :
• f ↾β est dans le domaine de H.
• f (β) = H(f ↾β ).
Remarque 7.1.2.4. On ne s’intéresse pas à l’ensemble d’arrivée de f , puisque par le
schéma de remplacement on peut toujours s’assurer que f va dans Im(f ) qui est bien un
ensemble.
Exemple. On va définir l’identité sur Ord par récursion. Pour cela, on définit Hid :

Hid (x, y) ≜ y = {x(α) | α < x}

On peut alors vérifier que idα est inductive pour Hid :


• idα ↾β est dans le domaine de Hid pour tout β < α.
• pour β < α, idα (β) = {γ | γ < β} et H(f ↾β ) = {idβ (γ) | γ < β} d’où l’égalité.

On peut alors utiliser une relation H pour définir une fonction dont le domaine est
Ord : l’image de α ∈ Ord sera H(f ↾α ), pour obtenir une unique fonction H-inductive.
Pour assurer le bon fonctionnement du procédé, on prouve d’abord qu’il existe au plus une
fonction inductive pour H dont le domaine est α.
Lemme 7.1.2.5. Soit H une relation fonctionnelle et α un ordinal. Alors il existe au plus
une fonction f : α → X qui est inductive pour H.
7.1. Ordinaux 147

Démonstration. Supposons qu’il existe f, g deux fonctions inductives pour H. Par l’absurde,
supposons que f ̸= g, soit alors β l’ordinal minimal tel que f (β) ̸= g(β). Comme β est
minimal, on en déduit que f ↾β = g ↾β , donc par le fait que f et g sont inductives pour H, il
vient que f (β) = g(β), ce qui est une contradiction.

On veut maintenant prouver qu’étant donnée une relation fonctionnelle H, il existe


effectivement une fonction H-inductive de domaine α.

Lemme 7.1.2.6. Soit H une relation fonctionnelle dont le domaine est stable, c’est-à-dire
que si H(x, y) alors y est lui-même dans le domaine. Pour tout α ∈ Ord, il existe une
fonction f : α → X qui est inductive pour H.

Démonstration. Par l’absurde, prenons un α minimal tel que f : α → X n’est pas définie
(pour f étant H-inductive). Comme α est minimal, on sait que pour tout β < α, il existe
une fonction fβ : β → X qui est inductive pour H. On définit alors

f : α −→ X
β 7−→ H(fβ )

On remarque, comme chaque fβ est H-inductive, et par unicité d’une fonction H-inductive,
que fβ ↾γ = fγ pour tous γ < β < α.
On vérifie que f est bien inductive. Soit β < α, alors :
• f ↾β = fβ est fβ est inductive, donc elle est dans le domaine de H.
• f (β) = H(f ↾β ) = H(fβ ) est vérifié par définition.
On en déduit donc qu’il existe une fonction f : α → X inductive pour H.

On en déduit le théorème de récursion.

Théorème 7.1.2.7 (Principe de récursion transfinie). Soit H une relation fonction-


nelle telle que pour tout x ∈ Dom(H), H(x) ∈ Dom(H). Il existe alors une unique fonction
f de Ord dans Im(H) telle que f ↾α est H-inductive pour tout α.

Démonstration. On définit une fonction entre classes, ce qui est un abus de langage si l’on
considère une fonction comme un ensemble. Le sens de cette assertion est qu’il existe un
prédicat φ fonctionnel dont le domaine est Ord et qui vérifie l’hypothèse que l’on veut.
Pour écrire ce prédicat, il nous suffit d’utiliser la définition précédente :

φ(x, y) ≜ ∃(f : x → X), indH (f ) ∧ H(f ) = y

On a vérifié précédemment que la fonction définie de cette façon est bien H-inductive,
d’où l’existence.
L’unicité de la fonction est donnée par le fait qu’une fonction f qui est H-inductive de
domaine α est unique, donc que φ(α) est unique.

Remarquons que si l’on a la fonction f ↾α , alors on peut récupérer le α correspondant :

α = Dom(f ↾α )

ce qui, pour construire une relation fonctionnelle H, signifie qu’on peut définir le rang
auquel on est dans la construction de l’image par la fonction H-inductive associée en
S
remplaçant f ↾α par l’argument de H. On va appeler αx l’ordinal Dom(x).
148 Chapitre 7. Ordinaux, cardinaux, cofinalité

Comme on sait de plus qu’il existe une trichotomie sur les ordinaux suivant s’ils sont
successeurs ou limites, en utilisant les formules
[
estZero(x) ≜ x = 0 estSucc(x) ≜ ∃y.x = S y estLimite(x) ≜ x ̸= 0 ∧ x=x
et l’astuce précédente permettant de récupérer le rang de l’argument, on peut donner une
fonction f : Ord → U par trois données :
• un ensemble X0 .
• une relation fonctionnelle Hs qui, à chaque ensemble Xα associe un nouvel ensemble
XS α .
• une relation fonctionnelle Hℓ qui, si on a déjà défini Xβ pour tout β < λ où λ est un
ordinal limite, construit un nouvel ensemble Xλ .
Si on souhaite expliciter la formule, celle-ci est alors
[
H(x, y) ≜ (estZero(αx ) ∧ y = X0 ) ∨ (estSucc(αx ) ∧ HS (x( αx ), y))∨
(estLimite(αx ) ∧ Hℓ (x, y))
On peut aussi généraliser notre théorème 7.1.2.7 en permettant la définition de fonction
Ord × Ord → U. Étant donnée une relation fonctionnelle H, on peut définir une fonction
f : Ord → U telle que f ↾α est une fonction. Soit maintenant un énoncé fonctionnel H à
deux paramètres, disons x et α. Pour tout α ∈ Ord, il est possible de définir la relation
fonctionnelle H en fixant α, donnant alors une fonction fα : Ord → U. On a donc ensuite,
en prenant la fonction α 7→ fα , une fonction g : Ord → (Ord → U), que l’on peut réécrire
en une fonction g ′ : Ord × Ord → U. On évitera bien sûr de détailler tout ce processus
lorsque l’on définira des fonctions par récursion transfinie, mais il est important de garder
en tête que l’on peut effectivement faire cela, et ce de façon purement syntaxique (sans
avoir recours à la notion de classe).
On donne maintenant deux exemples classiques de fonctions définies par récursion
transfinie : l’addition et la multiplication.
Définition 7.1.2.8 (Addition ordinale). On définit l’addition ordinal α+β par récursion
sur β :
• α+0=α
• α + S β = S (α + β)
[
• α+λ= (α + β) si λ est limite.
β<λ

Notation 7.1.2.9. A partir de maintenant, on écrira α + 1 plutôt que S α.


Exercice 7.1.2.10 (Sur la somme ensembliste). Soit (Xi )i∈I une famille d’ensembles.
On définit l’ensemble X
Xi ≜ {(i, x) | i ∈ I, x ∈ Xi }
i∈I
P
Supposons que (αi )i∈β est une famille d’ordinaux indicée par un ordinal. On muni i∈β αi
de l’ordre <lex défini par
(i, x) <lex (j, y) ≜ i < j ∨ (i = j ∧ x < y)
X  X
Montrer que αi , <lex est un ensemble bien ordonné. On notera αi l’ordinal
i∈β i∈β
X
correspondant au type d’ordre de cet ensemble. Montrer que si β = 2 alors αi = α0 + α1
i∈β
(avec la définition de + donnée ci-dessus).
7.1. Ordinaux 149

P
Exercice 7.1.2.11 (Autre définition du produit cartésien). L’ensemble i∈I Xi
induit naturellement une fonction

i∈I Xi −→ I
P
π :
(i, x) 7−→ i

Montrer qu’on a une bijection


n o
Xi ∼
Y X
= f :I→ π ◦ f = idI
i∈I i∈I

Définition 7.1.2.12 (Multiplication ordinale). On définit la multiplication ordinale


α × β par récursion sur β :
• α×0=0
• α × (β + 1) = α × β + α
[
• α×λ= α × β si λ est un ordinal limite.
β<λ

Exercice 7.1.2.13. Montrer que si (αi )i∈β est une famille d’ordinaux indicée par un
Y  Q
ordinal, alors αi , <lex est un ensemble bien ordonné. On notera i∈β αi son type
i∈β
Y
d’ordre. Montrer que αi = α0 × α1 .
i<2

On peut aussi définir l’exponentiation αβ par récursion ou par un type d’ordre. Par
récursion, on a les équations suivantes :
• α0 = 1
• αβ+1 = αβ × α
[
• αλ = αβ si λ est limite.
β<λ
En tant que type d’ordre, on considère l’ensemble α →fin β des fonctions de α dans β à
support fini, c’est-à-dire qui sont non nulles pour un nombre fini de valeurs, et on le muni
de l’ordre lexicographique sur les valeurs prises, c’est-à-dire que f < g si pour le plus petit
élément α tel que f (α) ̸= g(α), on a f (α) < g(α).
On peut maintenant prouver plusieurs résultats d’arithmétique ordinale.

Propriété 7.1.2.14. Soient α, β, γ ∈ Ord, on a les propriétés suivantes :


• α + (β + γ) = (α + β) + γ
• α × (β + γ) = α × β + α × γ
• α × (β × γ) = (α × β) × γ
• 1 + α = α si et seulement si α ≥ ω
• α+1=S α
• 0+α=α
• si α < β alors γ + α < γ + β et α + γ ≤ β + γ
• α + β = α + γ =⇒ β = γ
• si α ̸= 0 et α × β = α × γ, alors β = γ.
• α×1=1×α=α
• si γ ̸= 0 et α < β alors γ × α < γ × β et α × γ ≤ β × γ.
150 Chapitre 7. Ordinaux, cardinaux, cofinalité

• α × β = 0 =⇒ α = 0 ou β = 0
• si α < β alors il existe un unique γ tel que α + γ = β
• si α < β alors il existe un unique couple (δ, ε) tel que β = α × δ + ε et ε < α, c’est la
division euclidienne ordinale.
Démonstration. On ne prouve que les 7 premières propriété, les autres étant laissées en
exercice :
• on raisonne par induction sur γ :
◦ si γ = 0 alors l’équation devient α + β = α + β, ce qui est vrai.
◦ si γ = S γ ′ , alors en supposant que α + (β + γ ′ ) = (α + β) + γ ′ :

α + (β + S γ) = α + S(β + γ ′ )
= S (α + (β + γ ′ ))
= S ((α + β) + γ ′ )
= (α + β) + S γ ′

◦ si γ est un ordinal limite et que pour tout δ < γ, α + (β + δ) = (α + β) + δ :


[
α + (β + γ) = α + ( β + δ)
δ<γ
[
= (α + (β + δ))
δ<γ
[
= ((α + β) + δ)
δ<γ

= (α + β) + γ

D’où le résultat par induction transfinie.


• on raisonne par induction sur γ :
◦ si γ = 0, l’équation devient α × β = α × β, ce qui est vrai.
◦ si γ = S γ ′ et l’équation est vraie en γ ′ , alors :

α × (β + γ) = α × S (β + γ ′ )
= α × (β + γ ′ ) + α
= α × β + α × γ′ + α
=α×β+α×γ

◦ si γ est limite et que l’équation est vérifiée pour tout δ < γ, alors
[
α × (β + γ) = α × ( β + δ)
δ<γ
[
= α × (β + δ)
δ<γ
[
= (α × β + α × δ)
δ<γ
[
=α×β+ α×δ
δ<γ

=α×β+α×γ
7.1. Ordinaux 151

D’où le résultat par induction transfinie.


• on raisonne par induction sur γ :
◦ si γ = 0, l’équation est simplement 0 = 0.
◦ si γ = S γ ′ et α × (β × γ ′ ) = (α × β) × γ ′ , alors :

α × (β × γ) = α × (β × γ ′ + β)
= α × (β × γ ′ ) + α × β
= (α × β) × γ ′ + α × β
= (α × β) × γ

◦ si γ est limite et que l’équation est vérifiée pour tout δ < γ, alors :
[
α × (β × γ) = α × ( β × δ)
δ<γ
[
= α × (β × δ)
δ<γ
[
= (α × β) × δ
δ<γ

= (α × β) × γ

D’où le résultat par induction transfinie.


• par induction transfinie, montrons que si α ≥ ω alors 1 + α = α :
◦ c’est bien le cas si α = ω
◦ si α = S β, alors β ≥ ω (puisque ω est limite), donc

1+α=1+S β
= S (1 + β)
=Sβ

◦ si α est limite et pour tout β < α tel que β ≥ ω, 1 + β = β, alors


[
1+α= 1+β
β<α
   
[ [
= 1 + β ∪  1 + β
β<ω ω≤β<α
[
=ω∪ β
ω≤β<α

=ω∪α

Donc par induction transfinie, ω ≤ α =⇒ 1 + α = α.


Par contraposée, si n ∈ ω, alors 1 + n = n + 1 = S n ̸= n, donc 1 + α = α =⇒ ω ≤ α.
• un simple calcul nous donne que α + 1 = S (α + 0) = S α.
• par induction transfinie sur α :
152 Chapitre 7. Ordinaux, cardinaux, cofinalité

◦ si α = 0, alors 0 + 0 = 0.
◦ on suppose que 0 + α = α, alors

0 + S α = S (0 + α)
=Sα

◦ si α est limite et que pour tout β < α, 0 + β = β, alors


[
0+α= (0 + β)
β<α
[
= β
β<α

d’où le résultat par induction transfinie.


• on effectue deux inductions transfinie. La première, sur γ, pour montrer que α + γ ≤
β+γ :
◦ pour γ = 0, cela signifie que α ≤ β, ce qui est vrai par hypothèse.
◦ supposons que α + γ ≤ β + γ, et prouvons alors que α + S γ ≤ β + S γ. Il nous
suffit de montrer que pour tous ξ, ζ ∈ Ord, si ξ ≤ ζ alors S ξ ≤ S ζ. Comme
les ordinaux sont totalement ordonnés, si l’inégalité était fausse alors on aurait
S ξ ∋ S ζ, donc S ζ = ξ ou S ζ ∈ ξ. Dans les deux cas, cela contredit le fait que
ξ ≤ ζ (dans le premier cas, on sait que ζ < ξ puisque ζ ∈ ζ ∪ {ζ} et dans le
deuxième cas, l’inclusion donnée par ≤ sur les ordinaux signifie que S ζ ∈ ζ).
On en déduit que dans le cas particulier où ξ = α + γ et ζ = β + γ, l’inégalité
est vérifiée.
◦ supposons que γ est limite et que pour tout δ < γ, α + δ ≤ β + δ. Alors
[
α+γ = α+δ
δ<γ
[
≤ β+δ
δ<γ

≤β+δ

Donc α + γ ≤ β + γ.
On veut maintenant prouver que γ + α < γ + β. On raisonne par induction transfinie
sur β :
◦ si β = 0 alors notre hypothèse est que α < 0, ce qui est impossible.
◦ supposons que γ + α < γ + β, alors

γ + α < γ + β < S (γ + β) = γ + S β

d’où le résultat.
◦ supposons que β est limite et que pour tout δ < β, γ + α < γ + δ. Alors comme
α < β, on en déduit γ + α < γ + α, ce qui est absurde.
On en déduit donc que γ + α < γ + β par induction transfinie.
Nous avons donc prouvé la moitié des propriétés.

Exercice 7.1.2.15. Montrer l’autre moitié des propriétés ci-dessus.


7.1. Ordinaux 153

On peut aussi dégager des propriétés arithmétiques sur l’exponentiation, mais celles-ci
sont laissées en exercice car elles ne seront pas essentielles.
Exercice 7.1.2.16. Montrer les propriétés suivantes sur l’exponentiation ordinale, pour
tous α, β, γ ∈ Ord :
• αβ+γ = αβ × αγ
• α ≤ β =⇒ αγ ≤ β γ
• (αβ )γ = αβ×γ
• si α > 1 et β > 0, alors il existe un unique triplet (δ, ε, η) tel que β = αδ × η + ε,
ε < αδ et 0 < η < α.

7.1.3 Ordinal de Hartogs et axiome du choix


L’outil de la récursion transfinie permet d’enfin montrer le lemme de Zorn (théo-
rème 4.1.3.12). La preuve de ce lemme repose sur une récursion transfinie dont on prouve
qu’elle ne peut pas se prolonger jusqu’à tout Ord. Pour cela, on montre d’abord qu’un
ensemble quelconque peut voir majorée sa taille par un ordinal, qu’on appelle l’ordinal de
Hartogs.
Définition 7.1.3.1 (Ordinal de Hartogs [Har15]). Soit X un ensemble. Alors il existe
un plus petit ordinal αX tel que αX ne s’injecte pas dans X, on appelle αX l’ordinal de
Hartogs de X.
Démonstration. On veut donc prouver qu’un tel ordinal existe. Pour ce faire, on commence
par définir

Ord(X) ≜ {(Y, R) | Y ⊆ X, R ⊆ Y × Y, R est un bon ordre sur Y }

On sait donc que pour chaque (Y, R) ∈ Ord(X), il existe un unique α(Y,R) ∈ Ord qui lui
correspond. Ainsi, par le schéma de remplacement, la collection

αX ≜ {α ∈ Ord | ∃(Y, R) ∈ Ord(X), α = α(Y,R) }

est bien un ensemble. Pour vérifier que αX est bien un ordinal, il nous suffit maintenant
de vérifier que c’est un segment initial de Ord. Si γ ∈ β ∈ αX alors on trouve (Y, R)
tel que β = α(Y,R) . Comme γ ∈ β, γ induit par restriction une partie bien ordonnée
(Z, R′ ) ⊆ (Y, R), donc γ = α(Z,R′ ) , donc γ ∈ αX . Ainsi αX est bien un ordinal.
On vérifie maintenant que αX ne s’injecte pas dans X. Si c’était le cas, alors l’image de
αX définirait un élément de Ord(X) (avec l’ordre induit par ∈ sur l’image de αX ), donc
par construction αX ∈ αX , ce qui est impossible pour un ordinal. On en déduit que αX ne
s’injecte pas dans X.
Pour vérifier que αX est le plus petit tel ordinal, prenons un autre ordinal β tel que
β ne s’injecte pas dans X. On sait que soit β ∈ αX , soit αX ⊆ β. Dans le deuxième cas,
on a le résultat souhaité. Dans le premier cas, β est par définition α(Y,R) pour un certain
(Y, R) ∈ Ord(X), ce qui impose que β s’injecte dans X, ce qui n’est pas.

L’ordinal de Hartogs permet de relier un ensemble quelconque à la hiérarchie ordinale.


Dans le cas de ZF, sans l’axiome du choix, il est le meilleur lien possible (on ne connait pas,
a priori, un ordinal en bijection avec l’ensemble donné). On verra plus tard que l’ordinal de
Hartogs est en fait un cardinal, et qu’il est même le cardinal successeur quand on l’applique
à un cardinal.
Montrons maintenant le lemme de Zorn, qui utilise l’axiome du choix.
154 Chapitre 7. Ordinaux, cardinaux, cofinalité

Théorème 7.1.3.2 (Lemme de Zorn [Zor35]). Soit (X, <) un ensemble inductif, c’est-
à-dire tel que toute chaîne C ⊆ X possède un majorant, et soit x0 ∈ X. Alors il existe un
élément maximal x dans X supérieur à x0 , c’est-à-dire tel que

∀y ∈ X, ¬(x < y)

Démonstration. On va construire une fonction f : Ord → X strictement croissante tant


que l’on n’a pas atteint un élément maximal. Pour faciliter la rédaction, on procède par
l’absurde. Supposons donc qu’il n’existe pas d’élément maximal dans X qui est supérieur à
x0 , on définit pour tout x ∈ X l’ensemble

x ↑≜ {y ∈ X | x < y}

qui est toujours un ensemble non vide pour x ≥ x0 (x ↑ est vide si et seulement si x
est un élément maximal). On se donne, grâce à l’axiome du choix, une fonction de choix
φ : P(X) \ {∅} → X telle que φ(Y ) ∈ Y pour tout Y ∈ Dom(φ).
On définit maintenant par récursion transfinie la fonction f : Ord → X strictement
croissante, par :
• f (0) = x0 .
• pour tout α ∈ Ord, f (α + 1) = φ(f (α) ↑).
• pour tout λ ∈ Ord limite, f (λ) = φ({f (β) | β < λ} ↑) qui existe bien car l’en-
semble est une chaîne, et possède donc un majorant (strict car s’il était atteint, cela
contredirait la stricte croissante de f sur les éléments inférieurs à λ).
Le fait qu’on ajoute chaque fois un élément strictement supérieur aux éléments déjà définis
assure la stricte croissance à chaque étape de notre récursion. De plus, comme la fonction
est strictement croissante, on est assurés que les éléments rencontrés ne sont pas maximaux,
puisqu’ils sont tous supérieurs à x0 . On a donc une fonction injective f : Ord → X, ce qui
signifie en particulier qu’on a trouvé f : αX → X injective, ce qui n’est pas possible par
hypothèse.
Par l’absurde, on en déduit donc qu’il existe bien x ≥ x0 maximal.

Montrons aussi la réciproque : le lemme de Zorn implique l’axiome du choix.


Proposition 7.1.3.3. Dans ZF − AC − AF, si on admet le lemme de Zorn alors AC est
vrai.
Démonstration. On veut montrer l’axiome du choix. Soit donc un ensemble X dont tous
les éléments sont non vides et disjoints deux à deux : on veut construire un ensemble C tel
que pour tout x ∈ X, x ∩ C est un singleton.
On pose l’ensemble
n [ o
Y = c⊆ X ∀x, y ∈ c, ∀a ∈ X, (x ∈ a) ∧ (y ∈ a) =⇒ x = y

un élément de Y est donc un choix, pour chaque élément a de X, d’au plus un élément de
a. On veut montrer que (Y, ⊆) est un ensemble inductif : [
Soit une chaîne (ci )i∈I d’éléments de Y , montrons que ci ∈ Y . Soient donc a ∈ X et
! i∈I
[
x, y ∈ ci ∩ a, montrons que x = y. Par définition, on trouve i, j ∈ I tels que x ∈ ci
i∈I
et y ∈ cj . Comme (ci ) est une chaîne, on sait qu’il existe un élément k ∈ {i, j} tel que
x ∈ ck et y ∈ ck , soit k cet élément. On sait donc que x ∈ a et y ∈ a, pour x, y ∈ ck : par
7.2. Cardinaux 155

[
définition de Y , on en déduit que x = y. Donc ci ∈ Y , et cet ensemble est la borne
i∈I
supérieure pour ⊆.
Par le théorème 7.1.3.2, on trouve donc C ∈ Y un élément maximal pour l’inclusion.
Montrons alors que pour tout a ∈ X, C ∩ a ̸= ∅. Supposons qu’il existe a ∈ X tel que
C ∩ a = ∅. Comme a ̸= ∅, on trouve x ∈ a, et on peut alors définir C ∪ {x}, qui est un
élément de Y : c’est un élément plus grand que C, ce qui contredit sa maximalité.
Ainsi, C contient au moins un élément de chaque élément de X, et par définition de
l’appartenance à Y il en contient au plus un : cela signifie que C ∩ a est un singleton pour
tout a ∈ X. D’où l’axiome du choix.

Exercice 7.1.3.4 (Une caractérisation des ordinaux finis). Montrer qu’un ordinal α
est fini si et seulement si (α, ∋) est un ensemble bien ordonné.

Exercice 7.1.3.5 (Une caractérisation des ensembles infinis). Un ensemble X est


dit infini au sens de Dedekind s’il existe une partie Y ⊊ X telle que X s’injecte dans Y .
Montrer qu’un ensemble X est infini au sens de Dedekind si et seulement si ω s’injecte
dans X, si et seulement si X ne s’injecte dans aucun ordinal fini.

7.2 Cardinaux
Nous étudions maintenant la notion de cardinal. Comme nous l’avons mentionné au
début du chapitre, les cardinaux sont des choix de représentants canoniques de classes
d’équipotence. Dans cette section, nous allons rapidement avoir besoin de l’axiome du
choix, mais l’axiome de fondation n’est pas nécessaire.
Sans l’axiome du choix, comme on l’a dit pour définir l’ordinal de Hartogs, il nous
manque un moyen de prouver que tout ensemble est équipotent à un ordinal. Nous allons
donc, en utilisant l’axiome du choix, définir une mesure plus précise de la taille d’un
ensemble, ce qui revient au final à munir un ensemble quelconque d’un bon ordre : c’est le
théorème de Zermelo.
Quand nous aurons traité de la définition des cardinaux, nous verrons les fonctions ℵ
et ℶ, ainsi que l’hypothèse du continu.

7.2.1 Axiome du choix et dichotomie cardinale


Pour introduire la notion de cardinal, on va définir la relation de subpotence, qui
correspond intuitivement à dire qu’un ensemble est plus petit qu’un autre.

Définition 7.2.1.1 (Subpotence). Soient X, Y deux ensembles. On dit que X est


subpotent à Y , ce que l’on notera X ⪯ Y , lorsqu’il existe une injection f : X → Y .

Propriété 7.2.1.2. La relation ⪯ est une relation de pré-ordre.

Démonstration. On vérifie les axiomes d’un pré-ordre.


• pour tout ensemble X, idX est une injection de X dans X.
• si f : X → Y et g : Y → Z sont des injections, alors g ◦ f : X → Z est une injection,
donc ⪯ est transitive.
Ainsi ⪯ est une relation d’ordre.
156 Chapitre 7. Ordinaux, cardinaux, cofinalité

La relation d’équipotence est alors la relation d’équivalence associée à ce pré-ordre. On


la définit aussi par le fait que X ∼
= Y si et seulement s’il existe f : X → Y bijective. La
coïncidence des deux définitions n’est pas immédiate : c’est le théorème de Cantor-Bernstein.
Le nom de Georg Cantor vient du fait qu’il a donné ce résultat dans [Can87], mais sans
y apporter de preuve. Felix Bernstein démontre ensuite ce théorème en 1897 (cf [Dei04]).
Théorème 7.2.1.3 (Cantor-Bernstein). Soient X, Y des ensembles. S’il existe une
injection f : X → Y et une injection g : Y → X, alors il existe une bijection h : X ∼
=Y.
Démonstration. Comme il existe une injection f : X → Y , on en déduit (comme toute
fonction est surjective sur son image) que X ∼
= Im(f ). On se contente donc de montrer que
si X ⊆ Y et qu’il existe g : Y → X injective, alors X ∼=Y.
On définit une suite de parties (Zn )n∈N de Y comme suit :
(
Z0 = Y \ X
∀n ∈ N, Zn+1 = g(Zn )

et on définit [
Z≜ Zn
n∈N
la fonction g est alors stable sur Z, par construction. On décide donc de définir la fonction
h : Y → ( X
g(x) si x ∈ Z
x 7−→
x si x ∈
/Z

h est bien à valeurs dans X : si x ∈ Z, alors h(x) = g(x) et g est à valeurs dans X ; sinon,
x∈/ Z, donc x ∈ / Z0 , donc x ∈ X.
On montre que h est une bijection : c’est une injection sur Z et une injection sur X \ Z
et ces deux parties sont stables par h, donc h est injective. h est surjective : si x ∈ X, alors
soit x ∈ Z, auquel cas on trouve i ∈ N tel que x ∈ Zi . i ne peut pas être nul, puisque x ∈ X,
donc on peut trouver z ∈ Z0 tel que x = g i (z) : cela signifie alors que x = h(g i−1 (z)). Si
x∈ / Z, alors h(x) = x. Ainsi h est injective et surjective : c’est une bijection entre X et
Y.

La relation ⪯ est donc une relation d’ordre sur les classes d’équipotence, mis à part
l’impossibilité de décrire ces classes par des ensembles. On peut prouver que cette relation
est totale si et seulement si l’axiome du choix est vrai. Nous montrons ici que l’axiome du
choix implique que ⪯ est totale, et nous verrons ensuite avec le théorème de Zermelo que
c’est en fait une équivalence.
Propriété 7.2.1.4. L’axiome du choix implique la proposition suivante :

∀X, Y, (∃f : X → Y, inj(f )) ∨ (∃f : Y → X, inj(f ))

Démonstration. On utilise le lemme de Zorn sur l’ensemble

{f : A → B | A ⊆ X, B ⊆ Y, inj(f )}

ordonné par ⊆. Si on a une chaîne {fi }i∈I d’éléments, alors on veut montrer que
[
g≜ fi
i∈I

est une injection entre une partie de X et une partie de Y :


7.2. Cardinaux 157

• g est bien définie. Si (x, y) ∈ g et (x, z) ∈ g, alors comme {fi } est une chaîne, il existe
i ∈ I tel que (x, y) ∈ fi et (x, z) ∈ fi , et comme fi est une fonction, y = z.
• g est injective. Si (x, y) ∈ g et (z, y) ∈ g, alors comme {fi } est une chaîne, on trouve
i ∈ I tel que (x, y) ∈ fi et (z, y) ∈ fi , et comme fi est injective, x = z.
On applique donc le lemme de Zorn : on trouve f : A → B maximale pour l’inclusion,
et injective. Supposons que A ⊊ X et B ⊊ Y , alors on trouve x ∈ X \ A et y ∈ Y \ B, et
on peut construire g ∪ {(x, y)} qui est une injection strictement plus grande que f . On en
déduit que A = X ou B = Y . Si A = X, alors on a trouvé une injection de X dans Y .
Si B = Y , alors la transposée de f , c’est-à-dire l’ensemble {(y, x) | (x, y) ∈ f }, est une
injection de Y dans X.

Le théorème de Zermelo indique qu’il est toujours possible de munir un ensemble d’un
bon ordre.

Théorème 7.2.1.5 (Zermelo [Zer04]). Soit X un ensemble. Alors il existe < qui est un
bon ordre sur X.

Démonstration. Ce théorème est une conséquence de la proposition précédente : on sait


que αX ne s’injecte pas dans X, donc X s’injecte dans αX , donc l’ordre induit par αX est
un bon ordre sur X.

Propriété 7.2.1.6. Le théorème de Zermelo implique, dans ZF − AF, l’axiome du choix.

Démonstration. Soit X un ensemble non vide dont tous les éléments sont non vides. On
trouve, par Zermelo, un bon ordre < sur X. On définit alors la fonction de choix

φ : P(X) \ {∅} −→ X
Y 7−→ min< Y

et comme min Y ∈ Y , on en déduit que cette fonction vérifie bien l’énoncé de l’axiome du
choix.

Comme on a prouvé que la dichotomie cardinale (⪯ est un ordre total) implique le


théorème de Zermelo, on en déduit que les deux énoncés impliquent l’axiome du choix.
On a donc plusieurs énoncés utiles équivalents à l’axiome du choix :
• le lemme de Zorn.
• le théorème de Zermelo.
• le fait que ⪯ est un pré-ordre total.

7.2.2 Nombre cardinal


Avec le théorème de Zermelo, il devient direct que tout ensemble est en bijection avec
un ordinal, puisqu’un isomorphisme d’ensembles ordonné est en particulier une bijection, et
que tout ensemble bien ordonné est isomorphe à un unique ordinal. Cependant, on n’a pas
unicité du bon ordre, et donc de l’ordinal auquel un ensemble quelconque est isomorphe.
Même au sein des ordinaux il y a un défaut d’unicité, puisque ω ∼= ω + 1 (il suffit d’envoyer
ω sur 0 et n sur n + 1). On veut donc représenter une classe d’équipotence sur la hiérarchie
ordinale en prenant un unique représentant, ce qui se fait en utilisant le plus petit ordinal
de la classe. Cela motive donc notre définition de la hiérarchie cardinale.
158 Chapitre 7. Ordinaux, cardinaux, cofinalité

Définition 7.2.2.1 (Cardinal). Soit α ∈ Ord. On dit que α est un cardinal si pour tout
β < α, α ̸⪯ β. On dénote la classe des cardinaux par Card.
Pour un ensemble quelconque X, on définit son cardinal, noté Card(X), comme le plus
grand cardinal inférieur à l’ordinal associé à (X, <) où < est un bon ordre sur X.

Démonstration. Il nous faut montrer que le choix du bon ordre sur X n’intervient pas dans
la définition de Card(X). Si <, <′ sont deux bons ordres sur X, alors l’ordinal associé à
(X, <) et celui associé à (X, <′ ) sont en bijection, donc un cardinal est inférieur à l’ordinal
associé à (X, <) si et seulement s’il est inférieur à l’ordinal associé à (X, <′ ), donc le plus
grand cardinal inférieur à l’un d’eux est aussi le plus grand cardinal inférieur à l’autre.

Un cardinal est donc un ordinal qui ne s’injecte dans aucun de ses éléments. En observant
la définition de l’ordinal de Hartogs, le fait que cet ordinal est même un cardinal est peu
étonnant, puisqu’on l’énonce par le fait qu’il ne s’injecte pas dans un plus petit ensemble.

Propriété 7.2.2.2. Pour tout ensemble X, l’ordinal de Hartogs αX est un cardinal. Il est
le plus petit cardinal ne s’injectant pas dans X.

Démonstration. Si β ∈ αX alors β s’injecte dans X, donc αX ne peut pas s’injecter dans


β (parce qu’alors il s’injecte dans X). Si un cardinal κ ne s’injecte pas dans X, alors
X s’injecte dans ce cardinal. Par trichotomie sur les ordinaux, κ = αX ou κ ∈ αX ou
αX ∈ κ. Seul le cas κ ∈ αX est à traiter (les autres nous donnent bien que αX est le
plus petit cardinal possible). Si κ ∈ αX , alors κ est associé à un certain bon ordre partiel
(Y, R) ∈ Ord(X), donc κ s’injecte dans X, ce qui est faux par hypothèse.

Définition 7.2.2.3 (Cardinal successeur). On définit le cardinal successeur d’un cardinal


κ ∈ Card comme κ+ = ακ , l’ordinal de Hartogs de κ. C’est le plus petit cardinal strictement
supérieur à κ.

Exemple. Donnons quelques exemples de cardinaux :


• tous les ordinaux finis, c’est-à-dire les éléments de ω, sont des cardinaux.
• ω lui-même est un cardinal.
• ω1 = ω + , l’ensemble des ordinaux dénombrables, est un cardinal.

Exercice 7.2.2.4. Montrer qu’un cardinal infini est un ordinal limite.

On définit maintenant la fonction ℵ, qui décrit les cardinaux infinis à partir des ordinaux.
Pour que notre définition ait du sens, on va montrer un premier lemme.

Lemme 7.2.2.5. Soit (κi )i∈I une famille de cardinaux. Alors κi est un cardinal.
[

i∈I

Démonstration. Soit β < i∈I κi , par définition on trouve un i ∈ I tel que β < κi , donc il
S

n’existe pas d’injection κi → β, et en particulier pas d’injection i∈I κi → β.


S

Définition 7.2.2.6 (Fonction aleph). On définit par induction transfinie la fonction


entre classes ℵ : Ord → Card :
• ℵ0 = ω
• ℵα+1 = ℵ+
α
[
• pour λ limite, ℵλ = ℵβ
β<λ
7.2. Cardinaux 159

Montrons plusieurs propriétés de la fonction ℵ : elle est strictement croissante, supérieure


à l’identité et bijective entre Ord et la classe des cardinaux infinis.

Propriété 7.2.2.7. Les propositions suivantes sont vérifiées :


(i) pour tous α < β, ℵα < ℵβ .
(ii) pour tout α ∈ Ord, α ≤ ℵα .
(iii) pour tout κ ∈ Card infini, il existe α ∈ Ord tel que κ = ℵα .

Démonstration. On prouve chaque assertion.


(i) On montre par induction transfinie sur γ que pour tous α, γ ∈ Ord, γ =
̸ 0, on a
ℵα < ℵα+γ , puisque tout β > α peut s’écrire sous cette forme :
• on sait que pour tout cardinal κ, κ+ > κ, donc si γ = S γ ′ , on a

ℵα < ℵα+γ ′ < ℵα+γ

d’où le résultat par transitivité de <.


• si γ est limite et que pour tout δ < γ, ℵα < ℵα+δ , alors ℵα+γ = δ<γ ℵα+δ donc,
S

par hypothèse d’induction, ℵα < ℵα+δ ≤ ℵα+γ d’où le résultat.


Ainsi par induction transfinie, on en déduit que ℵ est strictement croissante.
(ii) Par induction transfinie sur α :
• si α = 0, l’inégalité est 0 ≤ ω, ce qui est vrai.
• si α ≤ ℵα , alors par croissance de x 7→ x + 1, on sait que S α ≤ S ℵα , mais
∼ ℵα , donc S ℵα < ℵ+ = ℵS α ,
comme ℵα est un cardinal infini, on sait que S ℵα = α
donc S α < ℵS α .
• si α est limite et que pour tout β < α, β ≤ ℵβ , alors
[
α= β
β<α
[
≤ ℵβ
β<α

≤ ℵα

d’où le résultat.
Le résultat est donc vérifié par induction transfinie.
(iii) Par l’absurde, supposons qu’il existe des valeurs non atteintes. Soit la plus petite
valeur non atteinte, κ. On pose alors

α = {γ ∈ Ord | ℵγ < κ}

qui est un ordinal.


Si α = β + 1 pour un certain β, alors on sait que ℵα est le plus petit cardinal
strictement supérieur à ℵβ , c’est-à-dire κ.
[
Si α est limite, alors κ = ℵα donc κ = ℵα .
β∈α
Par l’absurde, ℵ est surjective.
160 Chapitre 7. Ordinaux, cardinaux, cofinalité

Remarque 7.2.2.8. Dans la preuve que α ≤ ℵα , on voit que le cas successeur et le cas
nul donnent une inégalité stricte. On pourrait s’attendre à ce que α < ℵα , mais on peut en
réalité construire une infinité de points fixes de α, en considérant pour chaque ordinal α la
suite (
α si n = 0
αn ≜
ℵαn sinon
[
l’ordinal αn est alors un point fixe de ℵ au-dessus de α.
n∈N

Définition 7.2.2.9 (Cardinal limite). On dit qu’un cardinal κ est limite s’il est un
cardinal de la forme ℵλ pour λ limite. De façon équivalente, cela signifie qu’il n’est pas un
cardinal successeur.
Remarque 7.2.2.10. Le fait de considérer que ω est ou non un cardinal limite dépend des
conventions, mais les cardinaux limite d’intérêt sont surtout les cardinaux non dénombrables.

7.2.3 Arithmétique cardinale


L’arithmétique cardinale, contrairement à l’arithmétique ordinale, est très pauvre
(et donc très simple). En effet, pour des cardinaux infinis, il n’existe que le maximum et
l’exponentiation. On va d’abord prouver le résultat central qui rend l’arithmétique cardinale
si simple.
Théorème 7.2.3.1 (Hessenberg [Hes06]). Si X est un ensemble infini, alors X ×X ∼
= X.
Démonstration. On prouve ce résultat pour un cardinal κ (supposé infini), et on peut
étendre ce résultat par bijection entre un ensemble X et son cardinal.
On veut d’abord définir un bon ordre sur tout ordinal α × α. Pour cela, on définit plus
généralement un bon ordre sur Ord × Ord, qu’on note , par :

′ ′
 max(α, α ) < max(β, β )

(α, α′ )  (β, β ′ ) ≜ ou
 max(α, α′ ) = max(β, β ′ ) et (α, α′ ) < (β, β ′ )

lex

(où <lex est l’ordre lexicographique sur les paires).


On souhaite donc montrer que  est un bon ordre strict. Le fait que c’est un ordre
total découle directement du fait que < et <lex le sont. On considère donc un ensemble
S ⊆ Ord × Ord, et on veut montrer qu’il existe un minimum à S pour . Soit

S ′ ≜ {max(aα, β) | (α, β) ∈ S}

Par l’axiome de remplacement, S ′ est un ensemble, et ses éléments sont des ordinaux : on
peut donc lui trouver un minimum γ. Soit alors

S ′′ ≜ {(α, β) ∈ S | max(α, β) = γ}

Cet ensemble est une partie non vide de S. De plus, on voit que puisque max(α, β) est
constant sur S ′′ , <lex et  coïncident sur S ′′ . Puisque γ est choisi minimal, cela signifie
que le minimum de S ′′ pour <lex est le minimum de S pour . Ainsi,  est un bon ordre
sur Ord × Ord.
On veut maintenant prouver que type(κ × κ, ) = κ pour tout cardinal infini κ. Par
l’absurde, supposons que cela n’est pas le cas, et que κ est le tel cardinal minimum. On
peut remarquer que κ > ω.
7.2. Cardinaux 161

Soit α < κ un ordinal. On sait que |α × α| < κ puisque κ est choisi minimal, donc pour
tout α < κ on sait que type(|α| × |α|, ) = |α|. Soit δ = type(κ × κ, ). Par hypothèse,
δ ̸= κ. Soit f : δ → κ × κ l’isomorphisme entre (δ, ∈) et (κ × κ, ).
Si δ > κ, alors soient (η, ξ) = f (κ) et α = max(η, ξ) + 1. κ est un cardinal infini,
donc un ordinal limite : on en déduit que α < κ, donc on peut majorer pour tout β < κ,
f (β) ≤ α × α (puisqu’on sait que f est un isomorphisme et que f (κ) < (α, α)). On a donc
trouvé une injection de κ vers α × α, donc κ ⪯ α × α < κ, qui est une contradiction.
Si δ < κ, alors κ ⪯ κ × κ par l’injection α 7→ (α, 0), et κ × κ ∼
= δ par définition, donc
par transitivité κ ≺ δ < κ, ce qui est encore une contradiction.
Ainsi, le seul cas possible est δ = κ, donc on peut trouver un bon ordre de type κ sur
κ × κ, ce qui revient à dire que κ ∼ = κ × κ.
A partir de ce théorème, on peut montrer ce que l’on souhaite sur l’addition et le
produit.
Proposition 7.2.3.2. Soient deux ensembles X, Y infinis, on a les deux identités
Card(X + Y ) = max(Card(X), Card(Y )) Card(X × Y ) = max(Card(X), Card(Y ))
Démonstration. On a une injection X + Y → X × Y , une injection X → X + Y et une
injection Y → X + Y . Il nous suffit donc de montrer que X × Y s’injecte dans le plus grand
ensemble entre X et Y , disons sans perte de généralité que le plus grand est Y . Comme X
s’injecte dans Y et que Y × Y s’injecte dans Y par le théorème précédent, X × Y s’injecte
dans Y , ce qui est le résultat souhaité. On en déduit les deux égalités.

On peut montrer qu’en fait ce résultat se généralise pour des unions bien plus grandes.
Proposition 7.2.3.3. Soit (Xi )i∈I une famille d’ensembles de cardinaux inférieurs à κ
indicée par un ensemble I de cardinal inférieur à κ, où κ est un certain cardinal. Alors
[ 
Card Xi ≤ κ
i∈I

Démonstration. On considère que I est non vide et que chaque Xi est aussi non vide (les
cas d’ensembles vides sont strictement plus simples à traiter). Comme Card(I) ≤ κ, on
peut trouver une injection Card(I) → κ et donc une surjection g : κ → Card(I). Il y a
aussi, pour chaque i ∈ I, une surjection κ → Xi par le même argument. On peut réécrire
cela en disant que pour tout α < κ, il existe une surjection κ → Xg(α) .
[
On utilise alors le théorème 7.2.1.5 pour fixer un bon ordre <1 sur Funct(κ, Xi ).
i∈I
Pour α < κ, on définit gα l’élément minimal pour <1 tel que Im(gα ) = Xg(α) : c’est donc
une surjection κ → Xg(α) . On définit maintenant

h : κ × κ −→
S
i∈I Xi
(α, β) 7−→ gα (b)
[
h est surjective, donc comme |κ×κ| = κ, on en déduit qu’il existe une surjection κ → Xi ,
i∈I
donc une injection dans l’autre sens (par un corollaire de l’axiome du choix).

Il nous reste à traiter du cas de l’exponentiation. Si l’on décidait simplement d’ordonner


les fonctions à support fini, le cardinal resterait le même. A la place, on considère l’ensemble
de toutes les fonctions, qui ne pouvait pas bien s’ordonner par une simple construction
ordinale. On peut ici lui donner un bon ordre grâce au théorème de Zermelo, mais on verra
que celui-ci ne se comporte pas aussi bien qu’on le voudrait.
162 Chapitre 7. Ordinaux, cardinaux, cofinalité

Définition 7.2.3.4 (Exponentiation cardinale). Soient κ et κ′ deux ordinaux. On


définit l’exponentiation par

κκ ≜ Card(Funct(κ, κ′ ))
Exercice 7.2.3.5. Vérifier que l’exponentiation cardinale est une fonction croissante en
ses deux arguments.
Notation 7.2.3.6. On a ici une ambigüité : ω ω peut vouloir dire deux choses suivants si
on considère l’exponentiation ordinale ou cardinale. Pour lever cette ambigüité, on notera
chaque fois ℵ0 (respectivement ℵα ) pour montrer qu’on utilise les opérations ordinales, ou
on utilisera les lettres κ et λ réservées implicitement aux cardinaux.
Remarque 7.2.3.7. Le cardinal 2κ est exactement le cardinal de P(κ).
Proposition 7.2.3.8. On a l’égalité suivante, pour tout ensemble X infini :

Card(X)Card(X) = 2Card(X)
∼ X, et X ∼
Démonstration. Comme X est infini, X ×X = = 2×X. On a d’une part l’inégalité
suivante :
 Card(X)
Card(X)Card(X) ≤ 2Card(X)
= 2Card(X)×Card(X)
= 2Card(X)

et d’autre part l’inégalité suivante :

2Card(X) ≤ Card(X)Card(X)

D’où l’égalité des deux cardinaux.

On voit donc que l’exponentiation est surtout utile pour considérer le cardinal de
l’ensemble des parties. On va donc définir la hiérarchie ℶ de façon analogue à ℵ, mais en
itérant l’exponentiation.
Définition 7.2.3.9 (Fonction beth). On définit la fonction ℶ : Ord → Card par récursion
transfinie :
• ℶ0 = ℵ0
• ℶα+1 = 2ℶα
[
• pour tout ordinal λ limite, ℶλ = ℶβ
β<λ

La fonction ℶ est strictement croissante grâce au théorème de Cantor.


Théorème 7.2.3.10 (Cantor [Can91]). Soit X un ensemble, alors X ≺ P(X) (il y a
une injection mais pas de surjection de X dans P(X)).
Démonstration. L’injection est donnée par x 7→ {x}.
Supposons qu’il existe une surjection f : X → P(X). Soit alors l’ensemble

Y ≜ {x ∈ X | x ∈
/ f (x)}

Comme f est surjective, on trouve y tel que f (y) = Y . Alors si y ∈ Y , on en déduit que
y ∈ f (y) et donc que y ∈/ Y . Si y ∈
/ Y alors y ∈/ f (y) donc y ∈ Y . La situation est donc
absurde, donc il n’existe pas de telle surjection.
7.3. Cofinalité 163

La question vient donc naturellement : à quel point les deux hiérarchies coïncident-elles ?
Cette question mène à deux énoncés.

Définition 7.2.3.11 (Hypothèse du continu). On appelle hypotèse du continu l’asser-


tion
HC ≜ ℵ1 = ℶ1
et l’hypothèse du continu généralisée l’assertion

HCG ≜ ∀α ∈ Ord, ℵα = ℶα

Le fait est assez connu que HC et HCG sont en fait des énoncés indépendants de ZFC,
c’est-à-dire que si ZFC est cohérent, alors ZFC + HC comme ZFC +¬ HC sont cohérents
(et de même pour HCG).

7.3 Cofinalité
Pour introduire la notion de cofinalité, commençons par observer deux exemples. Tout
d’abord, étant donnée une famille finie (ni )i∈F d’entiers, la borne supérieure de cette famille
est un entier. Ainsi si (αi )i∈β est une famille d’ordinaux tous inférieurs strictement à ω, et
où β < ω, alors sup αi < ω.
Ce phénomène n’a rien de surprenant et, écrit comme ça, ne nous apporte pas vraiment
d’informations. Cependant, en le généralisant à ω1 , la chose devient alors moins intuitive.
En effet, si (αi )i∈β est une famille d’ordinaux dénombrables, et β est dénombrable, alors
sup αi est dénombrable, donc pour une famille (αi )i∈β où αi < ω1 pour tout i et β < ω1 ,
sup αi < ω1 . Le cardinal ω1 ne peut donc pas être atteint par une suite.
Au contraire, le cardinal ℵω peut parfaitement être atteint par une suite, dénombrable :
n 7→ ℵn est une telle suite. On voit donc apparaître une nouvelle propriété sur les ordinaux,
qui n’est pas simplement liée à la taille.
Nous allons dans un premier temps nous concentrer sur la définition de cofinalité, de
suite cofinale et sur les propriétés usuelles de cette notion. Nous verrons ensuite le théorème
de König et ses conséquences sur le cardinal d’un ensemble de parties.

7.3.1 Premières définitions


Nous avons parlé ci-dessus d’atteindre un ordinal. Une façon plus formelle de définir
cette idée est d’avoir une partie non strictement majorée, c’est-à-dire une partie X ⊆ α
telle que pour tout β ∈ α il existe γ ∈ X tel que β ≤ γ.

Définition 7.3.1.1 (Cofinalité). Soit α ∈ Ord, on dit qu’une partie X ⊆ α est cofinale si

∀β ∈ α, ∃γ ∈ X, β ≤ γ

On définit la cofinalité d’un ordinal α par :

cof(α) ≜ min{type(X) | X ⊆ α, X est cofinale}

Remarquons que, par définition, α est une partie cofinale dans lui-même, on a donc
l’inégalité cof(α) ≤ α.

Définition 7.3.1.2 (Ordinal régulier, cardinal singulier). Un ordinal α tel que


cof(α) = α est un ordinal régulier. Un cardinal qui n’est pas régulier est dit singulier.
164 Chapitre 7. Ordinaux, cardinaux, cofinalité

Exemple. ω est un ordinal régulier, et ω1 aussi, comme nous l’avons dit au début. ℵω est
un cardinal singulier, puisqu’il a une partie cofinale de type ω.

Éliminons maintenant le cas de la cofinalité finie. Le cas de la cofinalité nulle n’est


possible que pour l’ordinal nul, qui n’est pas très intéressant.

Proposition 7.3.1.3. Un ordinal α a une cofinalité finie non nulle si et seulement si


cof(α) = 1, si et seulement si α est un ordinal successeur.

Démonstration. Si α a une cofinalité finie non nulle, alors soit X une partie cofinale de
type n. On peut en prendre le maximum, qui est une partie cofinale, donc cof(α) = 1. Si
cof(α) = 1 alors on trouve β tel que ∀γ ∈ α, γ ≤ β, donc α = β + 1. Si α est successeur,
alors en prenant {β} tel que α = β + 1 on trouve une partie cofinale finie.

On va maintenant s’intéresser à l’effet des opérations ordinales sur la cofinalité, mais


nous avons d’abord besoin d’un lemme assez naturel.

Lemme 7.3.1.4. Soit α un ordinal limite et X une partie cofinale dans α. Alors on a
l’égalité cof(α) = cof(type(X)).

Démonstration. Soit Y ⊆ X telle que type(Y ) = cof(type(X)). Comme X est cofinale


dans α et Y est cofinale dans X, Y est cofinale dans α, donc cof(α) ≤ type(Y ), donc
cof(α) ≤ cof(type(X)).
Réciproquement, soit Y ⊆ α cofinale telle que type(Y ) = cof(α). On définit alors la
fonction
f : Y 7−→ X
y 7−→ min(X \ y)
L’image de f dans X est cofinale. En effet, si on prend β ∈ X, alors on peut trouver
γ ∈ α tel que β < γ (car α est limite). Comme Y est cofinale dans α, on trouve δ ∈ Y
tel que β < δ, mais alors f (δ) > δ par définition, donc β < f (δ), donc on trouve un
élément dans Im(f ) qui est supérieur à β. Comme Im(f ) est cofinale, on en déduit que
cof(type(X)) ≤ type(Y ), donc que cof(α) = cof(type(X)) par double inégalité.

Remarque 7.3.1.5. Une partie X cofinale à un ordinal α est une partie non strictement
bornée de α. Dans le cas d’une fonction f : X → α, on dira qu’elle est cofinale lorsque son
image est une partie cofinale.

On peut maintenant comprendre quel effet a une somme sur la cofinalité. Moralement,
l’ordinal α + β peut se voir comme la droite représentant α à laquelle on a accolé la droite
représentant β à sa fin. Ainsi, pour avoir une partie non bornée de α + β, la partie en α
n’importe pas, puisqu’il suffit de dépasser les éléments de β. De même α × β peut se voir
comme β successions de l’ordinal α. Si β est successeur, alors il suffit d’avoir une cofin à α
et de l’appliquer au dernier segment de α × β. Si β est limite, alors il faut au contraire
avoir une cofin à β pour l’appliquer à chaque copie de α.

Proposition 7.3.1.6. Soit α un ordinal limite, et β un ordinal. Alors


• cof(α + β) = cof(β)
• si β est successeur, cof(α × β) = cof(α)
• si β est limite, cof(α × β) = cof(β)

Démonstration. On prouve chaque point.


7.3. Cofinalité 165

• On a vu qu’une autre façon d’écrire α + β était comme type({0} × α ∪ {1} × β, <lex ).


Ainsi β est cofinal dans α + β, à l’encodage près, donc cof(β) = cof(α + β).
• Par définition, α × β = α × γ + α où β = γ + 1, donc avec l’argument précédent,
cof(α × β) = cof(α).
• Dans le cas où β est limite, en utilisant la représentation de α × β comme étant égal
à type(α × β, <lex ) avec le produit cartésien, on remarque que

F ≜ {(0, γ) | γ ∈ β}

est cofinal dans α × β. Donc cof(α × β) = cof(type(F )) et type(F ) = β, d’où le


résultat.
Chaque point est donc prouvé.

Pour donner les propriétés essentielles de la cofinalité, nous allons avoir besoin d’un
lemme technique pour comparer des cofinalités à partir de fonctions.

Proposition 7.3.1.7. Soient α, β deux ordinaux, f : β → α une fonction telle que l’image
de f est cofinale dans α. Alors cof(α) ≤ β.

Démonstration. On pose

C ≜ {γ ∈ β | ∀δ < γ, f (δ) < f (γ)}

et
B ≜ f (C)
Comme C ⊆ β, on sait que type(B) ≤ type(C) ≤ β. On veut maintenant prouver que B
est cofinal dans α, ce qui nous permettra alors d’en déduire que cof(α) ≤ β.
Soit ξ ∈ α, comme f est cofinale dans α, on sait que {γ ∈ β | ξ ≤ f (γ)} est non vide,
donc on peut en trouver un minimum γ0 . Pour δ < γ0 , par minimalité de γ0 on sait que
f (δ) < ξ ≤ f (γ0 ), donc γ0 ∈ C. On en déduit que f (γ0 ) ∈ B et que f (γ0 ) ≥ ξ, donc B est
cofinal dans α.

On en déduit une version plus précise dans le cas d’une fonction croissante.

Proposition 7.3.1.8. Soient α, β deux ordinaux, f : β → α une fonction croissante (au


sens large) telle que l’image de f est cofinale dans α. Alors cof(α) ≤ cof(β).

Démonstration. Soient γ = cof(β) et g : γ → β une fonction strictement croissante


témoignant du fait que γ est cofinal à β. On remarque alors que f ◦ g : γ → α est cofinale
à α. En effet, pour tout ξ ∈ α, on peut trouver δ ∈ β tel que f (δ) ≥ ξ, puis η tel que
g(η) ≥ δ, d’où par croissance f (g(η)) ≥ ξ.
Ainsi, en utilisant le proposition 7.3.1.7, on sait que cof(α) ≤ γ, c’est-à-dire que
cof(α) ≤ cof(β).

On peut maintenant prouver les propriétés essentielles sur la cofinalité, et en particulier


qu’un ordinal régulier est en fait un cardinal.

Proposition 7.3.1.9. Soit α un ordinal limite. Alors on a la suite d’inégalités :

ω ≤ cof(α) ≤ |α| ≤ α
166 Chapitre 7. Ordinaux, cardinaux, cofinalité

Démonstration. Le fait que |α| ≤ α est par définition, de même ω ≤ cof(α) se déduit
du résultat sur la cofinalité finie. On veut donc montrer que cof(α) ≤ |α|. On sait par
définition qu’on dispose d’une fonction f : |α| → α surjective, donc cofinale. En utilisant le
proposition 7.3.1.7, on en déduit donc que cof(α) ≤ |α|.

Propriété 7.3.1.10. Soit α un ordinal régulier, alors α est un cardinal.


Démonstration. On sait que cof(α) ≤ |α| ≤ α, donc dans le cas où α = cof(α) on en déduit
que |α| = α, donc α est un cardinal.

Propriété 7.3.1.11. Soit α ∈ Ord, cof(α) est un cardinal régulier.


Démonstration. On trouve une partie X ⊆ α de type cof(α) cofinale dans α, par définition
de cof(α). Alors en utilisant le lemme 7.3.1.4, on en déduit que cof(α) = cof(cof(α)).

On a vu dans le cas de ω et ω1 que des suites finies (respectivement dénombrables)


d’éléments finis (respectivement dénombrables) ont une limite finie (respectivement dénom-
brable). Cette propriété se généralise pour caractériser les inégalités sur les cofinalités.
Proposition 7.3.1.12. Soient κ et λ deux cardinaux infinis. L’inégalité κ < cof(λ) est
vraie si et seulement si toute fonction f : κ → λ est bornée.
Démonstration. On prouve les deux sens de l’équivalence par contraposée. Si κ ≥ cof(λ),
alors on trouve une partie X ⊆ λ telle que type(X) = cof(λ), cofinale dans λ. On pose
alors une énumération strictement croissante (xα )α<cof(λ) de X :

X = {xα | α < cof(λ)}

On considère alors la fonction


f : κ −→ λ
(
xα si α < cof(λ)
γ 7−→
0 sinon

qui est cofinale dans λ.


Réciproquement, s’il existe f : κ → λ cofinale, alors on sait que f (κ) est de cardinal
au plus κ, donc de type d’ordre strictement inférieur à κ+ . Comme on sait que f (κ) est
cofinale dans λ, on en déduit que κ+ > type(f (κ)) ≥ cof(λ), donc κ ≥ cof(λ) car cof(λ)
est un cardinal.

On va maintenant affiner le critère de régularité. Tout d’abord, un cardinal successeur


est régulier.
Théorème 7.3.1.13. Soit κ un cardinal infini. Alors κ+ est régulier.
Démonstration. Par l’absurde, supposons qu’on trouve X une partie cofinale de κ+ de
cardinal inférieur à κ. Comme X est une partie cofinale, sup X = κ+ , or on sait que chaque
élément de X est de cardinal inférieur à κ, donc en utilisant le proposition 7.2.3.3, on sait
que Card(sup X) ≤ κ, ce qui est absurde. On en déduit que κ+ est régulier.

Pour les cardinaux limites, on a un résultat beaucoup plus faible.


Proposition 7.3.1.14. Soit κ = ℵγ où γ est un ordinal limite. Alors cof(κ) = cof(γ).
Démonstration. Soit X = {ℵβ | β < γ}, alors type(X) = γ, donc par le lemme 7.3.1.4,
cof(κ) = cof(type(X)).
7.3. Cofinalité 167

On voit en particulier que dans le cas d’un point fixe de ℵ, cette propriété ne donne
pas d’information. En particulier, il est possible d’imaginer un cardinal qui est à la fois un
cardinal limite et un cardinal régulier, mais celui-ci ne pourra donc pas s’écrire comme
construction à partir de nos opérations cardinales et ordinales habituelles.

Définition 7.3.1.15 (Cardinal faiblement inaccessible). On dit qu’un cardinal κ > ℵ0


est faiblement inaccessible si κ est à la fois un cardinal limite et un cardinal régulier.

7.3.2 Répartition des cofinalités


On a vu dans la proposition 7.3.1.6 que la cofinalité interagit de façon assez inattendue
avec les opérations. En particulier, celle-ci n’est pas croissante, et la répartition des
cofinalités en-dessous d’un cardinal donné est assez anarchique.
Nous allons voir dans cette sous-section qu’en fait, dans un cardinal κ fixé, toutes les
cofinalités en-dessous de κ sont représentées arbitrairement haut.

Proposition 7.3.2.1. Soient κ et µ deux cardinaux infinis. On peut trouver λ tel que
µ ≤ λ, cof(λ) = cof(κ), et même tel que ℵλ = λ.

Démonstration. Pour commencer, on définit la classe C suivante :

C ≜ {α ∈ Ord | α = ℵα }

Une première remarque est que si X ⊆ C est un ensemble, alors sup X ∈ C. En effet,
comme ℵ est continue, on peut faire le calcul suivant :

ℵsup X = sup ℵγ
γ∈X

= sup γ
γ∈X

= sup X

Où le passage de la deuxième à la troisième ligne est donné par le fait que X ⊆ C. De plus,
C est non borné dans Ord. En effet, si α est un ordinal, alors on peut construire la suite
(αn ) définie par (
α0 = α + 1
αn+1 = ℵαn
On voit alors que supn∈N αn est un ordinal strictement supérieur à α qui est un point fixe
de ℵ.
On construit maintenant une fonction f : Ord → C par induction transfinie :
• f (0) = min C.
• si f (α) est défini, alors f (α + 1) = min(C \ (f (α) + 1)), qui est bien défini car C est
non borné, donc la classe dont on prend le minimum est non vide.
• si β est un ordinal limite, alors f (β) = supα∈β f (α), qui est bien défini car on a vérifié
que C était stable par borne supérieure.
On a ainsi une fonction f , strictement croissante, dont on peut prouver qu’elle atteint tout
élément de C (par un argument similaire à ce qui a été fait pour la surjectivité de ℵ).
On pose maintenant

λ ≜ f (µ + κ) X ≜ {f (µ + α) | α < κ}
168 Chapitre 7. Ordinaux, cardinaux, cofinalité

On sait que X est une partie de λ de type d’ordre κ, puisque c’est l’image par une
fonction strictement croissante de κ. De plus, comme κ est un ordinal limite (car c’est
un cardinal infini), X est cofinale dans λ. On en déduit donc, par le lemme 7.3.1.4, que
cof(λ) = cof(type(X)), c’est-à-dire que cof(λ) = cof(κ). On en déduit donc le résultat
souhaité.

Proposition 7.3.2.2. Soient κ, λ deux ordinaux réguliers infinis, avec κ < λ. Alors

Eκλ ≜ {α < λ | cof(α) = κ}

est un ensemble cofinal dans λ.

Démonstration. Soit β < λ. Alors β + κ < λ et cof(β + κ) = cof(κ) = κ.

7.3.3 Théorème de König


Cette sous-section s’intéresse au théorème de König, qui est une des principales utilisa-
tions de la cofinalité. Nous allons en voir les principales conséquences, mais commençons
par le théorème lui-même.

Théorème 7.3.3.1 (König [Kön04]). Soit κ un cardinal. Alors :


• si κ est régulier, alors pour toute famille F d’ensembles telle que |F| < κ et pour
tout X ∈ F, |X| < κ, on a
[
F < κ.
• si cof(κ) < κ, alors il existe
[ une famille F de parties de κ telle que |F| = cof(κ), pour
tout X ∈ F, |X| < κ, et F = κ.

Démonstration. On prouve les deux points :


• soit
Y ≜ {Card(X) | X ∈ F}
On sait que Y ⊆ κ et |Y | < κ, donc Y est bornée d’après la proposition 7.3.1.12 et le
fait que κ est régulier. Soit λ = max(|F|, sup Y ). D’après ce qui a été dit, λ < κ, et
on sait que F est l’union d’un nombre inférieur à λ de parties de cardinal inférieur
S

à λ, donc d’après la proposition 7.2.3.3, on en déduit que le cardinal de F est


S

inférieur à λ, donc strictement inférieur à κ.


• si cof(κ) < κ, on peut trouver une partie F ⊆ κ de taille cof(κ) cofinale dans κ.
Comme κ est un cardinal et que tout élément de F est un élément de κ, on en déduit

∀α ∈ F, |α| < κ

F = κ, on en déduit le résultat.
S
Ainsi, comme
D’où le résultat.

On peut maintenant en tirer deux conséquences sur l’exponentiation cardinale.

Proposition 7.3.3.2. Soit κ un cardinal infini. Alors κcof(κ) > κ.

Démonstration. Soit f : cof(κ) → κ une fonction cofinale (qui existe par définition de
cof(κ)). Supposons par l’absurde qu’il existe une surjection g : κ → κcof(κ) . On définit

h : cof(κ) −→ κ
α 7−→ min(κ \ {g(β)(α) | β < f (α)})
7.3. Cofinalité 169

Comme g est une surjection, on trouve β tel que h = g(β). On trouve α < cof(κ) tel que
f (α) > β, par définition de la cofinalité de f (et le fait que cof(κ) et κ sont des ordinaux
limites). On sait alors que h(α) > g(β)(α), donc h ̸= g(β), ce qui est une contradiction.
Ainsi g ne peut être surjective, donc κcof(κ) > κ.

Théorème 7.3.3.3. Soit κ ≥ 2 et λ un cardinal infini. Alors cof(κλ ) > λ.

Démonstration. Supposons par l’absurde que cof(κλ ) ≤ λ. On a alors la chaîne d’inégalités


suivante :
λ
κλ < (κλ )cof(κ ) ≤ (κλ )λ = κλ×λ = κλ
ce qui est absurde.

On sait donc que la fonction κ 7→ 2κ vérifie les propriétés suivantes :


• κ < 2κ (théorème de Cantor)
• si κ < λ alors 2κ ≤ 2λ (croissance)
• κ < cof(2κ ) (théorème de König)
En fait, on peut prouver qu’il est impossible d’être plus précis que ces trois conditions
dans le cas des cardinaux réguliers : c’est le théorème d’Easton [Eas70]. Plus précisément,
pour toute fonction f : C → Card croissante, où C est un ensemble de cardinaux réguliers,
qui vérifie κ < cof(f (κ)), il existe un modèle de ZFC vérifiant que κ 7→ 2κ coïncide avec f .
170 Chapitre 7. Ordinaux, cardinaux, cofinalité
Chapitre 8
Combinatoire dans les ordinaux

Table des sous-matières


8.1 Clubs et ensembles stationnaires . . . . . . . . . . . . . . . . . . 171
8.1.1 Topologie des ordinaux . . . . . . . . . . . . . . . . . . . . . . . 171
8.1.2 Filtre des clubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.1.3 Exemples importants . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.2 Lemme de Fodor et applications . . . . . . . . . . . . . . . . . . 178
8.2.1 Lemme de Fodor . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.2.2 Théorème de Silver . . . . . . . . . . . . . . . . . . . . . . . . . . 182

ans ce chapitre, nous étudions les notions combinatoires liées aux ordinaux. L’objectif
D du chapitre est d’aborder les ensembles stationnaires et les clubs, en en voyant les
principales propriétés.
Nous verrons avant tout ce qu’est un ensemble stationnaire, dont l’utilisation est
omniprésente en théorie des ensembles modernes. Nous donnerons ensuite le lemme de
Fodor.

8.1 Clubs et ensembles stationnaires


Pour pouvoir étudier les ensembles stationnaires, il est nécessaire de définir avant les
clubs, qui sont une notion liée à la topologie des ordinaux, que nous abordons donc en
premier lieu.

8.1.1 Topologie des ordinaux


La topologie des ordinaux commence par la notion plus générale de topologie de l’ordre,
qui peut se définir pour tout ensemble ordonné.

Définition 8.1.1.1 (Topologie de l’ordre). Soit (X, ≤) un ensemble ordonné. On définit,


pour tous a, b ∈ X, le segment ouvert

(a, b) ≜ {x ∈ X | a < x < b}

La topologie de l’ordre sur X est alors la topologie engendrée par la famille de parties
{(a, b)}a,b∈X∪{±∞} , où un segment ouvert de la forme (−∞, a) signifie {x | x < a} (les
autres cas sont traités de façon analogue).

171
172 Chapitre 8. Combinatoire dans les ordinaux

On peut donc définir naturellement une topologie sur un ordinal α, en considérant la


topologie de l’ordre pour ∈ sur α.

Exemple. Considérons l’ordinal ω + 3, la partie ω en est un ouvert puisqu’elle peut s’écrire


(−∞, ω). De plus, ω + 1 est aussi un ouvert : il vaut (−∞, ω + 1) mais il est aussi un fermé,
puisque son complémentaire est (ω + 1, +∞).

Ces exemples nous montrent que les ordinaux successeurs ont un comportement relati-
vement dégénéré.

Proposition 8.1.1.2. Soit α un ordinal. Pour tout β ∈ α, β + 1 est un point isolé dans α,
c’est-à-dire que {β + 1} est un ouvert dans α. C’est aussi le cas de 0.

Démonstration. Il suffit de voir que {β + 1} = (β, β + 2). Pour 0, on a {0} = (−∞, 1).

Proposition 8.1.1.3. Soit α un ordinal. Pour tout β ∈ α, β (en tant que partie de α) est
un ouvert de α.

Démonstration. β est simplement (−∞, β).

On remarque donc que ω est muni de la topologie discrète. Par contre, ω dans ω + 1
par exemple n’est pas un point isolé. En effet, si on veut qu’un ouvert de base contienne ω,
alors il doit contenir un élément strictement inférieur à ω, qui est donc un élément n ∈ ω.
On a alors tous les éléments m > n dans notre partie, puisqu’ils sont entre n et ω. Sachant
qu’un ouvert est une union d’ouverts de base, il sera donc impossible de ne pas contenir au
moins un segment finissant de ω si on veut contenir ω. Plus généralement, pour contenir
un ordinal limite dans un ouvert, il faut en contenir un segment finissant.
Cependant, c’est ici la notion de fermé qui nous intéressera. On a vu qu’un ouvert
ne peut pas contenir une limite sans contenir ce qu’il y a en-dessous. Si on passe au
complémentaire, on va voir que cela traduit ce qu’est un fermé par le fait qu’il est clos par
borne supérieur : c’est un sens très proche du sens séquentiel, où une partie est fermée si
et seulement si toute suite convergente reste dans la partie. Ici, plutôt qu’une suite, on
prend une famille quelconque, et plutôt que la limite on utilise la borne supérieure.

Proposition 8.1.1.4. Soit α un ordinal. Une partie C ⊆ α est un fermé si et seulement si


pour toute partie X ⊆ C, si sup X ∈ α alors sup X ∈ C.

Démonstration. Supposons que C est un fermé et soit X ⊆ C tel que sup X ∈ α. On veut
montrer que sup X est dans l’adhérence de C (qui est C lui-même par hypothèse). Soit
U un ouvert contenant sup X, sans perte de généralité (quitte à prendre une plus petite
partie) on peut considérer que U = (β, γ) où β < sup X < γ, mais alors par définition
de sup X, on trouve δ ∈ X tel que β < δ < sup X, donc U ∩ X = ̸ ∅, ce qui signifie que
sup X ∈ X.
Réciproquement, supposons que pour tout X ⊆ C, si sup X ∈ α alors sup X ∈ C. On
veut montrer que C est fermé. Pour cela, on va montrer que tout point adhérent de X
c
est dans X. Soit x ∈ X : si x est un successeur ou 0 alors il est un point isolé, donc il
appartient directement à X en considérant le fait que {x} ∩ X est non vide. On suppose
donc que x est une limite, et on construit une famille {xβ } d’éléments de X dont le sup
est x :
• on définit x0 comme un élément de (−∞, x) ∩ X, qui est non vide car x est adhérent
à X.
• si on a défini xα , alors xα+1 est un élément de (xα , x) ∩ X.
8.1. Clubs et ensembles stationnaires 173

• si λ est limite, alors xλ = supβ<λ xβ , qui est un élément de X car tous les xβ sont
inférieurs à x, donc sup xβ ∈ α, et en utilisant notre hypothèse sur X.
On a donc créé une suite strictement croissante de Ord dans (−∞, x) ∩ X, ce qui est
impossible. Notre famille finit donc à un certain γ, et supβ<γ xβ = x, donc en utilisant
notre hypothèse sur X on en déduit que x ∈ X.

Enfin, donnons un résultat caractérisant les ordinaux compacts.

Proposition 8.1.1.5. Soit α un ordinal, celui-ci est compact pour la topologie de l’ordre
si et seulement s’il est un successeur ou 0.

Démonstration. On va d’abord montrer qu’un ordinal compact est successeur ou 0 par


contraposée. Supposons que α est un ordinal limite. Alors on considère le recouvrement

F ≜ {(−∞, β)}β∈α

Pour toute partie F ⊆fin F, on trouve un plus grand β tel que F = (−∞, β), donc
S

β+1∈
S
/ F . On a donc un recouvrement dont on ne peut extraire un recouvrement fini :
α n’est pas compact.
Montrons maintenant qu’un ordinal successeur est compact. Par l’absurde, supposons
qu’il existe un plus petit ordinal α non compact et successeur, et soit β tel que α = β + 1.
Soit
F ≜ {(γi , δi ) | i ∈ κ}
un recouvrement de α par des ouverts de base, où κ est le cardinal de F. Soit j ∈ κ tel
que β ∈ (γj , δj ) et γ = min((γj , δj )), c’est-à-dire γj + 1 = γ. Comme on sait que F est un
recouvrement de α, on en déduit que

F ′ ≜ {(γi , δi ) ∩ γ | i ∈ κ}

est un recouvrement de γ constitué d’ouverts de base. Par hypothèse de minimalité de α,


et comme γ < α (puisque β ∈ (γj , δj )) et est un successeur, on en déduit qu’il existe un
sous-recouvrement F ⊆fin F ′ de γ. Alors en posant J ⊆fin κ tel que F = {(γi , δi )∩γ | i ∈ J},
on en déduit que F ′ = {(γi , δi ) | i ∈ J} ∪ {(γj , δj )} est un sous-recouvrement fini de F.
Donc α est compact, ce qui contredit notre hypothèse. Par l’absurde, on en déduit que
tout ordinal successeur est compact.

8.1.2 Filtre des clubs


On a vu dans le chapitre précédent qu’on pouvait considérer des parties cofinales dans
un ordinal α. Étant données deux parties cofinales, il est possible de différencier celles qui
sont « suffisament pleines » dans α de celles qui ont de nombreux trous (en un certain
sens). On introduit donc une nouvelle notion, combinant la cofinalité (s’étendre assez haut
dans l’ordinal α) et la topologie (être assez non dispersé) pour définir ce qu’est un club.

Définition 8.1.2.1 (Club). Soit α un ordinal. Un club (abréviation de l’anglais closed


unbounded) est une partie C ⊆ α qui est fermée dans α muni de la topologie de l’ordre, et
cofinale dans α.

Un club est donc une grosse partie de α. En particulier, en suivant l’intuition que l’on a
donné dans le chapitre 4, une telle notion de grosse partie devrait former un filtre. On peut
imaginer une partie contenant un club mais n’étant pas un club, donc on voudra plutôt
considérer le filtre engendré par cette famille de parties.
174 Chapitre 8. Combinatoire dans les ordinaux

Cependant, pour construire ce filtre, il est nécessaire (pour que le filtre ne soit pas
trivial) que les clubs soient stables par intersection finie. En l’occurrence, ça n’est pas
le cas dans le cas général, mais c’est le cas à partir du moment où la cofinalité de α est
indénombrable.
Proposition 8.1.2.2. Soit α un ordinal infini. Alors cof(α) > ℵ0 si et seulement si
l’intersection de deux clubs est encore un club.
Démonstration. Commençons par le cas où cof(α) ≤ ℵ0 . Dans ce cas, on peut trouver une
suite (αn ) strictement croissante cofinale dans α. Soient alors (α2n ) et (α2n+1 ) deux suites
extraites. Les images B et C, respectivement, de (α2n ) et (α2n+1 ), sont cofinales dans α et
disjointes. De plus, B et C sont des parties fermées de α. On a donc trouvé deux parties
disjointes de α qui sont des clubs.
Supposons maintenant que cof(α) > ℵ0 . Soient alors C1 et C2 deux clubs de α. Montrons
que C1 ∩ C2 est encore un club :
• c’est une intersection de fermés, donc c’est un fermé.
• soit β ∈ α, montrons qu’il existe γ ∈ C1 ∩ C2 tel que β ≤ γ. Pour cela, on construit
une suite (γn ) d’éléments supérieurs à β : comme C1 est cofinal dans α, on définit
γ2n+2 comme un élément supérieur à γ2n+1 qui est dans C1 et γ2n+1 comme un
élément supérieur à γ2n qui est dans C2 , et on fixe γ0 = β.
Comme cof(α) > ℵ0 , sup γn ∈ α, donc comme (γ2n+2 ) est une suite à valeurs dans
C1 qui est fermé, sup γn ∈ C1 et de même sup γn ∈ C2 car (γ2n+1 ) est une suite à
valeurs dans C2 .
Ainsi C1 ∩ C2 est bien cofinal dans α.
On en déduit donc que si cof(α) > ℵ0 , alors l’intersection de deux clubs est encore un
club.

Comme la condition porte sur la cofinalité, qui est une notion cardinale, on parlera à
partir de maintenant de cardinaux réguliers. Il est en général possible de généraliser les
résultats au cas d’un ordinal quelconque en traduisant les conditions sur sa cofinalité, mais
parler uniquement de cardinaux réguliers simplifie les énoncés et suffit en pratique.
Définition 8.1.2.3 (Filtre des clubs). Soit κ ≥ ℵ1 un cardinal régulier. On définit le
filtre propre des clubs de κ par
F
Clubκ ≜ {C ⊆ κ | C est un club}

Démonstration. On a vérifié que l’intersection de deux clubs est encore un clubs, donc
l’intersection d’un nombre fini de clubs est encore un club. En particulier, l’intersection
d’un nombre fini de clubs est non vide, donc le filtre engendré par la famille des clubs de κ
est un filtre propre.

Donnons d’abord une famille d’éléments de ce filtre.


Propriété 8.1.2.4. Soit κ un cardinal régulier indénombrable. L’ensemble Clubκ contient
toutes les parties de la forme {β ∈ κ | α ≤ β} pour α ∈ κ.
Démonstration. Soit α ∈ κ, montrons que {β ∈ κ | α ≤ β} est un club :
• il est fermé car le complémentaire de l’ouvert α.
• il est cofinal dans κ puisque si α ≤ β, alors α ≤ β + 1.
Clubκ contient donc toutes les parties co-bornées.
8.1. Clubs et ensembles stationnaires 175

Définissons maintenant les parties non stationnaires et stationnaires.

Définition 8.1.2.5 (Parties stationnaires, non stationnaires). Soit κ un cardinal régu-


lier indénombrable. Une partie X ⊆ κ est dite non stationnaire si elle est le complémentaire
d’un élément de Clubκ . Elle est dite stationnaire si elle n’est pas non stationnaire.

De la même façon que les parties de R de complémentaire négligeable forment un filtre


dont le complémentaire forme l’idéal des parties négligeables (de mesure nulle), on a ici
les parties non stationnaires qui sont négligeables en un sens. Une partie stationnaire est
alors l’analogue d’une partie de mesure non nulle dans R. On donne une caractérisation
des parties stationnaires, qui peut largement être prise comme définition.

Proposition 8.1.2.6. Une partie X est stationnaire si et seulement si elle intersecte tous
les clubs de κ.

Démonstration. X est non stationnaire si et seulement si κ \ X contient un club C, ce


qui est équivalent à dire que X est disjoint avec au moins un club de κ : on en déduit
l’équivalence annoncée.

8.1.3 Exemples importants


Dans cette sous-section, nous traitons des cas élémentaires qu’il est important de couvrir
pour avoir une certaine intuition des clubs et ensembles stationnaires.
Pour commencer, un exemple important de club est celui des points de fermeture, que
l’on va définir d’abord.

Définition 8.1.3.1 (Point de fermeture). Soit α un ordinal et f : α → α. On dit qu’un


point β ∈ α est un point de fermeture de f lorsque

∀γ < β, f (γ) < β

ou, de façon équivalence, lorsque f (β) ⊆ β en considérant l’image directe pour f (β) (et
non l’image de β). On notera Clos(f ) l’ensemble des points de fermeture de f .

Proposition 8.1.3.2. Soit κ un ordinal régulier indénombrable et f : κ → κ, alors Clos(f )


est un club de κ.

Démonstration. On vérifie que Clos(f ) est un club :


• soit X ⊆ Clos(f ), montrons que sup X ∈ Clos(f ). Si sup X ∈ X le résultat est
évident. On suppose donc que sup X est un ordinal limite. Soit β ∈ sup X, comme
sup X est limite, on trouve α ∈ X tel que β + 1 ≤ α, et comme β < α et α ∈ Clos(f ),
on en déduit que f (β) < α < sup X, donc pour tout β ∈ sup X, f (β) < sup X, d’où
X ∈ Clos(f ).
• de plus Clos(f ) est cofinal dans κ. Soit β ∈ κ, on définit la suite

α0 ≜ β + 1

 

α n+1 ≜ sup f (δ) +1
δ≤αn

Comme on a une suite dans un ordinal régulier indénombrable, on en déduit que


sup αn ∈ κ et sup αn > β. Il nous reste à montrer que sup αn ∈ Clos(f ). Soit
γ < sup αn , on trouve n ∈ N tel que β ≤ αn , dont on déduit par définition de αn+1
que f (β) < αn+1 ≤ sup αn , donc sup αn ∈ Clos(f ).
176 Chapitre 8. Combinatoire dans les ordinaux

Dans cet exemple précis, il est essentiel que κ soit régulier. En effet, en prenant
f : ℵω1 → ℵω1 tel que f (α) = ℵα pour α < ω1 et f (α) = 0 sinon, on a un exemple de
fonction sans point de fermeture.
Un autre exemple important de club est celui des limites. On peut le voir comme un
cas particulier de point de fermeture, pour la fonction S, mais cela ne fonctionne que dans
le cas d’un cardinal régulier.

Définition 8.1.3.3 (Ensemble des limites). Soit α un ordinal, on définit l’ensemble


des limites de α comme n [ o
Limα ≜ β ∈ α | β = β

Proposition 8.1.3.4. Pour κ un cardinal régulier indénombrable, Limκ est un club de κ.

Démonstration. On vérifie que Limκ est un club :


• Soit X ⊆ Limκ tel que sup X ∈ κ, alors
[ [
(sup X) = α
α∈sup X
[
= α
S
α∈ X
[ [ 
= α
α∈X
[
= α
α∈X
= sup X

donc sup X ∈ Limκ , donc Limκ est fermé.


• Soit α ∈ κ, alors α + ω est un ordinal limite et il est supérieur à α, donc Limκ est
non borné.
Donc Limκ est un club de κ.

Parmi ces limites, dans un ordinal donné, on peut faire une distinction sur la cofinalité.
Dans le cas de ℵ2 par exemple, les ordinaux limites peuvent avoir une cofinalité de
ℵ0 ou de ℵ1 . Comme toute limite a l’une des deux cofinalités, il est clair qu’au moins
l’ensemble des ordinaux limites de cofinalité ℵ0 ou celui des ordinaux limites de cofinalité
ℵ1 est stationnaire, comme l’union des deux est un club. En réalité, ils sont tous les deux
stationnaires, et on peut généraliser ce résultat, en utilisant la notation Eκλ introduite dans
la section 7.3.

Proposition 8.1.3.5. Soient κ et λ deux cardinaux réguliers infinis tels que κ < λ. Alors
l’ensemble Eκλ est stationnaire.

Démonstration. On va montrer que tout club contient un élément de cofinalité κ. Soit C


un club de λ. On définit f : λ → C par récursion transfinie :
• f (0) = min C
• pour tout α ∈ λ, f (α + 1) = min C \ f (α)
• pour tout α ∈ Limλ , f (α) = supβ<α f (β)
8.1. Clubs et ensembles stationnaires 177

f est bien définie. En effet, pour α ∈ λ, comme λ est régulier, f ↾α est bornée, et C ne
l’est pas donc on peut bien trouver un minimum dans C \ f (α). Dans le cas limite, comme
C est un club, on en déduit que sup f (β) est effectivement un élément de C.
En fait, on peut même montrer que f est une bijection entre λ et C, de façon analogue
à la preuve que ℵ établit une bijection entre les ordinaux et les cardinaux infinis.
On voit alors que f (κ) est un élément de cofinalité κ, donc que C ∩ Eκλ ̸= ∅. Eκλ est
donc bien stationnaire.

Corollaire 8.1.3.6. Il existe deux ensembles stationnaires disjoints dans ℵ2 .


Démonstration. On vient de voir que Eℵℵ02 et Eℵℵ12 sont stationnaires, et ils sont évidemment
disjoints, d’où le résultat.

Pour revenir sur un point précédent, on sait que dans le cas d’une cofinalité indénom-
brable, la famille des clubs est stable par intersection finie. Est-il possible d’aller plus loin
et de montrer une stabilité pour des intersections plus grandes ? C’est effectivement le cas,
comme nous le montrons maintenant.
Proposition 8.1.3.7. Soit κ un cardinal régulier indénombrable. Alors l’intersection d’une
famille de cardinal λ < κ de clubs est encore un club.
Démonstration. On raisonne par l’absurde. Supposons qu’il existe un cardinal λ < κ tel
qu’il existe une famille C de cardinal λ dont les éléments sont des clubs et dont l’intersection
n’est pas un club. Prenons λ minimal, et soit (Cα ) une énumération de C :

C ≜ {Cα | α < λ}

C est un club. Pour cela, on définit d’abord la famille suivante :


T
On souhaite montrer que
[
Dα ≜ Cβ
β<α
\ \
On remarque que Dα = C, donc il nous suffit de montrer que cette intersection est
α<λ
un club. De plus, on sait que chaque Dα est un club, car il est l’intersection d’une famille
de cardinal strictement inférieur à λ de club (et λ est supposé minimal). Comme chaque
T T
Dα est un fermé, Dα aussi. Il nous reste donc à montrer que Dα est cofinal.
Soit β < κ, on veut construire une famille (βγ ) de taille λ d’éléments supérieurs à β
par induction transfinie :
• on sait que D0 = C0 est cofinal, donc on peut trouver β0 ≥ β un élément de D0 .
• si on a défini βγ , alors on peut utiliser le fait que Dγ+1 est un club pour trouver
βγ+1 ∈ Dγ+1 supérieur à βγ .
• si on a défini βγ pour tout γ < δ et δ est un ordinal limite, alors comme δ < cof(κ) = κ,
on sait que supγ<δ βγ < κ, donc on peut prendre βδ ∈ Dδ supérieur à ce suprémum.
On considère maintenant
γ ≜ sup βγ
γ<λ

Comme κ est régulier et λ < κ, on sait que γ < κ, et cet élément est dans tous les Dα . En
effet, il est la borne supérieure d’une famille d’éléments de Dα , donc comme Dα est fermé,
γ ∈ Dα . \
Ainsi Dα est un club, ce qui est absurde. On en déduit que l’intersection d’une
α<λ
famille de cardinal λ < κ de clubs est encore un club.
178 Chapitre 8. Combinatoire dans les ordinaux

L’autre question naturelle, se basant sur les Eκλ , est de savoir s’il existe de plus grandes
familles de parties stationnaires disjointes, car 2 ensembles stationnaires disjoints dans ℵ2
peut sembler peu. On va ici simplement donner un résultat légèrement plus fort.

Proposition 8.1.3.8. Il existe deux ensembles stationnaires dans ℵ1 qui sont disjoints.

Démonstration. Pour commencer, on pose f : ω1 → [0, 1] \ Q une injection (qui existe par
un simple argument de cardinalité). On va construire, pour chaque u ∈ {0, 1}∗ de taille n,
un ensemble Cu ⊆ ω1 tel que f (Cu ) est de diamètre inférieur à 2−n .
Pour cela, on pose (
C0 ≜ {α | f (α) < 1/2}
C1 ≜ ω1 \ C0
Si Cu a été défini pour u de taille n, alors on considère r le milieu de f (Cu ) (la moyenne
entre la borne supérieure et la borne inférieure) et on pose
(
Cu⋆0 ≜ {α ∈ Cu | f (α) < r}
Cu⋆1 ≜ Cu \ Cu0

(où u ⋆ i est le mot constitué de u et de la lettre i). On a ainsi notre famille de parties Cu
pour tout u ∈ N∗ , dont le diamètre est inférieur à 2−n pour un mot u de taille n.
On raisonne maintenant par l’absurde : supposons qu’il n’existe pas deux ensembles
stationnaires disjoints dans ω1 . On va alors construire
\ une suite g : ω → 2 de telle sorte
que Cg↾n contienne toujours un club. Ce faisant, Cg↾n contient un club puisque chaque
n∈N
Cg↾n contient un club et que, grâce à la proposition 8.1.3.7, on sait qu’une intersection
dénombrable de clubs de ω1 est
 encoreun club de ω1 . Comme f (Cg↾n ) est de diamètre
\
inférieur à 2−n , on sait que f  Cg↾n  ne contient qu’un élément, donc par injectivité
n∈N
\
de f , Cg↾n ne contient qu’un élément. La construction de la suite g mène donc à une
n∈N
contradiction, puisqu’un club ne peut pas contenir qu’un seul élément.
On construit donc g par récurrence : on sait que Cg↾n ⋆0 et Cg↾n ⋆1 sont disjoints, et par
hypothèse il n’existe pas deux ensembles stationnaires dans ω1 disjoints, donc l’un des deux
ensembles est non stationnaire : cela signifie que l’autre ensemble contient un club. On
choisit alors i tel que Cg↾n ⋆i contient un club. A l’étape 0, on sait que ω1 entier contient un
club, nous permettant donc de faire ce raisonnement.
On en déduit donc, avec les arguments précédents, qu’il existe au moins deux ensembles
stationnaires disjoints dans ℵ1 .

8.2 Lemme de Fodor et applications


Dans cette section, nous allons étudier plus précisément les ensembles stationnaires.
Notre premier objectif sera de donner un résultat plus général similaire au corollaire 8.1.3.6
et à la proposition 8.1.3.8. En répondant à la question naturelle de savoir combien on peut
trouver d’ensembles stationnaires disjoints dans un cardinal, nous serons naturellement
amenés à utiliser une version faible du lemme de Fodor, que nous renforcerons ensuite pour
obtenir le vrai lemme de Fodor. Nous verrons dans la deuxième sous-section une application
du lemme de Fodor avec le théorème de Silver, donnant une condition sur l’exponentiation
cardinale dans le cas de cardinaux singuliers.
8.2. Lemme de Fodor et applications 179

8.2.1 Lemme de Fodor


Le lemme de Fodor s’applique sur des fonctions dites régressives, commençons donc
par en donner la définition.
Définition 8.2.1.1 (Fonction régressive). Soit κ un cardinal, S ⊆ κ et f : S → κ. On
dit que f est régressive si la propriété suivante est vérifiée :

∀α ∈ S \ {0}, f (α) < α

On donne alors la version faible du lemme de Fodor :


Lemme 8.2.1.2 (Fodor, version faible). Soit λ un cardinal régulier indénombrable et
S ⊆ λ un ensemble stationnaire. Soit f : S → λ régressive, alors f est constante sur un
ensemble de taille λ, c’est-à-dire qu’il existe T ⊆ S et α ∈ λ tels que
(
∀β ∈ T, f (β) = α
Card(T ) = λ

Démonstration. On procède par l’absurde. Supposons que pour tout β ∈ λ, f −1 ({β}) est de
cardinal strictement inférieur à λ. On sait donc, comme λ est régulier, que sup f −1 ({β}) ∈ λ.
Soit alors
g : λ −→ λ
α 7−→ sup f −1 ({α})
On va étudier Clos(f ) : si α ∈ S, alors comme pour tout β, f (β) < β, on en déduit que
pour tout β < α, f (β) < β < α, donc g(f (α)) ≥ α, d’où α ∈ / Clos(g ◦ f ). Pourtant, on sait
que Clos(f ) est un club, donc S doit intersecter Clos(f ), ce qui est absurde.
On en déduit donc qu’il existe α ∈ λ tel que |f −1 ({α})| = λ, d’où le résultat en prenant
ce tel α et T = f −1 ({α}).

On va maintenant définir un outil combinatoire de théorie des ensembles : les matrices


d’Ulam. Celles-ci vous nous servir pour prouver le théorème sur les ensembles stationnaires
disjoints de façon particulièrement élégante.
Définition 8.2.1.3 (Matrices d’Ulam [Ula30]). Soit κ un cardinal infini et λ = κ+ .
Pour chaque α < λ, on se donne une injection fα : α → κ. On définit la matrice d’Ulam en
α < λ et β < κ par
Xαβ ≜ {ξ | α < ξ < λ, fξ (α) = β}
(chaque Xαβ est donc une partie de λ).
Propriété 8.2.1.4. Soient κ un cardinal infini et λ = κ+ . Alors la matrice d’Ulam a les
propriétés suivantes :
(i) pour tout β < κ, la famille {Xαβ }α<λ est constituée d’ensembles deux à deux disjoints.
(ii) pour tout α < λ, on a l’identité
[
Xαβ = λ \ (α + 1)
β<κ

β(α)
(iii) pour tout α il existe β(α) tel que Xα est stationnaire.
(iv) il existe β < κ tel que Y = {α | β(α) = β} est de taille λ.
(v) pour le β ci-dessus, la famille {Xαβ }α∈Y est constituée d’ensembles stationnaires deux
à deux disjoints.
180 Chapitre 8. Combinatoire dans les ordinaux

Démonstration. On vérifie chaque propriété :


(i) Soit β < κ et α, γ ∈ λ. Si x ∈ Xαβ ∩ Xγβ , alors fx (α) = fx (γ) donc, comme fx est une
injection, α = γ.
f (α)
Comme ξ > α, fξ est définie en α, et fξ : ξ → κ, donc ξ ∈ Xαξ
(ii) Soit ξ ∈ λ \ (α + 1). [ ,
d’où λ \ (α + 1) ⊆ Xαβ
β<κ
Dans le sens réciproque, si ξ ∈ Xαβ pour β < κ, alors par définition α < ξ < λ donc
ξ ∈ λ \ (α + 1).
(iii) Soit α < λ. Par l’absurde, supposons que tous les Xαβ pour β < κ sont non station-
naires. En utilisant la proposition 8.1.3.7 sous la forme complémentaire (en
[utilisant
des ensembles non stationnaires plutôt que des clubs), on en déduit que Xαβ est
β<κ
non stationnaire. Pourtant, on sait que cette union vaut λ \ (α + 1) qui est, en tant
que partie co-bornée de λ, un club. C’est donc une absurdité, donc il existe au moins
β(α)
un indice β(α) tel que Xα est stationnaire.
(iv) On utilise maintenant le lemme 8.2.1.2 : la fonction g : α 7→ β(α) est régressive sur
λ \ κ comme β(α) ∈ κ, et la partie λ \ κ est un club (donc stationnaire). On en déduit
l’existence de Y de cardinal λ et β ∈ κ tels que

∀α ∈ Y, β(α) = β

α(β)
(v) On sait que pour tout α ∈ Y , β(α) = β, et que Xα est stationnaire, donc la famille
{Xαβ }α∈Y est constituée d’ensembles stationnaires. De plus, en utilisant (i), on en
déduit que les ensembles sont deux à deux disjoints.

On en déduit le résultat voulu.

Théorème 8.2.1.5. Soit λ un cardinal successeur, il existe une famille de taille λ de parties
stationnaires dans λ deux à deux disjointes.

Démonstration. Par définition, il existe κ tel que λ = κ+ , on prend alors comme famille
celle précédemment exhibée.

En fait, on voit que tout le raisonnement sur les matrices d’Ulam peut se faire relative-
ment à un ensemble stationnaire S donné, en définissant

Sαβ ≜ {ξ ∈ S | α < ξ < λ, fξ (α) = β}

le point (ii) devient alors [


Sαβ = (λ \ (α + 1)) ∩ S
β<κ

On peut alors en déduire une version plus forte du théorème.

Théorème 8.2.1.6. Soit λ un cardinal successeur et S ⊆ λ un ensemble stationnaire. Il


existe alors une famille de taille λ de parties stationnaires de S deux à deux disjointes.

Revenons maintenant au lemme de Fodor. Si l’on souhaite naïvement intersecter κ clubs


dans un cardinal régulier indénombrable κ, on peut se retrouver dans le cas des segments
terminaux de κ où l’on obtient une intersection vide. On doit donc définir une intersection
plus subtile : c’est l’intersection diagonale.
8.2. Lemme de Fodor et applications 181

Définition 8.2.1.7 (Intersection diagonale). Soit κ un cardinal et {Cα }α<κ une famille
de parties de κ. On définit l’intersection diagonale de {Cα } par
i \
Cα ≜ {β < κ | β ∈ Cα }
α<κ α<β

i Soit κ un cardinal régulier indénombrable et {Cα }α<κ une famille


Proposition 8.2.1.8.
de κ clubs. Alors Cα est un club.
α<κ

Démonstration. Nommons D cette intersection diagonale et vérifions les axiomes d’un


club :
• Soit X ⊆ D borné, montrons que sup X ∈ D. Soit β < sup X, par définition pour
tout δ tel que β < δ < sup X et δ ∈ X, δ ∈ Cβ . On en déduit, comme sup X est
une limite d’éléments de X supérieurs à β, que sup X est une limite d’éléments de
Cβ , donc un élément de Cβ puisque Cβ est un club (en particulier un fermé). Donc
sup X ∈ Cβ pour tout β < sup X, donc sup X ∈ D.
• On utilise un argument développé dans la preuve de la proposition 8.1.3.7 pour
montrer que D est cofinal. On pose
\
Dα ≜ Cα
β<α

Chaque Dα est un club d’après la proposition 8.1.3.7. Soit β < κ, on construit une
suite (αn ) par récurrence :
◦ α0 = β + 1
◦ pour tout n ∈ N, si αn a été défini, alors on sait que Dαn est un club, donc on
peut trouver αn+1 ∈ Dαn tel que αn+1 > αn .
On définit alors
α ≜ sup αn
n∈N

Alors, pour tout\n ∈ N, on sait que αm ∈ Dαn pour tout m ≥ n, donc α ∈ Dαn .
Dαn , on en déduit que α ∈ Dα , c’est-à-dire α ∈ β<α Cα , donc
T
Comme Dα =
n∈N
α ∈ D et α > β.
Ainsi D est bien un club.

On en déduit le lemme de Fodor.

Lemme 8.2.1.9 (Fodor [Fod56]). Soit κ un cardinal régulier indénombrable, S ⊆ κ


une partie stationnaire et f : S → κ une fonction régressive. Alors f est constante sur un
ensemble stationnaire.
−1 ({β}) est non stationnaire. On trouve
Démonstration. Supposons que pour tout β ∈ κ, fi
alors Cβ un club disjoint de f −1 ({β}). Comme Cβ est un club et S est stationnaire,
a β<κ
on peut trouver γ ∈ S ∩ β<κ Cβ . On sait donc que γ ∈ Cβ pour tout β < γ, c’est-à-dire
que f (γ) ̸= β pour tout β < γ. On en déduit que f (γ) ≥ γ, ce qui est impossible car f est
supposée régressive.
182 Chapitre 8. Combinatoire dans les ordinaux

8.2.2 Théorème de Silver


Dans cette partie, on va montrer le théorème de Silver. On a vu dans le chapitre 7 que
sur les cardinaux réguliers, on dispose de très peu d’informations sur le comportement
de κ 7→ X κ . Le théorème de Silver montre que, dans le cas des cardinaux singuliers,
la situation est très différent. Ce que nous allons montrer est, plus précisément, que si
l’hypothèse généralisée du continue est vraie jusqu’à un certain cardinal singulier λ de
cofinalité indénombrable, alors celle-ci est vrai aussi en ce cardinal.
On va d’abord introduire la notion de suite cofinale continue, qui est un renforcement
naturel de la notion de suite cofinale.

Définition 8.2.2.1 (Suite cofinale continue). Soit α un ordinal et (αβ ) une suite
d’éléments de α. On dit que (αβ ) est une suite cofinale continue si c’est une suite strictement
croissante, que sup αβ = α et que pour tout γ ∈ Limα , supβ<γ αβ = αγ .

Exercice 8.2.2.2. Montrer que si α est un ordinal limite, alors il existe une suite cofinale
continue de taille cof(α).

On aura aussi besoin de la notion de famille éventuellement différentes, qui peut se voir
comme une généralisation de celle de famille presque disjointe pour un cardinal autre que
ω.

Définition 8.2.2.3. Soit X un ensemble et κ un cardinal. Une famille F ⊆ Funct(κ, X)


est dite éventuellement différente si la condition suivante est vérifiée :

∀f, g ∈ F, f ̸= g =⇒ Card({ξ | f (ξ) = g(ξ)}) < κ

Notation 8.2.2.4. Dans le suite de cette sous-section, on pose λ un cardinal singulier de


cofinalité indénombrable, α l’ordinal tel que λ = ℵα et κ = cof(α) (avec, donc, κ > ω). On
suppose aussi
HCGλ ≜ ∀β < λ, 2ℵβ = ℵβ+1
Comme nous allons procéder par l’absurde, on supposera de plus que 2λ > λ+ .
On se fixe une suite cofinale continue (αβ )β<κ dans α.

Proposition 8.2.2.5. Il existe une famille éventuellement différente F ⊆ Funct(κ, λ) de


taille 2λ telle que
∀f ∈ F, ∀β < κ, f (β) < ℵαβ +1

Démonstration. On se donne, pour chaque β < κ, une bijection



=
ιβ : P(ℵαβ ) −
→ ℵαβ +1

donnée par HCGα .


Pour chaque X ⊆ λ, on définit la fonction

fX : κ −→ λ
β 7−→ ιβ (X ∩ ℵαβ )

Remarquons que cette fonction est bien définie, car X ∩ ℵαβ est une partie de ℵαβ et elle
est donc à valeur dans ℵαβ +1 < λ. Montrons maintenant que {fX }X⊆λ est une famille
éventuellement différente :
Soient X, Y ⊆ λ tels que X ̸= Y . On veut montrer que {ξ | fX (ξ) = fY (ξ)} est de
cardinal strictement inférieur à κ. Comme X ̸= Y , on trouve δ = min X△Y . La suite
8.2. Lemme de Fodor et applications 183

(αβ ) est cofinale dans α, donc on peut trouver γ ∈ κ tel que ℵαγ > δ. Comme (αβ ) est
strictement croissante, on en déduit que pour tout γ ′ > γ, ℵγ ′ > δ.
En remarquant que (X△Y ) ∩ ℵαβ = (X ∩ ℵαβ )△(Y ∩ ℵαβ ), si β ∈ κ est tel que δ ∈ ℵαβ ,
alors δ ∈ (X ∩ ℵαβ )△(Y ∩ ℵαβ ) donc X ∩ ℵαβ = ̸ Y ∩ ℵαβ , d’où par injectivité de ιβ ,
fX (β) ̸= fY (β).
On voit donc que l’ensemble {ξ | fX (ξ) = fY (ξ)} est borné par γ tel que δ ∈ ℵγ ,
c’est donc un ensemble de cardinal inférieur à γ et γ < κ, donc {fX } est une famille
éventuellement différente.

On définit maintenant une relation entre les parties de λ.

Définition 8.2.2.6. Pour deux parties X, Y ⊆ λ, on définit la relation R par

XRY ≜ {γ | fX (γ) < fY (γ)} est stationnaire dans κ

Propriété 8.2.2.7. Soient X ̸= Y deux parties de λ. Alors XRY ou Y RX.

Démonstration. Comme {fX } est une famille éventuellement différente, on peut trouver
κ′ < κ tel que {ξ | fX (ξ) = fY (ξ)} ⊆ κ′ donc {ξ | fX (ξ) ̸= fY (ξ)} contient un club (la
partie κ \ κ). De plus on a l’égalité

{ξ | fX (ξ) ̸= fY (ξ)} = {ξ | fX (ξ) < fY (ξ)} ∪ {ξ | fX (ξ) > fY (ξ)}

donc l’union des deux ensembles est un ensemble stationnaire. On en déduit qu’au moins
l’un des deux ensembles est stationnaire, ce qui signifie que XRY ou Y RX.

Proposition 8.2.2.8. Il existe une partie X ⊆ λ telle que Card(R−1 [X]) ≥ λ+ .

Démonstration. Soit A ⊆ P(λ) tel que Card(A) = λ+ . On définit alors, pour tout X ∈ A :

AX ≜ R−1 [X] ∪ {X}

Il y a alors deux possibilités à traiter :


• s’il existe X ∈ A tel que Card(AX ) ≥ λ+ , alors en prenant ce tel X, on a bien prouvé
l’affirmation souhaitée.
• sinon, alors on sait que pour tout X ∈ A, Card(AX ) < λ+ , donc en utilisant le
théorème 7.3.3.1, on en déduit que :
!
[
Card AX ≤ λ+
X∈A

donc, comme on a supposé que 2λ > λ+ , on peut trouver une partie


!
[
X ∈ P(λ) \ AX
X∈A

Comme on sait que pour tous X ̸= Y , XRY ou Y RX, le fait que X ∈


/ AY pour tout
Y ∈ A signifie que R−1 [X] ⊇ A, donc que Card(R−1 [X]) ≥ λ+ .
Dans les deux cas, on a donc trouvé X tel que Card(R−1 [X]) ≥ λ+ .

Notation 8.2.2.9. On fixe maintenant X tel que défini dans la proposition précédente. De
plus, pour tout γ ∈ κ, comme fX (γ) ∈ ℵαγ +1 , on se donne une injection gγ : fX (γ) → ℵαγ .
Pour tout Y ∈ R−1 [X], on définit SY = {γ | fY (γ) < fX (γ)}.
184 Chapitre 8. Combinatoire dans les ordinaux

On va maintenant introduire une variant du lemme de Fodor pour traiter notre famille
éventuellement différente.
Lemme 8.2.2.10 (Fodor, variante). Soit αβ une suite cofinale continue dans α. Soit
S ⊆ κ une partie stationnaire et f : S → ℵα telle que

∀β < κ, f (β) < ℵαβ

On peut alors trouver γ < α et une partie T ⊆ S stationnaire telle que

∀β ∈ T, f (β) < ℵγ

Démonstration. On commence par considérer

S ′ ≜ S ∩ Limκ

qui, comme Limκ est un club, est encore une partie stationnaire. Soit maintenant, pour
β ∈ S ′ , l’ensemble
Aβ ≜ {γ | f (β) < ℵαγ }
On sait que pour tout β ∈ Aβ , f (β) < ℵαβ , donc Aβ est toujours non vide. On définit la
fonction
g : S ′ −→ κ
β 7−→ min Aβ
Montrons que g est régressive pour pouvoir y appliquer le lemme de Fodor. Soit β ∈ S ′ ,
montrons que g(β) < β. (αβ ) est une suite continue, et ℵ est aussi continue (par définition),
donc (comme f (β) < ℵαβ ) on en déduit que f (β) < supγ<β ℵαγ On peut donc trouver
δ ∈ β tel que f (β) < ℵαδ , puisque sinon f (β) ≥ supγ<β ℵαγ . Il vient donc que δ < β et
δ ∈ Aβ , donc min Aβ < β, d’où g(β) < β.
On applique donc le lemme de Fodor à g : on trouve un ensemble stationnaire T ⊆ S
et δ ∈ κ tel que
∀β ∈ T, g(β) = δ
ce qui signifie que f (β) < ℵαδ . En prenant pour γ notre αδ ainsi trouvé, on a bien une
partie T vérifiant la condition attendue.

En utilisant cette variante, on peut prouver le résultat suivant, qui nous permettra
finalement de conclure le théorème de Silver.
Lemme 8.2.2.11. Pour tout Y ∈ R−1 [X], on peut trouver TY ⊆ SY stationnaire et γ Y
tels que
∀γ ∈ TY , gγ (fY (γ)) < ℵγ Y
Démonstration. Soit Y ∈ R−1 [X]. On applique la variante du lemme de Fodor en considé-
rant la suite cofinale continue (αβ ), l’ensemble stationnaire SY et la fonction γ 7→ gγ (fY (γ)).
La fonction
FY : SY −→ λ
γ 7−→ gγ (fY (γ))
est bien définie car sur SY , fY < fX . De plus, gγ : fX (γ) → ℵαγ donc FY vérifie bien les
condition de la variant du lemme de Fodor.
On trouve donc γ Y et TY ⊆ SY tels que

∀γ ∈ TY , gγ (fY (γ)) < ℵγ Y


8.2. Lemme de Fodor et applications 185

On généralise ce lemme pour avoir un T et un γ indépendants de Y .


Lemme 8.2.2.12. Il existe T ⊆ κ stationnaire et un ordinal γ tels que
Card ({Y | TY = T ∧ γ Y = γ) ≥ λ+
Démonstration. Soit la fonction
h : R−1 [X] −→ P(κ) × α
Y 7−→ (TY , γ Y )

On peut donc écrire R−1 [X] comme l’union des h−1 ({(T, γ)}) pour tous (T, γ) ∈ P(κ) × α.
Par l’absurde, supposons que chacun de ces ensembles h−1 ({(T, γ)}) est de cardinal
strictement inférieur à λ+ . Comme Card(P(κ)) < λ+ et Card(α) < λ+ , on peut utiliser le
théorème 7.3.3.1 pour en déduire que
 

h−1 ({(T, γ)}) < λ+


[
Card 

T ⊆κ
γ∈α

ce qui contredit le fait que cette union vaut R−1 [X], qui est de cardinal supérieur ou égal
à λ+ .
On en déduit donc qu’il existe un certain (T, γ) tel que h−1 ({(T, γ)}) est de taille λ+ ,
nous donnant le résultat attendu.

Théorème 8.2.2.13 (Silver [Sil+81]). Soit λ un cardinal singulier de cofinalité indé-


nombrable. Si HCGλ est vraie, alors 2λ = λ+ .
Démonstration. On suppose donc que 2λ > λ et on veut arriver à une contradiction, on
reprend les constructions et notations précédentes.
Soit
Y ≜ {Y ⊆ λ | TY = T ∧ γ Y = γ}
On commence par trouver Y1 ̸= Y2 deux éléments de Y tels que
∀γ ∈ T, gγ (fY1 (γ)) = gγ (fY2 (γ))
Un argument de dénombrement suffit. En effet, la condition précédente revient à dire
que FY1 = FY2 , et ces deux fonctions sont des éléments de Funct(T, ℵγ ). On sait que
Card(T ) < ℵγ , donc

Card(Funct(S, ℵγ )) ≤ ℵγ γ
≤ 2 ℵγ
≤ ℵγ+1
Comme Card(Y) = λ+ , on en déduit qu’il existe au moins deux parties Y1 , Y2 telles que
FY1 = FY2 et Y1 ̸= Y2 .
Maintenant, comme on sait que chaque gγ est injective, et qu’on sait que
∀γ ∈ T, gγ (fY1 (γ)) = gγ (fY2 (γ))
on en déduit que fY1 et fY2 coïncident sur T . Pourtant, on sait que {ξ | fY1 (ξ) = fY2 (ξ)}
est de cardinal strictement inférieur à κ, et est donc non stationnaire. C’est absurde, donc
notre hypothèse de départ, que 2λ > λ+ , est fausse. Comme 2λ ≤ λ+ , on en déduit que
2λ = λ+ .
186 Chapitre 8. Combinatoire dans les ordinaux
Chapitre 9
Modèles de ZFC

Table des sous-matières


9.1 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.1.1 Relativisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.1.2 L’univers bien fondé de Von Neumann . . . . . . . . . . . . . . . 190
9.2 Vers le théorème de réflexion . . . . . . . . . . . . . . . . . . . . 193
9.2.1 Rang et parties héréditaires . . . . . . . . . . . . . . . . . . . . . 194
9.2.2 Absoluité et réflexion . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.3 L’univers constructible de Gödel . . . . . . . . . . . . . . . . . . 204
9.3.1 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.3.2 Les propriétés de l’univers constructible . . . . . . . . . . . . . . 209

ous avons vu dans les chapitres précédents combien ZFC était une théorie riche
N en terme d’expressivité, au point même où l’ensemble des mathématiques peut se
formaliser dans ZFC. Il devient alors assez technique de parler de modèle de ZFC, puisqu’un
tel modèle est en quelque sorte un modèle de toutes les mathématiques que l’on connaît.
Une première conséquence de cette expressivité est un certain flou entre ce que l’on
exprime dans ZFC et dans les maths usuelles. Puisque tout peut se définir en terme
d’ensembles, il semble que tout ce dont nous avons parlé jusque là puisse se formaliser dans
ZFC. C’est le cas, mais il faut faire attention à ce qu’on manipule.
En particulier, un modèle de ZFC, nommons-le M, contient lui-même un ensemble
Form(Σ) pour une signature Σ donnée. On pourrait alors se dire que, comme on peut
formaliser nos résultats de logique en terme d’ensembles, on peut travailler au sein de ZFC
pour faire de la logique. Malheureusement, les propositions de Form(Σ) ne sont pas les
mêmes que celles que nous connaissons : on peut facilement interpréter une proposition
habituelle par un élément de Form(Σ), mais l’inverse n’a pas de raison d’être vrai.
Cela mène à deux résultats essentiels pour décrire les limitations de cette approche
formelle de la logique : les théorèmes d’incomplétudes de Gödel et le théorème d’indéfi-
nissabilité de la vérité de Tarski, que nous verrons dans la partie IV. Ceux-ci ont pour
conséquence que si l’on considère un codage ⌈−⌉ qui à une formule au sens habituel associe
une formule de notre modèle M, alors il n’existe pas de formule φM telle que

∀ψ ∈ Form(Σ), M |= ψ ⇐⇒ φM (⌈ψ⌉)

Cette limitation implique que l’on ne peut pas à strictement parler écrire une formule
comme U |= ZFC pour notre univers ensembliste U. Par contre, il est possible d’écrire par

187
188 Chapitre 9. Modèles de ZFC

exemple ZFC ⊢ φ, qui en utilisant le théorème de complétude permet de dire que U |= φ :


ainsi, l’écriture de U |= ZFC se traduit en fait par une infinité de théorèmes de la forme
ZFC ⊨ φ pour chaque axiome φ ∈ ZFC.
S’il est assez clair que ZFC ⊨ ZFC est un constat assez vide, cela nous permet ensuite
d’introduire la relativisation, qui permet d’exprimer la notion de modèle classe de ZFC.
Ce chapitre s’attachera à l’étude des outils basiques à propos des modèles classe. Nous
verrons d’abord les définitions et conséquences de cette notion, puis nous aborderons
l’absoluité, qui permet d’étudier la conservation entre des modèles de ZFC.
Nous verrons ensuite la théorie des modèles intérieurs, et son exemple le plus connu :
l’univers constructible de Gödel L.

9.1 Premiers pas


9.1.1 Relativisation
On commence par introduire la notion de relativisation d’une formule. Comme on l’a
dit, il est impossible de représenter de façon interne à un modèle de ZFC que celui-ci
vérifie une formule : il faut donc parler de façon externe au modèle. Pour exprimer que φ
est vraie dans l’univers ambiant, il suffit alors de travailler normalement, en utilisant les
axiomes de ZFC. Cependant, cette approche est très limitée, et on aimerait s’autoriser à
parler d’autres classes que l’univers U tout entier. Pour ce faire, comme on doit procéder de
façon purement syntaxique, on modifie la formule même qu’on veut prouver en y incluant
l’information de la classe qu’on utilise.
Disons qu’on veuille montrer qu’une formule φ est vraie dans la classe des ordinaux,
l’idée est simplement de modifier tous les quantificateurs pour que ceux-ci ne parlent que
d’éléments de Ord. La relativisation est précisément ce procédé de réduire la portée des
quantificateurs par une formule, exprimant en général l’appartenance à une classe qui nous
intéresse.

Définition 9.1.1.1 (Relativisation d’une formule). Soient φ, ψ ∈ Form(LZF ) où ψ


possède une variable libre. On appelle relativisation de φ à ψ la formule φψ définie par
induction sur φ par :
• si φ est atomique alors φψ = φ.
• si φ = ⊤ alors φψ = ⊤.
• si φ = ⊥ alors φψ = ⊥.
• si φ = ¬χ alors φψ = ¬χψ .
• si φ = χ ∨ ξ alors φψ = χψ ∨ ξ ψ .
• si φ = χ ∧ ξ alors φψ = χψ ∧ ξ ψ .
• si φ = χ → ξ alors φψ = χψ → ξ ψ .
• si φ = ∃x, χ alors φψ = ∃x, ψ(x) ∧ χψ .
• si φ = ∀x, χ alors φψ = ∀x, ψ(x) → χψ .

Le théorème central pour l’étude des modèles classes est que la cohérence est préservée
par ceux-ci.

Lemme 9.1.1.2. Pour Γ ∈ List(Form(LZF )) et φ, ψ ∈ Form(LZF ), si Γ ⊢ φ alors Γψ ⊢ φψ


où Γψ est l’application de la relativisation à ψ de tous les éléments de Γ, augmentée de la
formule ψ(x) pour toute variable x ∈ VL(Γ) ∪ VL(φ).
9.1. Premiers pas 189

Démonstration. On procède par induction sur la relation Γ ⊢ φ :


• cas Ax : si φ ∈ Γ, alors φψ ∈ Γψ , d’où le résultat.
• cas ⊤ : peu importe Γ, on a toujours Γψ ⊢ ⊤.
• cas ⊥c : on suppose que Γψ , ¬Aψ ⊢ ⊥, alors on peut appliquer ⊥c pour en déduire
que Γψ ⊢ Aψ .
• cas ∨gi : on suppose que Γψ ⊢ Aψ , donc Γψ ⊢ Aψ ∨ B ψ , c’est-à-dire Γψ ⊢ (A ∨ B)ψ .
• le cas ∨di est analogue.
• cas ∨e : on suppose que Γψ ⊢ Aψ ∨ B ψ , que Γψ , Aψ ⊢ C ψ et que Γψ , B ψ ⊢ C ψ , alors
on peut appliquer la règle ∨e pour en déduire que Γψ ⊢ C ψ .
• cas ∧i : on suppose que Γψ ⊢ Aψ et Γψ ⊢ B ψ , alors Γψ ⊢ Aψ ∧ B ψ .
• cas ∧ge : on suppose que Γψ ⊢ (A ∧ B)ψ , c’est-à-dire que Γψ ⊢ Aψ ∧ B ψ , alors on peut
en déduire que Γψ ⊢ Aψ .
• le cas ∧de est analogue.
• cas →i : si Γψ , Aψ ⊢ B ψ alors Γψ ⊢ Aψ → B ψ , et par définition Aψ → B ψ = (A →
B)ψ , d’où le résultat.
• cas →e : si Γψ ⊢ (A → B)ψ et Γψ ⊢ Aψ , alors Γψ ⊢ B ψ .
• cas ∀i : si Γψ ⊢ A[v/x]ψ , où v est libre dans Γ et A, alors par affaiblissement on sait
que Γψ , ψ(v) ⊢ A[v/x]ψ , donc que Γψ ⊢ ψ(v) → A[v/x]ψ , d’où par la règle ∀i le fait
que Γψ ⊢ (∀x, A)ψ .
• cas ∀e : si Γψ ⊢ (∀x, A)ψ , et pour une variable y ∈ VL(Γ) ∪ VL(A) (puisque tout
terme dans LZF est une variable et que la relativisation n’ajoute pas de variable libre),
on peut spécialiser notre séquent en Γψ ⊢ ψ(y) → A[y/x], puis utiliser l’hypothèse
ψ(y) ∈ Γψ pour en déduire que Γψ ⊢ A[t/x].
• cas ∃i : si Γψ ⊢ A[y/x] alors on sait que Γψ ⊢ ψ(y), donc Γψ ⊢ ψ(y) ∧ A[y/x], d’où
Γψ ⊢ (∃x, A)ψ .
• cas ∃e : si Γψ ⊢ (∃x, A)ψ et Γψ , ψ(x) ∧ Aψ ⊢ B ψ , alors la règle ∃e nous donne
directement Γψ ⊢ B ψ . On remarque qu’on peut effectivement utiliser l’hypothèse
d’induction sur Γψ , ψ(x)∧Aψ ⊢ B ψ car ce séquent est équivalent à Γψ , ψ(x), Aψ ⊢ B ψ ,
qui contient bien ψ(a) pour chaque a ∈ VL(Γ) ∪ VL(A).
• cas =i : si t est un terme, alors Γψ ⊢ t = t
• cas =e : si Γψ ⊢ t = u et Γψ ⊢ A[t/x]ψ , alors on peut vérifier par induction sur A que
(A[t/x])ψ = Aψ [t/x], donc on peut directement appliquer =e pour obtenir le résultat.
Ainsi, par induction, on sait que Γψ ⊢ φψ .

Remarque 9.1.1.3. La preuve ci-dessus n’est pas parfaitement rigoureuse, principalement


à cause du choix fait plus tôt de ne pas détailler les règles de déduction naturelle prenant
en compte des variables. Pour être plus précis, étant donné un séquent Γ ⊢ φ bien typé en
considérant une liste de variables x1 , . . . , xn , on veut montrer que Γψ , ψ(x1 ), . . . , ψ(xn ) ⊢ φψ .
Sans gestion des variables du premier ordre, ce lemme serait faux : en prenant pour ψ
un prédicat toujours faux, tel que x = ̸ x, on peut prouver ⊢ (∀x, A) → (∃x, A) mais pas
⊢ (∀x, A)ψ → (∃x, A)ψ puisque le x invoqué par la première formule ne vérifie pas ψ.
Dans un tel cas, en ajoutant la gestion des variables, on a une hypothèse absurde donc la
conclusion est forcément vraie.
190 Chapitre 9. Modèles de ZFC

Remarque 9.1.1.4. Il est possible de généraliser ce lemme à une signature Σ quelconque.


Cependant, pour cela, il est nécessaire que ψ vérifie une propriété de stabilité : il faut que
pour chaque symbole de fonction f d’arité n, on puisse prouver
n
!
^
⊢ ∀x1 , . . . , xn , ψ(xi ) → ψ(f (x1 , . . . , xn ))
i=1

Ce faisant, on peut montrer que tout terme vérifie ψ (en supposant que les variables vérifient
ψ), et ainsi vérifier les parties de l’induction liées à l’élimination du ∀ et l’introduction du
∃.

Théorème 9.1.1.5 (Préservation de la cohérence). Soit T et S deux théories sur


LZF et ψ(x) une formule à une variable libre dans ce même langage telles que pour toute
formule φ ∈ S, T ⊢ φψ . Alors

Coh(T ) =⇒ Coh(S)

Démonstration. On donne deux preuves, l’une syntaxique et l’autre sémantique.


• supposons ¬ Coh(S), cela signifie donc qu’il existe une preuve S ⊢ ⊥, et comme
cette preuve est finie on peut extraire une partie finie F ⊆fin S telle que F ⊢ ⊥. En
utilisant le lemme 9.1.1.2, il vient donc que F ψ ⊢ ⊥ψ (comme les énoncés sont clos,
on n’a pas à rajouter de ψ(x) pour des variables x). Or, ⊥ψ = ⊥, donc on en déduit
que F ψ ⊢ ⊥. Comme T ⊢ φψ pour chaque φ ∈ F , on en déduit que T ⊢ ⊥, donc que
¬ Coh(T ). Par contraposée, on en déduit l’implication voulue.
• supposons Coh(T ). On trouve donc un modèle M de T . Soit N le sous-modèle de
M défini par
|N | ≜ {x | x ∈ |M|, M |= ψ(x)}
Par hypothèse, on sait que M |= S ψ , donc N |= S, d’où Coh(S).
Les deux approches nous donnent donc que Coh(T ) =⇒ Coh(S).

On peut par exemple appliquer ce théorème à ZFC − AF et ZFC pour dire que s’il
existe une classe V telle que ZFC − AF ⊢ ZFCV , alors les deux théories sont équicohérentes
(puisque dans l’autre sens, il est évident qu’enlever des axiomes ne change pas la cohérence).

9.1.2 L’univers bien fondé de Von Neumann


On peut maintenant introduire l’univers V, qui est d’une certaine façon l’univers
ensembliste au sens intuitif : il est un modèle de ZFC présent dans tout modèle de
ZFC − AF.
Historiquement, même si le nom de cet univers est attribué à Von Neumann, il semble
(d’après [Moo12]) que celui-ci date des travaux de Zermelo, notamment [Zer30].

Définition 9.1.2.1 (L’univers bien fondé). On définit la hiérarchie d’ensembles Vα ,


pour α ∈ Ord, par induction transfinie :
• V0 = ∅.
• Vα+1 = P(Vα )
[
• pour tout ordinal limite λ, Vλ = Vβ
β<λ
9.1. Premiers pas 191

On définit maintenant la classe V par


[
V≜ Vα
α∈Ord

Remarque 9.1.2.2. Par une union indicée par α ∈ Ord, il faut en fait comprendre que le
prédicat V(x) est défini comme

V(x) ≜ ∃α ∈ Ord, V(α, x)

On préfère une approche sémantique que syntaxique ici, car celle-ci est bien plus facile à
appréhender.

Un premier résultat important : chaque Vα est transitif, et V tout entier l’est donc
aussi.

Propriété 9.1.2.3. Pour chaque α ∈ Ord, Vα est un ensemble transitif. De plus, V est
une classe transitive.

Démonstration. On raisonne par induction transfinie :


• si x ∈ ∅, alors x ⊆ ∅.
• supposons que Vα est transitif. Soit x ∈ Vα+1 . Par définition, cela signifie que x ⊆ Vα .
Soit y ∈ x : par inclusion, y ∈ Vα , donc (comme Vα est transitif) y ⊆ Vα , c’est-à-dire
y ∈ Vα+1 , donc x ⊆ Vα+1 .
• si pour tous β < λ, Vβ est transitif, alors pour x ∈ Vλ , on trouve α < λ tel que
x ∈ Vα , donc x ⊆ Vα . De plus, Vα ⊆ Vλ donc x ⊆ Vλ .
Ainsi tous les Vα sont transitifs. Le fait que V est une classe transitive est une conséquence
directe.

Une conséquence première est que la hiérarchie est cumulative, ce qui signifie que les
ensembles sont de plus en plus grands.

Propriété 9.1.2.4. Si α ≤ β, alors Vα ⊆ Vβ .

Démonstration. On prouve ce résultat par induction sur l’ordinal γ tel que α + γ = β :


• pour tout α, Vα ⊆ Vα .
• supposons que Vα ⊆ Vβ , alors montrons que Vα ⊆ Vβ+1 : il nous suffit pour cela
de montrer que pour tout β, Vβ ⊆ Vβ+1 . Si x ∈ Vβ , alors comme Vβ est transitif,
x ⊆ Vβ , donc x ∈ Vβ+1 par définition.
• supposons que pour tout δ < γ et γ ordinal limite, Vα ⊆ Vα+δ . Alors comme
[
Vα+γ = Vα+δ
δ<γ

on en déduit que Vα ⊆ Vα+γ .


D’où le résultat par induction transfinie.

Notre premier objectif est de montrer que V constitue un premier modèle classe de
ZFC. Pour cela, on donne d’abord un lemme essentiel pour prouver de tels axiomes.

Lemme 9.1.2.5. Soit M une classe, alors on a les propriétés suivantes :


• si M est une classe transitive, alors M vérifie l’axiome d’extensionalité.
192 Chapitre 9. Modèles de ZFC

• si M est clos par sous-ensemble, c’est-à-dire si pour tout ensemble x ∈ M et y ⊆ x,


on a y ∈ M , alors M vérifie l’axiome de compréhension.
• si pour tout x, y ∈ M , {x, y} ∈ M alors M vérifie l’axiome de la paire.
• si pour tout x ∈ M, x ∈ M alors M vérifie l’axiome de la réunion.
S

• si M est une classe transitive vérifiant la proposition suivante : pour toute fonction
partielle f (non obligatoirement dans M ) telle que Dom(f ) ∈ M et Im(f ) ⊆ M , on
a Im(f ) ∈ M ; alors M vérifie l’axiome de remplacement.

Démonstration. On prouve chaque propriété :


• soient x, y ∈ M deux ensembles tels que ∀z ∈ M, z ∈ x ⇐⇒ z ∈ y. Alors pour tout
z ∈ x, comme M est transitive, z ∈ M , donc par notre hypothèse z ∈ y, donc x ⊆ y.
L’argument fonctionne symétriquement pour nous assurer que y ⊆ x, donc x = y.
• supposons que M est clos par sous-ensemble. Soient a1 , . . . , an , a des éléments de M
et ψ(x1 , . . . , xn , a) une formule sur LZF . Alors on sait que {y ∈ a | ψ(a1 , . . . , an , y)} ⊆
a ∈ M , donc il existe bien dans M un ensemble A tel que y ∈ A ⇐⇒ ψ(a1 , . . . , an , y).
• soient x, y ∈ M , alors {x, y} ∈ M , donc il existe dans M un ensemble A tel que
z ∈ A ⇐⇒ z = x ∨ z = y.
• de même, si M est stable par réunion, on a directement un candidat pour être l’union
S S
d’un ensemble x, donné par x lui-même : on voit qu’un élément z est dans x si
et seulement s’il existe y tel que z ∈ y ∈ x.
• soit une formule fonctionnelle ψ M (x1 , . . . , xn , x, y), a1 , . . . , an , a ∈ M des paramètrs.
Par l’axiome de remplacement (dans l’univers ambiant), on sait qu’il existe un
ensemble b, image de a par ψ M (a1 , . . . , an ), et une fonction f : a → b (partielle).
Alors, par le lemme 9.1.1.2, pour tout y ∈ b, comme on sait que ψ M (a1 , . . . , an , x, y)
pour un certain x ∈ a (donc x ∈ M d’après le fait que M est transitif), on en déduit
que y ∈ M . Ainsi, f : a → b, dont le domaine est a ∈ M , a une image b ⊆ M . Par
notre hypothèse, b ∈ M , donc l’axiome de remplacement est vérifié.
D’où les propriétés énoncées.

Théorème 9.1.2.6. Pour tout φ ∈ ZFC, on a ZFC − AF ⊢ φV .

Démonstration. On vérifie chaque axiome relativisé à l’aide du lemme 9.1.2.5 :


• vérifions l’axiome d’extensionalité. Soient x, y ∈ V tels que ∀z ∈ V, z ∈ x ⇐⇒ z ∈ y.
Comme V est une classe transitive, pour tous z ∈ x, z ∈ V et de même pour les
éléments de y. On en déduit que ∀z, z ∈ x ⇐⇒ z ∈ y, donc l’axiome d’extensionalité
peut s’appliquer directement pour conclure que x = y.
• vérifions l’axiome de la réunion : si x ∈ V alors on trouve α tel que x ∈ Vα . On sait
que Vα est transitif, donc pour tout y ∈ x, y ∈ Vα et, pour tout z ∈ y ∈ x, z ∈ Vα :
on en déduit que x est une partie de Vα , donc x ∈ Vα+1 .
S S

• vérifions l’axiome de l’ensemble des parties : soit x ∈ V, on trouve α tel que x ∈ Vα .


Alors pour tout y ⊆ x, y ⊆ Vα donc y ∈ Vα+1 . On en déduit que pour tout y ∈ P(x),
y ∈ V, donc P(x) ∈ V.
• vérifions l’axiome de remplacement : soit f une fonction partielle dont le domaine
est un ensemble x ∈ Vα , et dont l’image est y ⊆ V. On peut alors considérer pour
chaque z ∈ y un βz tel que z ∈ Vβz . Alors en prenant β = supz∈y βz , on a y ⊆ Vβ ,
donc y ∈ Vβ+1 par définition, donc y ∈ V.
9.2. Vers le théorème de réflexion 193

• vérifions l’axiome de l’infini : on sait que Ord ⊆ V, donc il existe bien un ensemble
ω V ∈ V contenant 0 et stable par successeur, c’est ω lui-même.
• vérifions l’axiome de fondation : par l’absurde, supposons qu’il existe un élément
x ∈ V non vide tel que pour tout y ∈ x x ∩ y ≠ ∅. Soit α l’ordinal minimal tel que
x ∈ Vα . On sait que pour tout y ∈ x, il existe β < α tel que y ∈ Vβ : prenons le β
minimal contenant au moins un y ∈ x et y un tel élément de x associé. On sait alors,
par hypothèse, qu’il existe z ∈ x ∩ y. On en déduit, comme z ∈ y, qu’il existe γ < β
tel que z ∈ Vγ , mais comme z ∈ x, cela contredit la minimalité de β. C’est donc
absurde, donc x est bien fondé pour ∈.
• vérifions l’axiome du choix : soit un ensemble X non vide, dont les éléments sont
non vides et deux à deux disjoints. Soit α tel que X ∈ Vα , on sait donc que tous
les éléments de X sont des éléments de Vα . Par l’axiome du choix, on trouve C tel
que C ∩ x est un singleton pour tout x ∈ X. Quitte à restreindre C aux éléments
d’éléments de X, on a donc un ensemble dont les éléments sont des éléments de Vα ,
donc C ∈ Vα+1 , d’où le réstultat.
D’où le résultat.

On a donc notre premier modèle classe de ZFC. Un point important lorsque l’on ne
travaille pas a priori avec l’axiome de fondation est que la classe V correspond exactement
à la classe des éléments bien fondés de l’univers ambiant.

Proposition 9.1.2.7. Soit un ensemble x, alors on a l’équivalence suivante dans ZFC − AF :

x ∈ V ⇐⇒ ∀y ∈ trcl(x), ∃z ∈ y, y ∩ z = ∅

Démonstration. L’implication directe est une conséquence du fait que V |= AF. Pour le
sens réciproque, on raisonne par induction bien fondée sur ∈ : si pour tout x ∈ X, x ∈ V,
alors en considérant
αx ≜ min{α ∈ Ord | x ∈ Vα }

puis
α ≜ sup αx
x∈X

on sait que x ∈ Vα pour tout x ∈ X, donc X ⊆ Vα , donc X ∈ Vα+1 . Ainsi, pour tout
ensemble X tel que ∈ est bien fondé sur X, X ∈ V.

On voit donc que dans le cas d’un univers ensembliste U, celui-ci vérifie AF si et
seulement si V = U. On utilisera donc en général V pour parler de l’univers ensembliste.

9.2 Vers le théorème de réflexion


Dans le reste du chapitre, on suppose l’axiome de fondation : on considère donc que
U = V. Notre premier objectif est de montrer le théorème de réflexion. Pour ce faire, nous
introduisons d’abord la notion de rang, permettant d’étudier plus en détail la hiérarchie
des Vα , et les ensembles Hκ . Nous verrons ensuite l’absoluité, permettant de rendre plus
formel ce qu’on attend d’une proposition qui passe d’un modèle de ZFC à un autre.
194 Chapitre 9. Modèles de ZFC

9.2.1 Rang et parties héréditaires


Le rang indique à quelle étape de la construction des Vα notre ensemble a été construit.
Définition 9.2.1.1 (Rang). On définit le rang d’un ensemble x ∈ V par :

rk(x) ≜ min{α ∈ Ord | x ⊆ Vα }

Le rang d’un ensemble peut se voir comme la profondeur d’accolades imbriquées lorsque
l’on définit l’ensemble en question. Ce rang se comporte bien vis à vis des opérations
ensemblistes usuelles, comme nous allons le voir.
Proposition 9.2.1.2. Soit un ensemble X ∈ V, on peut caractériser son rang par

rk(X) = sup (rk(x) + 1)


x∈X

Démonstration. Montrons que rk(X) est un majorant de {rk(x) + 1 | x ∈ X}. Pour cela,
on montre que pour tout x ∈ X, si X ⊆ Vα alors x ⊆ Vα (donc le minimum des tels Vα
contenant x est inférieur au minimum de ceux contenant X). Soit donc x ∈ X et α tel que
X ⊆ Vα , alors x ∈ Vα , mais comme Vα est transitif, on en déduit que x ⊆ Vα . Donc rk(X)
est un majorant de {rk(x) + 1 | x ∈ X}.
Montrons que ce majorant est une borne supérieure. Soit β ∈ Ord un majorant de
{rk(x) + 1 | x ∈ X}. Pour tout x ∈ X, x ⊆ Vrk(x) donc x ∈ Vrk(x)+1 donc X ⊆ Vβ , donc
rk(X) ≤ β. Ce majorant est donc une borne supérieure, d’où l’égalité.

Lemme 9.2.1.3. Soit x un ensemble et α son rang. Alors pour tout β < α, il existe y tel
que β = rk(y) et y ∈ trcl(x).
Démonstration. Par l’absurde, en fixant α, supposons qu’il existe un ensemble x, minimal
pour ∈, tel que rk(x) > α et il n’existe aucun élément y ∈ trcl(x) tel que rk(y) = α. Comme
on sait que α < rk(x) et que rk(x) = sup(rk(y) + 1), alors on peut trouver y ∈ x tel que
y∈x
rk(y) + 1 > α. Si rk(y) = α, alors cela contredit notre hypothèse sur x. Si rk(y) > α, alors
par ∈-minimalité de x, on en déduit qu’il existe z ∈ trcl(y) tel que rk(z) = α, mais alors
z ∈ trcl(x), ce qui est absurde. Ainsi, dans tous les cas, on a une absurdité. On en déduit
que pour tout x et α < rk(x), il existe y ∈ trcl(x) tel que rk(y) = α.

Propriété 9.2.1.4. Les propriétés suivantes sont vérifiées :


• ∀x, y ∈ V, x ∈ y =⇒ rk(x) + 1 ≤ rk(y)
• ∀x, y ∈ V, x ⊆ y =⇒ rk(x) ≤ rk(y)
[ 
• ∀x ∈ V, rk x + 1 ≤ rk(x)
• ∀x, y ∈ V, rk(x ∪ y) = max(rk(x), rk(y))
• ∀x, y ∈ V, rk({x, y}) = max(rk(x), rk(y)) + 1
• ∀x ∈ V, rk(P(x)) = rk(x) + 1
• ∀x ∈ V, rk(trcl(x)) = rk(x)
• ∀α ∈ Ord, rk(α) = α
Démonstration. Vérifions chaque propriété :
• l’inégalité vient directement de la proposition 9.2.1.2.
• soient x, y tels que x ⊆ y. Si y ⊆ Vα , comme x ⊆ y, on en déduit que x ⊆ Vα , donc
rk(x) ≤ rk(y).
9.2. Vers le théorème de réflexion 195

• soit y ∈ x, on trouve z ∈ x tel que y ∈ z ∈ x. En utilisant l’inégalité précédente,


S

on en déduit que rk(y) + 1 ≤ rk(z) et que rk(z) + 1 ≤ rk(x), donc rk(y) + 2 ≤ rk(x).
On en détuit en utilisant la proposition 9.2.1.2 que rk( x) + 1 ≤ rk(x).
S

• soient x, y. On utilise directement la proposition 9.2.1.2 :

rk(x ∪ y) = sup (rk(z) + 1)


z∈x∪y

= max(sup(rk(z) + 1), sup(rk(z) + 1))


z∈x z∈y

= max(rk(x), rk(y))

• pour deux éléments x, y, il est clair que le sup est un max, d’où l’égalité.
• soit un ensemble x. comme x ∈ P(x), on en déduit que rk(x) + 1 ≤ rk(P(x)). Pour
l’autre inclusion, si y ∈ P(x) alors y ⊆ x, donc rk(y) ≤ rk(x) par un point précédent.
On en déduit que supy∈P(x) (rk(y) + 1) ≤ rk(x) + 1 d’où l’égalité.
• comme chaque Vα est transitif, si x ⊆ Vα alors trcl(x) ⊆ Vα . On en déduit que
rk(trcl(x)) ≤ rk(x), et il est clair que l’autre inégalité tient toujours puisqu’on rajoute
des éléments.
• on prouve cela par induction transfinie :
◦ ∅ ⊆ ∅ donc rk(0) = 0.
◦ on sait que α + 1 = α ∪ {α}. En utilisant les précédentes égalités, rk({α}) =
rk(α) + 1 donc rk(α + 1) = α + 1.
◦ si λ est un ordinal limite, alors rk(λ) = supβ<λ (rk(β) + 1) et par hypotèse
d’induction, rk(β) = β, donc rk(λ) = λ.
Ainsi pour tout α ∈ Ord, rk(α) = α.
Les propriétés sont donc vérifiées.

On peut alors affiner certains résultats liés au fait que V |= ZFC. En effet, puisque
Vα ⊆ V, on peut chercher ce que chaque Vα vérifie. Chaque Vα vérifie l’axiome de fondation.
On voit dans la propriété 9.2.1.4 que la plupart des opérations ne font pas exploser le
rang. Cela signifie que, dans le cas d’un ordinal limite, où α ∈ λ =⇒ α + 1 ∈ λ, beaucoup
de constructions sont stables par Vλ .

Propriété 9.2.1.5. Soit λ un ordinal limite. Alors Vλ vérifie les axiomes suivants :
• l’axiome de la paire
• l’axiome de l’union
• l’axiome de l’ensemble des parties
• l’axiome de compréhension
• l’axiome du choix
De plus, si λ > ω alors Vλ vérifie l’axiome de l’infini.

Démonstration. Vérifions chaque axiome, en utilisant le lemme 9.1.2.5 :


• axiome de la paire : soient x, y ∈ Vλ , donc tels que rk(x) < λ et rk(y) < λ. On a
alors l’inégalité rk({x, y}) = max(rk(x), rk(y)) + 1 < λ, donc {x, y} ∈ Vλ .
• axiome de l’union : soit x ∈ Vλ , alors rk(x) < λ, donc rk( x) < λ donc x ∈ Vλ .
S S

• axiome de l’ensemble des parties : soit x ∈ Vλ . Comme rk(P(x)) = rk(x) + 1, que


rk(x) < λ et que λ est limite, on en déduit que rk(P(x)) < λ donc que P(x) ∈ Vλ .
196 Chapitre 9. Modèles de ZFC

• axiome de compréhension : on sait que si x ⊆ y alors rk(x) ≤ rk(y), donc Vλ est


stable par sous-ensemble.
• soit X un ensemble non vide, d’éléments deux à deux disjoints. Alors par l’axiome du
choix, il existe C tel que ∀x ∈ X, |C ∩ x| = 1. Quitte à prendre C ∩ X, C ⊆ X
S S

donc rk(C) < λ, donc C ∈ Vλ .


Si λ > ω, alors ω ∈ Vλ donc il existe bien dans Vλ un élément contenant l’ensemble vide
et stable par successeur. On peut préciser que l’ensemble vide est bien dans Vλ , donnant
un sens à la définition.

On peut se demander alors si l’axiome de remplacement est vérifié. En fait il est évident
que ça n’est pas le cas, en partant du deuxième théorème d’incomplétude de Gödel : si
c’était le cas, alors on trouverait un modèle de ZFC, impliquant que ZFC ⊢ Coh(ZFC) (ou
plutôt ZFC ⊢ Coh(⌈ZFC⌉)).
Les Vλ nous donnent donc une approximation assez fidèle d’un modèle de ZFC s’il
s’agit de mathématiques usuelles, mais ces ensembles perdent tout leur intérêt pour de la
théorie des ensembles : le schéma d’axiomes de remplacement est utilisé pour la plupart de
nos constructions, dès l’utilisation de la récursion transfinie.
On introduit une autre hiérarchie d’ensembles qui, eux, vérifieront le schéma d’axiomes
de remplacement : ce sont les ensembles héréditaires.
Définition 9.2.1.6 (Ensemble héréditaire). Soit κ ∈ Card. On appelle ensemble des
ensembles héréditairement de cardinal κ la classe

Hκ ≜ {x | Card(trcl(x)) < κ}

Pour deux cardinaux κ, λ, on définit le cardinal



λ<κ ≜ sup λκ
κ′ <κ

On peut voir ce cardinal comme le cardinal de l’ensemble des fonctions de κ dans λ dont le
support (ensemble des points de κ où la fonction n’est pas nulle) est strictement inférieur
à κ.
On montre maintenant que, plus que des classes, les Hκ sont des ensembles.
Proposition 9.2.1.7. Soit κ ∈ Card infini. Alors Hκ ⊆ Vκ et |Hκ | = 2<κ .
Démonstration. Soit un ensemble x et α son rang. Par le lemme 9.2.1.3, pour tout β < α,
on trouve xβ ∈ trcl(x) tel que rk(xβ ) = β. On a donc une injection de rk(x) vers trcl(x),
donc Card(trcl(x)) ≥ Card(rk(x)), d’où x ∈ Vκ .
Pour la deuxième proposition, procédons par double inégalité. Tout d’abord, pour
λ < κ, on sait que P(λ) ⊆ Hκ , donc |Hκ | ≥ 2λ , d’où |Hκ | ≥ 2<κ .
Pour l’autre inégalité, on va construire pour chaque x ∈ Hκ une relation rx ⊆ λ × λ
pour un certain λ < κ, de telle sorte que l’association x 7→ rx soit injective. Soit donc
x ∈ Hκ , on pose λ = | trcl(x) ∪ {x}| (donc λ < κ) et on pose rx ⊆ λ × λ une relation telle
que
(λ, rx ) ∼
= (trcl(x) ∪ {x}, ∈)
(cette relation existe puisqu’on a une bijection entre trcl(x) ∪ {x} et λ). On veut maintenant
prouver que pour tout autre y et λ′ = | trcl(y) ∪ {y}|, si (λ, rx ) = (λ′ , ry ), alors x = y. On
suppose donc que (λ, rx ) = (λ′ , ry ). Par le lemme 6.1.5.5, on sait (puisque trcl(x) ∪ {x}
et trcl(x) ∪ {y} sont des ensembles transitifs) que le seul isomorphisme existant entre
(trcl(x) ∪ {x}, ∈) et (trcl(y) ∪ {y}, ∈) est l’identité. Or, on sait que (λ, rx ) = (λ′ , ry ), donc
9.2. Vers le théorème de réflexion 197

on en conclut que trcl(x) ∪ {x} = trcl(y) ∪ {y} par unicité de l’isomorphisme. Il vient
ensuite que x = y puisque x (respectivement y) est l’unique élément ∈-maximal dans
trcl(x)
[ ∪ {x} (respectivement dans trcl(y) ∪ {y}). On a donc une injection de Hκ dans
λ × 2λ×λ , d’où |Hκ | ≤ 2<κ .
λ<κ

Comme Hκ est inclus dans un ensemble, c’est lui-même un ensemble.


On veut maintenant montrer les cas d’égalité entre H et V.

Propriété 9.2.1.8. Les propriétés suivantes sont vérifiées :


• Vω = Hω
• pour tout α ∈ Ord, |Vω+α | = ℶα , donc en particulier pour α ≥ ω 2 , |Vα | = ℶα .
• si κ > ω, alors Hκ = Vκ si et seulement si κ = ℶκ .

Démonstration. Prouvons chaque propriété :


• on voit que pour tout n, Vn ne contient que des ensembles finis (c’est le cas de V0 , et
P(X) ne contient que des ensembles finis si X est fini), donc Vn ⊆ Hω , d’où Vω ⊆ Hω .
Réciproquement, si x ∈/ Vω , alors trcl(x) est au moins dénombrable, puisque x a un
élément de chaque rang n ∈ ω : par contraposée, si x ∈ Hω alors x ∈ Vω .
• on sait que |Vω | = ω car on a une union dénombrable d’ensembles finis, que |Vα+1 | =
2Vα et que |Vλ | = supβ<λ |Vβ | pour λ limite, donc Vω+α coïncide avec ℶα . Si α ≥ ω 2 ,
alors ω + α = α, d’où le résultat.
• on prouve l’équivalence par double implication :
◦ soit κ > ω tel que Hκ = Vκ . Soit α tel que ω 2 ≤ α < κ. On sait que Vα ∈ Vκ ,
donc Vα ∈ Hκ , donc en utilisant la propriété prouvée précédemment, ℶα < κ.
En prenant alors la borne supérieure de ces égalités pour α < κ et par continuité
de ℶ, on en déduit que ℶκ ≤ κ. Comme on sait que κ ≤ ℶκ pour n’importe quel
κ, on en déduit que κ = ℶκ .
◦ supposons que κ = ℶκ . Soit x ∈ Vκ , on peut trouver α tel que ω 2 ≤ α < κ et
x ∈ Vα , car κ est un ordinal limite et un cardinal indénombrable. Comme x ⊆ Vα ,
on en déduit que | trcl(x)| ≤ |Vα |, or Vα est de cardinal ℶα , et ℶα < ℶκ = κ.
On en déduit donc que x ∈ Hκ . L’inclusion réciproque est directement due à la
proposition 9.2.1.7.
d’où le résultat.
Ainsi, on a prouvé les trois propriétés.

On peut maintenant prouver que Hκ vérifie les axiomes de ZFC −P pour un cardinal
régulier κ, c’est-à-dire les axiomes de ZFC sauf celui de l’ensemble des parties.

Propriété 9.2.1.9. Soit κ un cardinal régulier indénombrable. Alors Hκ vérifie :


• l’axiome d’extensionalité
• l’axiome de la paire
• l’axiome de la réunion
• l’axiome de remplacement
• l’axiome de l’infini
• l’axiome de fondation
• l’axiome du choix
198 Chapitre 9. Modèles de ZFC

Démonstration. On vérifie chaque axiome, en utilisant le lemme 9.1.2.5 :


• axiome de la paire : comme trcl({x, y}) = trcl(x) ∪ trcl(y) ∪ {x, y}, si trcl(x) et trcl(y)
sont de cardinal inférieur strictement à κ, alors | trcl({x, y})| < κ.
• axiome de la réunion : si X ∈ Hκ , alors | trcl(X)| < κ. Or, on peut remarquer que
[ 
trcl X ⊆ trcl(X)
S [ 
puisque trcl(X) contient déjà X et est transitif. Il vient donc que trcl X < κ.
• axiome de remplacement : soit f une fonction partielle d’un ensemble x ∈ Hκ vers
un ensemble y ⊆ Hκ . Alors
[
trcl(y) = (trcl(z) ∪ {z})
z∈y

mais comme chaque z ∈ y est un élément de Hκ , et qu’on sait que x ∈ Hκ , on en


déduit que trcl(y) est une union de cardinal inférieur strictement à κ d’ensembles de
cardinal inférieur strictement à κ. Ainsi, d’après le théorème 7.3.3.1, | trcl(y)| < κ,
donc y ∈ Hκ .
• axiome de l’infini : puisque κ est indénombrable, il contient ω.
• axiome de fondation : Hκ ⊆ Vκ donc tous les éléments de Hκ sont bien fondés pour
∈.
• axiome du choix : si un ensemble x ∈ Hκ est non vide et tous ses éléments sont
non vide et deux à deux disjoints, alors par l’axiome du choix on trouve C tel que
C ∩ y est un singleton pour tout y ∈ x. Quitte à intersecter C avec x, on sait que
S

C ⊆ x, donc comme Hκ est stable par union et par sous-ensembles, C ∈ Hκ .


S

Ainsi Hκ vérifie ZF −P .

On voit qu’ici, pour que Hκ vérifie tout ZFC, il lui suffit que pour tout κ′ ∈ κ, 2κ ∈ κ.
C’est ce qu’on appelle un cardinal fortement inaccessible.
Définition 9.2.1.10 (Cardinal fortement inaccessible). On dit qu’un cardinal λ est
fortement inaccessible (on dit aussi, plus simplement, inaccessible) si λ > ω et
∀κ ∈ λ, 2κ ∈ λ
Il vient directement qu’un tel cardinal ne peut exister dans tout modèle de ZFC.
Proposition 9.2.1.11. Il n’est pas prouvable dans ZFC qu’il existe un cardinal inaccessible.
Démonstration. S’il existait un κ inaccessible, alors Hκ serait un modèle ensembliste de
ZFC, ce qui contredit le second théorème d’incomplétude de Gödel.

Enfin, nous allons introduire l’univers constructible L de Gödel, que nous étudierons
dans la section prochaine. Nous aurons cependant besoin de notions liées à sa construction.
Définition 9.2.1.12 (Partie définissable). Soit un ensemble X, on dit qu’une partie
Y ⊆ X est définissable dans X s’il existe une formule φ(x1 , . . . , xn , x) à n + 1 variables
libres et des ensembles a1 , . . . , an ∈ X tels que
∀x ∈ X, x ∈ Y ⇐⇒ X |= φ(a1 , . . . , an , x)
On appelle ensemble des parties définissables d’un ensemble X l’ensemble

D(X) ≜ {Y ⊆ X | ∃φ(x1 , . . . , xn , x) ∈ Form(LZF ),


∃a1 , . . . , an ∈ X, ∀x ∈ X, x ∈ Y ⇐⇒ X |= φ(a1 , . . . , an , x)}
9.2. Vers le théorème de réflexion 199

Remarque 9.2.1.13. Il peut être bon de préciser, ici, de quel type de formule on parle.
Dans le cas de la notion de définissabilité, on considère les propositions internes au modèle
de ZFC, c’est-à-dire les objets ensemblistes représentant intérieurement nos propositions.
Cela explique l’utilisation de « X |= φ(x) » plutôt que « φ(x) » directement.
L’univers constructible est alors l’itération de cette opérations à la place de l’ensemble
des parties.
Définition 9.2.1.14 (Univers constructible de Gödel[Göd38]). On définit par induc-
tion transfinie la hiérarchie Lα :
• L0 = ∅
• Lα+1 = D(Lα )
[
• si λ est limite, alors Lλ = Lβ
β<λ
L’univers constructible de Gödel est alors
[
L≜ Lα
α∈Ord

9.2.2 Absoluité et réflexion


On va maintenant s’intéresser à une question assez naturelle à se poser, dans les condi-
tions de notre étude des modèles de ZFC. Supposons donnés deux modèles (potentiellement
des classes) (M, ∈) et (N , ∈) et M ⊆ N , quand une formule φ à paramètres dans M
garde-t-elle la même valeur de vérité que l’on l’étudie dans M ou dans N ?
Prenons un exemple : on a vu que Vα étant un ensemble transitif, celui-ci vérifiait
l’extensionalité. La preuve montre assez clairement que la proposition ∀z, z ∈ x ⇐⇒ z ∈ y
en elle-même ne dépend pas du point de vue choisi, tant que celui-ci se fait dans un
ensemble transitif. Ainsi si on imagine un sur-modèle de notre univers ensembliste, ou une
partie seulement, la vérité de ∀z, z ∈ x ⇐⇒ z ∈ y est presque constante (encore une fois,
tant que l’univers considéré est transitif). Une formule absolue est donc une formule dont
la valeur de vérité ne changera pas suivant les modèles.
Définition 9.2.2.1 (Formule absolue). Soient deux classes (M, ∈), (N , ∈) telles que
M ⊆ N . Soit φ(x1 , . . . , xn ) ∈ LZF une formule à n paramètres. On dit que φ est absolue
entre M et N lorsque

M ≼φ N ≜ ∀a1 , . . . , an ∈ M, φM (a1 , . . . , xn ) ⇐⇒ φN (a1 , . . . , an )

On dira que φ est absolue pour une classe M si elle est absolue entre M et V.
L’exemple précédent sur l’extensionalité peut en fait se généraliser. La propriété exploitée
est le fait que si l’on étudie ∀x, z ∈ x ⇐⇒ z ∈ y dans un modèle transitif, alors on est
obligé de contenir tous les éléments de x et y. Cette propriété est en quelque sorte locale :
tout ce qui est nécessaire pour évaluer la vérité de cette proposition est la donnée de tous
les éléments de x et de y.
Au contraire, une propriété comme « être un cardinal » n’est pas du tout locale,
puisqu’elle repose sur la non existence d’une injection dans l’univers ambiant. Imaginons
qu’on puisse ajouter une telle injection dans notre univers, alors un élément qui était un
cardinal peut ne plus l’être.
Pour étudier les propositions qui présentent cette propriété de localité mentionnée
ci-dessus, on introduit la hiérarchie de Lévy.
200 Chapitre 9. Modèles de ZFC

Définition 9.2.2.2 (Hiérarchie de Lévy [Lev65]). On définit par induction trois


familles d’ensembles de formules sur LZF , (∆ZFC ZFC ZFC
n )n∈N , (Σn )n∈N et (Πn )n∈N :
• ∆ZFC
0 = ΣZFC
0 = ΠZFC
0 est l’ensemble des formules prouvablement équivalentes dans
ZFC à une formule dont les quantificateurs sont tous bornés, c’est-à-dire que toute
quantification Qx, ψ est de la forme Qx ∈ t, ψ où t est un terme ne contenant pas x.
• ΣZFC
n+1 est l’ensemble des formules prouvablement équivalentes dans ZFC à une formule
de la forme ∃x, ψ où ψ est une formule ΠZFC
n .
• ΠZFC
n+1 est l’ensemble des formules prouvablement équivalentes dans ZFC à une formule
de la forme ∀x, ψ où ψ est une formule ΣZFC
n .
• ∆ZFC
n est l’ensemble des formules qui sont à la fois ΣZFC
n et ΠZFC
n .
On notera dans ce chapitre simplement ∆n (respectivement Σn et Πn ) pour ∆ZFC
n .

Remarque 9.2.2.3. Comme on peut toujours prendre un produit fini comme un nouvel
ensemble, il est équivalent de prendre un seul quantificateur ∃ (respectivement ∀) et une
suite finie de quantificateurs ∃ (respectivement ∀), d’où le fait qu’on se limite dans la
hiérarchie aux alternances de quantificateurs.

On peut maintenant énoncer la généralisation de notre preuve de l’axiome d’extensio-


nalité pour toute formule ∆0 .

Proposition 9.2.2.4. Soit M une classe transitive. Alors toute formule φ ∈ ∆0 est absolue
pour M.

Démonstration. On prouve le résultat par induction sur la formule ψ qu’on considère :


• dans le cas d’une formule atomique, puisque ∈ est la même relation interprétée dans
M et dans V, on a le résultat (de même pour =).
• dans le cas de ∨, ∧, →, ¬, ⊤, ⊥, le résultat se fait simplement en écrivant les définitions.
• dans le cas de ∃, supposons donc que ψ(x1 , . . . , xn , z) = ∃y ∈ z, φ(x1 , . . . , xn , y, z)
(les termes dans LZF sont uniquement des variables). Par hypothèse d’induction, on
suppose donc que φ est absolue pour M. Soient des paramètres a1 , . . . , an et c dans
M. On veut donc prouver que

∃bM , b ∈ c ∧ φM (a1 , . . . , an , b, c) ⇐⇒ ∃b ∈ c, φ(a1 , . . . , an , b, c)

Le sens direct se vérifie facilement. Pour le sens réciproque, on remarque que comme
M est transitive, b ∈ c implique que b ∈ M. Alors, par absoluité de φ pour M, on
en déduit que φ(a1 , . . . , an , b, c).
• on peut prouver le cas de ∀ en passant par les loi de De Morgan.
Ainsi, par induction, on sait que ψ ∈ ∆0 est absolue pour M.

Donnons des exemples de formules ∆0 :

Exemple. Les formules suivantes sont ∆0 :


• x∈y
• x ⊆ y, car cela s’écrit ∀z ∈ x, z ∈ y
• x = {y, z}
S
• x= y
• x est transitif, car cela s’écrit ∀y ∈ x, y ⊆ x
9.2. Vers le théorème de réflexion 201

• x est un couple, car cela s’écrit ∃y, ∃z, x = {{y, z}, {y}}
• pour un couple α, la formule x = π1 (α) (respectivement x = π2 (α))
• f est une fonction, car cela s’écrit

(∀γ ∈ f, γ est un couple ) ∧ (∀γ, δ ∈ f, π2 (γ) = π2 (δ) =⇒ π1 (γ) = π1 (δ))

• α ∈ Ord, car être un ordinal est la conjonction des formules disant :


◦ que α est transitif, dont on a vu que la formule était ∆0 .
◦ que ∈ est transitif sur α, ce qui s’écrit

∀x ∈ α, ∀y ∈ α, ∀z ∈ α, x ∈ y ∧ y ∈ z =⇒ x ∈ z

qui est clairement ∆0 .


◦ que ∈ est total, ce qui s’écrit

∀x ∈ α, ∀y ∈ α, x ̸= y =⇒ x ∈ y ∨ y ∈ x

qui est là encore clairement ∆0 .


◦ comme on suppose l’axiome de fondation, l’irréflexivité de ∈ et sa bonne fonda-
tion sont forcément vérifiées.
• être égal à ω, car « X = ω » peut s’écrire

X ∈ Ord ∧(∀z ∈ X, S z ∈ X) ∧ (∀y ∈ X, ¬(∀z ∈ y, S z ∈ y))

Exercice 9.2.2.5. Montrer qu’être un ordinal successeur (respectivement limite) peut


s’exprimer par une formule ∆0 . Montrer qu’être une bijection peut s’exprimer par une
formule ∆0 .

On voit donc une famille importante de formules qui sont absolues entre les classes
transitives (qui sont presque les seules classes d’intérêt).
On peut aussi étudier les formules Σ1 et Π1 , qui ne sont pas absolues mais transmettent
leur vérité d’une classe à une sur-classe (respectivement à une sous-classe).

Proposition 9.2.2.6. Soit M, N deux classes transitives, avec M ⊆ N . Alors pour un


énoncé φ ∈ Form(LZF ), on a les implications suivantes :
• si φ ∈ Σ1 alors φM =⇒ φN
• si φ ∈ Π1 alors φN =⇒ φM
et toute formule ∆1 est absolue entre M et N .

Démonstration. On montre d’abord les deux implications :


• supposons que φ ∈ Σ1 et φM . On suppose sans perte de généralité que φ est de la
forme ∃x, ψ où ψ ∈ ∆0 . On sait donc qu’il existe un ensemble a ∈ M tel que ψ[a/x]
est vraie. Comme ψ[a/x] est ∆0 , elle est absolue entre ces deux classes transitives, et
M ⊆ N donc ψ[a/x] permet de déduire (∃x, ψ)N .
• supposons que φ ∈ Π1 et φN . On suppose sans perte de généralité que φ est de la
forme ∀x, ψ où ψ ∈ ∆0 . On sait que donc pour tout ensemble a ∈ N , ψ[a/x] est
vraie. Ainsi, pour tout ensemble a ∈ M, ψ[a/x] est vérifiée aussi, par inclusion. Donc
(∀x, ψ)M .
Si φ ∈ ∆1 , alors φ est Σ1 et Π1 , ce qui signifie que φM ⇐⇒ φN , donc que M ≼φ N .
202 Chapitre 9. Modèles de ZFC

Donnons maintenant le théorème de réflexion, qui est un théorème majeur de la théorie


des ensembles. Celui-ci nous permet de montrer que pour toute hiérarchie telle V ou L
et toute proposition φ, il existe des ordinaux arbitrairement élevés tels que φ est absolue
entre la hiérarchie et sa construction partielle à l’ordinal donné.
Ce théorème est plutôt un schéma de théorème : pour chaque φ, il existe un théorème
correspondant. La démonstration, sans surprise, s’effectuera par induction sur φ. Cependant,
on remarque un point important : pour une formule sans quantificateur, φM = φ. On n’a
donc qu’à traiter le cas des quantifications, et en utilisant la mise sous forme prénexe des
formules, déduire le résultat pour toute formule. De plus, en utilisant les lois de De Morgan,
on sait qu’on peut se contenter de prouver ce fait pour un quantificateur (on choisit ∃) et
de traiter le cas de la négation : celui-ci est direct, puisque si on sait que φ ⇐⇒ ψ alors
¬φ ⇐⇒ ¬ψ.
Pour montrer le résultat dans le cas de ∃, on a besoin d’un lemme sur l’absoluité.

Lemme 9.2.2.7. Soit une formule Q1 x1 , . . . , Qk xk , ψ où les Qi sont des quantificateurs


et ψ est sans quantificateurs, X une classe, (Xn )n∈N une suite croissante d’ensembles inclus
dans X , et [
X≜ Xn
n∈N

Si pour tout i ≤ k et n ∈ N, on a

Xn ≼Qi xi ,...,Qk xk ,ψ X

alors on a aussi pour tout i ≤ k

X ≼Qi xi ,...,Qk qk ,ψ X

Démonstration. On raisonne par induction sur k, en ajoutant des négations ou des quanti-
ficateurs ∃ :
• si la formule est simplement ψ, sans quantificateurs, alors comme ψ X = ψ X , le
résultat est automatiquement vrai.
• si la formule est ¬φ où φ est une formule absolue entre X et X , comme on sait que
χ ⇐⇒ θ est équivalente à ¬χ ⇐⇒ ¬θ pour toutes formules χ, θ, on en déduit
à partir de l’hypothèse d’induction que ¬φ est absolue entre X et X (et de même
pour toutes les formules partielles obtenues à partir de φ en en supprimant des
quantificateurs en tête).
• si la formule est ∃x, Q1 x1 , . . . , Qk xk , ψ, alors en posant

φ ≜ Q1 x1 , . . . , Qk xk , ψ

on sait par hypothèse d’induction que chaque Qj xj , . . . , Qk xk , ψ est absolue entre


X et X . On souhaite donc maintenant montrer que ∃x, φ est absolue entre X et X .
Soient des paramètres a1 , . . . , ap ∈ X, montrons

∃x ∈ X, φX (a1 , . . . , ap ) ⇐⇒ ∃x ∈ X , φX (a1 , . . . , ap )

par double implication :


◦ supposons que ∃x ∈ X, φX (a1 , . . . , ap ). On trouve alors a ∈ X vérifiant la
formule φX (a, a1 , . . . , ap ). Par hypothèse d’induction, comme φ est absolue
entre X et X , on en déduit que φX (a, a1 , . . . , ap ), donc il existe bien x ∈ X tel
que φX (a1 , . . . , ap ).
9.2. Vers le théorème de réflexion 203

◦ réciproquement, si ∃x ∈ M, φX (a1 , . . . , ap ), en prenant un tel a, on trouve j


tel que a1 , . . . , ap ∈ Xj : par absoluité entre Xj et X , on sait donc qu’il existe
a ∈ Xj , donc a ∈ X, tel que φX (a, a1 , . . . , ap ) donc, par absoluité de φ entre X
et X , on en déduit que ∃x ∈ X, φX (a1 , . . . , ap ).
On en déduit donc que ∃x, φ est absolue entre X et X.
D’où le résultat, par induction sur k.

On peut maintenant montrer le théorème à proprement parler.

Théorème 9.2.2.8 (Réflexion). Soit une fonction W : Ord → V vérifiant :


• pour tous α, β ∈ Ord, α ≤ β =⇒ Wα ⊆ Wβ .
• pour tout λ ∈ Ord limite, Wλ =
[

β<λ

et W = Wα . alors pour toute proposition φ ∈ Form(LZF ) et tout ordinal α ∈ Ord, il


[

α∈Ord
existe un ordinal β > α tel que Wβ ≼φ W. On peut de plus prendre β limite.

Démonstration. On montre le résultat uniquement sur les formules sous forme prénexe, mais
comme toute formule est équivalente à une formule sous forme prénexe, cela suffit à montrer
le résultat souhaité. On procède donc par récurrence sur le nombre de quantificateurs de la
formule, en ajoutant des ∃ et des négations :
• comme dans le lemme précédent, le cas sans quantificateur se traite directement
puisque la relativisation ne change pas la formule.
• dans le cas d’une négation, comme φ ⇐⇒ ψ et ¬φ ⇐⇒ ¬ψ sont équivalentes, on a
aussi le résultat directement.
• on suppose donc que la formule pour laquelle on souhaite prouver notre énoncé est
∃x, φ(x, x1 , . . . , xn ). Par hypothèse d’induction, on sait déjà que pour tout α ∈ Ord,
on peut trouver β > α limite, tel que Wβ ≼φ W.
On définit maintenant une fonction (entre classes) F , à n arguments, donnée par le
fait que F (x1 , . . . , xn ) est l’ensemble des x ∈ W tels que φ(x, x1 , . . . , xn ) et dont le
W-rang (au sens de plus petit α tel que l’élément est dans Wα ) est minimal. Ainsi,
quitte à choisir uniquement les éléments de W-rang minimal, on a l’équivalence
suivante, pour toute formule ψ :

∃x ∈ W, ψ(x, x1 , . . . , xn ) ⇐⇒ ∃x ∈ F (x1 , . . . , xn ), ψ(x, x1 , . . . , xn )

Soit α ∈ Ord. On décide maintenant de définir une suite (βn ) d’ordinaux limites
supérieurs à α, par récursion d’ordre 2 :
◦ on choisit pour β0 le premier β > α tel que Wβ ≼φ W.
◦ pour un rang k fixé, on définit β2k+1 comme le plus petit ordinal strictement
supérieur à β2k tel que Wβ2k+1 contienne F (a1 , . . . , an ) pour tous a1 , . . . , an ∈
Wβ2k (il nous suffit de considérer l’union de tous ces F (a1 , . . . , an ) pour obtenir
un ensemble, dont les W-rangs sont donc majorés, et de prendre un ordinal
supérieur à cette majoration).
◦ on définit ensuite β2k+2 comme le plus petit ordinal supérieur strictement à
β2k+1 tel que Wβ2k+2 ≼φ W.
204 Chapitre 9. Modèles de ZFC

On définit alors β = sup βn : c’est un ordinal limite car les βk sont des ordinaux
limites. D’après le lemme 9.2.2.7, et comme les Wβk forment une suite croissante
et incluse dans W par hypothèse, on sait donc que φ est absolue entre Wβ et W
(puisque β est le sup des β2k ). On montre maintenant que ∃x, φ est absolue entre Wβ
et W. Soient a1 , . . . , ak ∈ Wβ , ce que l’on peut réécrire par a1 , . . . , ak ∈ W2k pour un
certain k ∈ N (que l’on fixe désormais). Montrons par double implication que

∃x ∈ Wβ , φWβ (a1 , . . . , an ) ⇐⇒ ∃x ∈ W, φW (a1 , . . . , an )

◦ si on trouve x ∈ Wβ vérifiant l’énoncé, alors en utilisant le fait que φ est absolue


entre Wβ et W et le fait que Wβ ⊆ W, on obtient le résultat.
◦ réciproquement, si l’on trouve a ∈ W tel que φW (a, a1 , . . . , an ) alors on peut
aussi le trouver de W-rang minimal. Cela signifie donc que a ∈ F (a1 , . . . , an ),
donc on sait que a ∈ Wβ2k+1 , donc a ∈ Wβ . On en déduit, comme φ est absolue
entre Wβ et W, qu’il existe a ∈ Wβ tel que φWβ (a, a1 , . . . , an ), d’où le résultat.
On a donc prouvé notre résultat par induction sur les formules sous forme prénexe.

Remarque 9.2.2.9. La preuve a été légèrement allégée pour être plus digeste : pour
vérifier les hypothèses du lemme 9.2.2.7, il nous faut établir comme énoncé à montrer par
induction que le β que l’on trouve à chaque fois est vrai non seulement pour φ, mais aussi
pour φ auquel on enlève une partie des quantificateurs de tête. Remarquons aussi que,
comme le lemme 9.2.2.7 est lui-même un schéma de lemme, et que l’on veut prouver un
schéma de théorèmes, il est bon de vérifier un fait : pour une formule φ donnée, il nous
suffit d’utiliser notre schéma de lemmes un nombre fini de fois pour atteindre la conclusion.

Remarque 9.2.2.10. Comme on peut toujours représenter un ensemble fini de propositions


V
F par F , le théorème de réflexion s’étend directement à un ensemble fini de propositions.

Une première conséquence est un résultat assez peu surprenant, mais qu’il est intéressant
d’avoir.

Proposition 9.2.2.11. La théorie ZFC n’est pas finiment axiomatisable.

Démonstration. Si ZFC était finiment axiomatisable, alors on trouverait un certain Vα tel


que ZFC est absolu pour Vα , nous donnant donc un modèle ensembliste de ZFC.

9.3 L’univers constructible de Gödel


Nous avons introduit cet univers dans la définition 9.2.1.14, mais ne l’avons pas encore
étudié. Nous le verrons, c’est un univers ensembliste se comportant particulièrement bien :
l’axiome du choix y est vrai dans une version particulièrement forte, l’hypothèse du continu
généralisée y est vraie. . . Nous allons donc étudier plus en profondeur l’univers L.

9.3.1 Premiers pas


Tout d’abord, intéressons-nous à l’opération D. Celle-ci nous donne une forme plus
faible d’ensemble des parties, mais on peut remarquer que son action sur le cardinal n’est
pas du tout la même.

Proposition 9.3.1.1. Les assertions suivantes sont vérifiées :


• si X est un ensemble fini, alors D(X) = P(X).
9.3. L’univers constructible de Gödel 205

• si X est un ensemble infini, alors |D(X)| = |X|.


Démonstration. Prouvons ces deux assertions :
• La première inclusion, D(X) ⊆ P(X), est directe. Supposons que X est fini et soit
Y ⊆ X. Décomposons Y = {y1 , . . . , yp }. On peut alors définir la proposition
p
_
φ(x) ≜ (x = yi )
i=1

dont il est évident que x ∈ Y ⇐⇒ X |= φ(x). Ainsi Y ∈ D(X), d’où l’égalité.


• Supposons que X est infini. Pour énumérer D(X), il nous suffit d’énumérer Form(LZF ),
qui est dénombrable, et l’ensemble des parties finies de X : |X <ω | = |X| car X est
au moins dénombrable. Ainsi il y a |ω × X <ω | = |X| tuples (φ, a1 , . . . , an ) définissant
une partie définissable de X, donc |D(X)| ≤ |X|. De plus, on peut injecter X dans
D(X) par x 7→ {x}, dont la représentation est la formule

ψ(y) ≜ x = y

donc |D(X)| = |X|.

On montre aussi, de façon analogue au travail effectué pour V, que (Lα )α∈Ord est une
hiérarchie cumulative et transitive.
Proposition 9.3.1.2. Pour tout α, β ∈ Ord, si α ≤ β alors Lα ⊆ Lβ . De plus chaque Lα
est un ensemble transitif.
Démonstration. On prouve d’abord que chaque Lα est un ensemble transitif, par induction
sur α :
• L0 = ∅ est transitif.
• supposons que Lα est transitif. Soit alors x ∈ Lα+1 . Cela signifie que x ⊆ Lα+1 , donc
y ∈ Lα pour tout y ∈ x. Mais alors on peut définir y par la formule

φy (x) ≜ x ∈ y

à paramètre (y) dans Lα . Ainsi y ∈ Lα+1 , donc x ⊆ Lα+1 .


• pour le cas limite, l’union d’ensembles transitifs est un ensemble transitif.
On prouve maintenant que la hiérarchie est cumulative, par induction sur la différence
entre β et α :
• Lα ⊆ Lα
• on montre que Lβ ⊆ Lβ+1 , ce qui suffit à montrer que Lα ⊆ Lβ =⇒ Lα ⊆ Lβ+1 . Si
x ∈ Lβ , alors on peut définir x par

φx (a) ≜ a ∈ x

dans Lβ+1 , donc x ∈ Lβ+1 .


• le cas où la différence est un ordinal limite est direct.
Ainsi, par induction transfinie, Lα est une hiérarchie cumulative.

Il est donc clair que D(X) ̸= P(X) lorsque X est infini. On peut donc montrer que L
ne coïncide avec V que jusqu’à ω.
206 Chapitre 9. Modèles de ZFC

Proposition 9.3.1.3. Pour tout α ≤ ω, Lα = Vα . Cependant, pour tout α > ω, on a


seulement l’inclusion Lα ⊆ Vα . Lorsque α > ω 2 , si |α| =
̸ ℶα alors Lα ⊊ Vα .
Démonstration. On procède par induction transfinie :
• L0 = V0
• pour tout n ∈ ω, si Ln = Vn , alors comme les deux ensembles sont finis :

Ln+1 = D(Ln )
= P(Ln )
= P(Vn )
= Vn+1

• comme ∀n < ω, Ln = Vn , on en déduit que Lω =


S
Ln = Vω .
• comme Lω est infini, Lω+1 ⊊ P(Lω ), donc Lω+1 ⊊ Vω+1 .
• comme on sait que |D(X)| = |X| pour X infini, on en déduit que |Lα | = |α| pour
α > ω. En comparaison, |Vα | = ℶα à partir de α2 , donc l’égalité des deux ensembles
implique que |α| = ℶα , d’où l’inclusion stricte par contraposée.

Cependant, L contient bien tous les ordinaux.


Proposition 9.3.1.4. Pour tout α ∈ Ord, Ord ∩Lα = α.
Démonstration. On raisonne par induction transfinie :
• le cas de ∅ est direct.
• on suppose que Ord ∩Lα = α, montrons que Ord ∩Lα+1 = α + 1 par double inclusion.
Soit β ∈ Ord ∩Lα+1 : on sait donc que β est une partie définissable de Lα : en
particulier, c’est un ordinal appartenant à P(α) puisque les ordinaux dans Lα sont
exactement les éléments de α. On en déduit que β < α + 1.
Soit β < α + 1. Si β < α, alors β ∈ Lα par hypothèse d’induction, donc β ∈ Lα+1
par croissance de la hiérarchie L. Si β = α, alors on considère la formule

ψ(x) ≜ Ord(x)

On sait que Ord ∩Lα = α, donc (Lα |= ψ(x)) ⇐⇒ x ∈ α, d’où le fait que α est une
partie définissable de Lα , donc un élément de Lα+1 .
• dans le cas où λ est un ordinal limite, on suppose que pour tout β < λ, Ord ∩Lβ = β,
mais alors l’équation passe à la borne supérieure pour donner Ord ∩Lλ = λ pour
continuité de L.
Ainsi pour tout α ∈ Ord, Ord ∩Lα = α.

Corollaire 9.3.1.5. Pour tout α ∈ Ord, α ∈ Lα+1 , et Ord ⊆ L.


Il y a donc toujours plus d’éléments dans Vα que dans Lα . Cependant, on pourrait
imaginer qu’en prenant par exemple α′ = ℶα , on puisse rattraper Vα en considérant Lα′ .
Le fait que l’on puisse toujours rattraper la hiérarchie (Vα )α∈Ord avec L est indépendant
de ZFC, d’où l’introduction de l’axiome suivant :
Axiome 9.3.1.6 (V = L). On définit l’axiome V = L par la formule suivante :

V = L ≜ ∀x, ∃α ∈ Ord, x ∈ Lα
9.3. L’univers constructible de Gödel 207

Nous étudions maintenant les propriétés de ZFC +V = L. Pour cela, cherchons d’abord
à situer dans la hiérarchie de Lévy les éléments importants de l’univers constructible.

Propriété 9.3.1.7. La définition d’une fonction H-inductive est ∆0 si H est ∆0 .

Démonstration. En effet, dire que f : α → V est H-inductive signifie que :


• ∀β < α, f ↾β ⊆ Dom(H)
• ∀β < α, f (β) = H(f ↾β )
Il nous suffit donc de montrer :
• qu’être le domaine de f est un prédicat ∆0 , et on peut exprimer « X est le domaine
de f » par
∀(x, y) ∈ f, x ∈ X ∧ ∀x ∈ X, ∃(z, y) ∈ f, x = z
donc Dom(f ) est défini par un prédicat ∆0 .
• qu’être une restriction de f est un prédicat ∆0 , ce qui est direct en voyant que

g = f ↾X ⇐⇒ Dom(g) ⊆ Dom(f ) ∧ ∀x ∈ Dom(g), g(x) = f (x)

Comme H est supposé ∆0 , il vient qu’être H-inductif est un prédicat ∆0 . De plus, si H


est ∆n (respectivement Σn , Πn ) alors être H-inductif l’est aussi.

Ainsi, exprimer le prédicat d’être Lα (pour un ordinal α), est à un niveau aussi élevé
que le prédicat utilisé pour sa définition, qui est clairement la complexité de D.
C’est précisément ici que l’on voit que L se comporte beaucoup mieux que V : là où P
est une fonction Π1 , D n’est que ∆0 .

Propriété 9.3.1.8. Le prédicat Y = Form(LZF ) est ∆0 .

Démonstration. La définition est par induction, et la relation permettant de construire de


nouvelles formules à partir d’anciennes est clairement ∆0 .

Propriété 9.3.1.9. Le prédicat Y = D(X) est ∆0 .

Démonstration. On sait grâce à la propriété 9.3.1.8 que l’on peut quantifier sur Form(LZF )
sans souci. La définition de X |= φ est elle aussi simplement une induction sur Form(LZF ).
La quantification sur les éléments de X est, elle aussi, ∆0 . Ainsi

∃φ(x1 , . . . , xn ) ∈ Form(LZF ), ∃a1 , . . . , an ∈ X, ∀x ∈ X,


x ∈ Y ⇐⇒ X |= φ(a1 , . . . , an , x)

est bien ∆0 , donc Y ∈ D(X) est un prédicat ∆0 . Maintenant, dire que Y = D(X) signifie

(∀y ∈ Y, y ∈ D(X)) ∧ ∀φ ∈ Form(LZF ), ∀a1 , . . . , an ∈ X, ∃y ∈ Y, ∀x ∈ X,


x ∈ y ⇐⇒ X |= φ(a1 , . . . , an , x)

donc Y = D(X) est un prédicat ∆0 .

Corollaire 9.3.1.10. Pour tout ordinal α et toute classe transitive M, le prédicat x ∈ Lα


est absolu sur M.

On peut donc placer l’axiome de constructibilité dans la hiérarchie de Lévy.

Proposition 9.3.1.11. V = L ∈ Π2 .
208 Chapitre 9. Modèles de ZFC

Démonstration. On peut énoncer V = L par ∀x, ∃α ∈ Ord, x ∈ Lα qui est clairement Π2


avec les résultats précédents.

Une conséquence intéressante est que V = L est un axiome vérifié dans L. Cela parait
assez évident, mais il faut rappeler qu’a priori, on pourrait obtenir plus de parties en
regardant D dans V. L’avantage justement ici est que toutes nos fonctions sont absolues
pour L.
Théorème 9.3.1.12. ZFC |= (V = L)L
Démonstration. On sait que le prédicat x ∈ Lα est vrai dans L si et seulement s’il est vrai
dans V. Par définition, on a

(V = L)L = ∀x ∈ L, ∃α ∈ Ord ∩L, x ∈ Lα

mais on a vu que Ord ⊆ L, donc il nous reste à prouver que ∀x ∈ L, ∃α ∈ Ord, x ∈ Lα ce


qui est vrai dans V par définition, et donc dans L par absoluité.

On montre aussi que L est un modèle de ZF. On donne d’abord un lemme, similaire à
lemme 9.1.2.5, mais utilisant des conditions plus fortes.
Lemme 9.3.1.13. Soit M une classe transitive vérifiant l’axiome de compréhension et
telle que pour tout x ⊆ M, si x est un ensemble, alors il existe y ∈ M tel que x ⊆ y. Dans
ce cas, M est un modèle de ZF.
Démonstration. On traite les différents axiomes :
• axiome d’extensionalité : M est une classe transitive.
• axiome de fondation : vrai puisque M est une partie de V.
• axiome de la paire : on voit que si x, y ∈ M alors {x, y} ⊆ M, puis on applique
l’axiome de compréhension à l’ensemble contenant {x, y} et appartenant à M qu’on
trouve par hypothèse sur M.
• axiome de la réunion : si x ∈ M alors par transitivité de M, x ⊆ M, d’où le
S

résultat par compréhension et hypothèse sur M.


• axiome de compréhension : vrai par hypothèse.
• axiome de remplacement : supposons que f est une fonction dont le domaine est
x ∈ M et l’image y ⊆ M. Alors par hypothèse on trouve z ∈ M contenant y, et on
utilise l’axiome de compréhension sur z avec la formule

φ(b) ≜ ∃a ∈ x, f (x) = b

pour en déduire que y ∈ M.


• axiome de l’ensemble des parties : soit x ∈ M. On considère

P ≜ {y ∈ M | y ⊆ x}

par hypothèse sur M, on trouve z ∈ M tel que P ⊆ z, et par compréhension on


peut restreindre z aux éléments contenus dans x, nous redonnant P. Ainsi pour tout
y ∈ M, y ∈ P ⇐⇒ y ⊆ x.
• axiome de l’infini : comme M est clos par parties finies grâce à l’axiome de la paire
et de la réunion, et puisque ∅ ∈ M par compréhension, on en déduit que pour tout
n ∈ ω, Vn ⊆ M, donc Vω ⊆ M. On applique alors notre hypothèse pour trouver z
contenant Vω et donc ω, puis on utilise la compréhension.
9.3. L’univers constructible de Gödel 209

On a ainsi montré notre critère pour avoir un modèle de ZF.

On peut ainsi prouver que L est un modèle (classe) de ZF.

Théorème 9.3.1.14. ZF |= (ZF)L .

Démonstration. On vérifie les hypothèses du lemme 9.3.1.13. On sait déjà que L est transitif.
Pour la dernière hypothèse, si x est un ensemble inclus dans L, alors pour tout y ∈ x on
trouve αy tel que y ∈ Lαy . On sait alors que pour

α ≜ sup αy
y∈x

on a x ⊆ Lα ∈ L.
On veut maintenant prouver l’axiome de compréhension. Soit donc ψ L (x1 , . . . , xn , x, y)
une formule sur LZF , et a1 , . . . , an , a des paramètres dans L. Quitte à prendre une borne
supérieure, soit α tel que a1 , . . . , an , a ∈ Lα . Par le théorème 9.2.2.8, on trouve β > α tel
que ψ L (x1 , . . . , xn , x, y) est absolue entre Lβ et L. On a alors

b ≜ {x ∈ Lβ | x ∈ a ∧ ψ L (a1 , . . . , an , a, x)} ∈ Lβ+1

et un élément de L vérifie ψ L si et seulement s’il le vérifie dans Lβ (car pour vérifier ψ L , il


lui faut au moins être un élément de a, donc de Lβ ), si et seulement s’il appartient à b. On
a donc vérifié l’axiome de compréhension.
Ainsi L |= ZF.

Il en découle donc que V = L est relativement cohérent : on peut ajouter cet axiome
sans risque puisque si ajouter V = L mène à une incohérence, alors cette incohérence était
déjà dans ZF.

Corollaire 9.3.1.15. Si Coh(ZF) alors Coh(ZF +V = L).

Remarque 9.3.1.16. On verra qu’en fait V = L implique une version forte de l’axiome du
choix, donc on a aussi une preuve de Coh(ZF) =⇒ Coh(ZFC) puisque nos constructions
sur L n’ont pas nécessité l’axiome du choix.

9.3.2 Les propriétés de l’univers constructible


On montre dans cette sous-section que l’univers L vérifie des résultats particulièrement
forts : l’axiome du choix global et l’hypothèse du continu généralisée. On suppose donc
l’axiome V = L en plus des autres axiomes de ZFC.
Présentons donc l’axiome du choix global. Plutôt qu’un simple axiome, celui-ci a besoin
d’autres données pour être exprimé. Nous considérons que nous sommes munis d’un symbole
F de fonction unaire.

Axiome 9.3.2.1 (Axiome du choix global). L’axiome du choix global, pour le symbole
de fonction F , s’exprime par

∀x, x ̸= ∅ =⇒ F (x) ∈ x

Dans notre cas, puisqu’on cherche à représenter des fonctions par des prédicats binaires
fonctionnels, on peut à la place considérer une formule φ(x, y) fonctionnelle. L’axiome du
choix global pour φ (supposée fonctionnelle) est alors

∀x, x ̸= ∅ =⇒ (∀y, φ(x, y) =⇒ y ∈ x)


210 Chapitre 9. Modèles de ZFC

On cherche donc à construire une telle formule φ.


En fait, on voit avec les constructions précédentes à propos de l’axiome du choix
qu’il nous suffit de pouvoir bien ordonner l’univers, c’est-à-dire construire un prédicat <L
vérifiant les axiomes suivants :
• ∀x, ¬(x <L x)
• ∀x, y, z, (x <L y ∧ y <L z) =⇒ x <L z
• ∀x, y, x ̸= y =⇒ x <L y ∨ y <L x
• ∀x, x ̸= ∅ =⇒ ∃y, y ∈ x ∧ (∀z ∈ x, ¬(z <L y))
La fonction est alors simplement

φ(x, y) ≜ y ∈ x ∧ ∀z ∈ x, ¬(z <L y)

qui est évidemment fonctionnelle totale pour x = ̸ ∅ puiqu’il existe un tel y par le dernier
point, et les autres axiomes assurent que ce y est unique.
Il nous faut donc construire <L . Pour cela, remarquons deux choses :
• Form(LZF ) peut être bien ordonné.
• si Lα peut être bien ordonné, alors l’ensemble des suites finies L<ω
α à valeurs dans
Lα peut l’être aussi.
En utilisant ces deux faits, comme un élément de Lα+1 peut être associé à un tuple
(φ, x1 , . . . , xn ) où φ ∈ Form(LZF ) et x1 , . . . , xn ∈ Lα , on peut bien ordonner Lα+1 . Remar-
quons cependant que plusieurs tuples peuvent correspondre à une seule partie définissable :
il faut donc prendre à chaque fois le tuple le plus petit possible.
Enfin, la question se pose du recollement des ordres : si on a défini un ordre sur Lα
il faut que celui défini sur Lα+1 contienne l’ordre défini juste avant. Cela nous mène à
l’énoncé que l’on veut donner.

Théorème 9.3.2.2. Il existe une fonction <L : Ord → V telle que que <L (α) est un bon
ordre sur Lα pour tout α ∈ Ord et telle que pour tous α < β, <L (α) est un segment initial
de <L (β).

Démonstration. Notre démonstration est une induction transfinie :


• pour ∅, le résultat est direct.
• supposons que <L (α) existe. On utilise ce qu’on a dit précédemment : on se fixe
un bon ordre < sur Form(LZF ) × L<ω α , soit β le type de cet ordre. On peut associer
à chaque partie X ∈ Lα+1 \ Lα un élément de β comme étant le plus petit tuple
(φ, a1 , . . . , an ) tel que x ∈ X ⇐⇒ Lα |= φ(a1 , . . . , an , x). Cette association est
clairement injective, vu que la partie définie par un tuple est unique. On a donc une
injection de Lα+1 \ Lα vers un ordinal, donc un bon ordre sur Lα+1 \ Lα . En prenant
simplement la somme ordinale avec l’ordre défini sur Lα , on trouve ainsi un bon
ordre sur Lα+1 tel que l’ordre sur Lα en est un segment initial.
• si <L (β) a été défini pour tout ordinal β < λ, avec λ un ordinal limite, alors on
peut définir <L (λ) comme l’union des <L (β). Comme tous les bons ordres sont
compatibles, l’union est encore un bon ordre.
On a donc construit notre fonction <L : Ord → V telle que <L (α) est un bon ordre sur Lα
pour tout α ∈ Ord.

On en déduit l’axiome du choix global.


9.3. L’univers constructible de Gödel 211

Corollaire 9.3.2.3. Il existe une relation <L sur L qui est un bon ordre au sens défini
plus tôt, donc ZF |= (AC)L .

On veut maintenant montrer que L vérifie HCG.


Pour cela, on va montrer d’abord que, sous l’hypothèse V = L, la hiérarchie H coïncide
avec L sur les cardinaux infinis.
On remarque que, comme Hλ et Lλ peuvent s’exprimer comme l’union des Hβ (res-
pectivement Lβ ) pour β < λ lorsque λ est limite, il nous suffit de nous occuper du cas
successeur.
L’inclusion qui nous demandera du travail est Hκ ⊆ Lκ , nous allons donc l’étudier à
part.

Lemme 9.3.2.4. Soit κ un cardinal infini successeur et κ = λ+ . On a l’inclusion Hκ ⊆ Lκ .

Démonstration. Soit x ∈ Hκ . On pose y = trcl({x}), on sait donc que x ∈ y et |y| ≤ λ < λ+ .


On définit ρ(y) comme étant le rang minimal tel que y ∈ Lρ(y) . On peut trouver un cardinal
régulier indénombrable θ > ρ(y) dans V, donc dans L puisque V = L. On peut vérifier
qu’alors, Lθ |= ZF −P + (V = L). On utilise alors le théorème de Löwenheim-Skolem pour
trouver un modèle M vérifiant les mêmes énoncés de LZF que Lθ , contenant y et tel que
|M | ≤ λ (ce qui est possible car |y| ≤ λ).
En utilisant alors le lemme 6.1.5.5, on trouve un ensemble N et un isomorphisme
π : (M, ∈) ∼
= (N, ∈). Comme y ∈ M est transitif, il est un point fixe par l’effondrement,
donc pour tout z ∈ y, π(z) = z. En particulier, π(x) = x et x ∈ N .
On veut alors prouver que N = Lβ avec β = N ∩ Ord. Remarquons que β est limite
puisque N vérifie que les ordinaux sont non bornées (puisqu’il est isomorphe à M qui,
lui-même, vérifie les mêmes énoncés que Lθ avec θ cardinal, donc ordinal limite).
Soit α < β, comme α 7→ Lα est absolu pour les modèles de ZF −P, l’axiome de
remplacement nous donne que Lα ∈ N . Comme, de plus, N est transitif, Lα ⊆ N donc en
prenant l’union pout tous les α < β, on en déduit que Lβ ⊆ N .
Réciproquement, comme N |= V = L, et par absoluité, on a

(V = L)N ⇐⇒ ∀x ∈ N, ∃α ∈ Ord ∩N, x ∈ Lα

Puisque β = Ord ∩N , on en déduit que ∀x ∈ N, ∃α < β, x ∈ Lα donc N ⊆ Lβ .


Ainsi |β| = |N | = |M | = λ < λ+ , et x ∈ N , donc x ∈ Lβ avec β < λ+ , donc x ∈ Lκ .

Il nous reste maintenant à vérifier l’autre inclusion.

Lemme 9.3.2.5. Soit κ un cardinal infini, on a l’égalité Hκ = Lκ .

Démonstration. Comme on l’a dit, le cas des cardinaux limite est direct par continuité de
Hα et Lα . Il nous reste donc à prouver que Lκ ⊆ Hκ pour κ = λ+ .
Si x ∈ Lκ , alors on trouve α < κ tel que x ∈ Lα , mais alors trcl(x) ⊆ Lα et, de plus,
|Lα | = |α| < κ. Donc trcl(x) ∈ Hκ .
Ainsi Hκ = Lκ .

On en déduit HCG dans V = L.

Théorème 9.3.2.6. HCG est vérifiée.

Démonstration. Soit un cardinal infini λ, alors P(λ) ⊆ Hλ+ = Lλ+ , donc |P(λ)| ≤ λ+ .
212 Chapitre 9. Modèles de ZFC

Nous concluons donc ce chapitre sur ce résultat important :

Coh(ZFC) =⇒ Coh(ZFC + HCG)

HCG ne peut donc pas être prouvée faux dans ZFC. Pour montrer que ce résultat est
indépendant de ZFC, il nous reste alors à montrer que Coh(ZFC) =⇒ Coh(ZFC +¬ HC),
ce qui nécessite la technique du forcing, introduite par Cohen dans son article [Coh63].
Chapitre 10
Théorie descriptive des ensembles

Table des sous-matières


10.1 Stabilité des espaces polonais . . . . . . . . . . . . . . . . . . . . 213
10.1.1 Opérations élémentaires . . . . . . . . . . . . . . . . . . . . . . . 214
10.1.2 La hiérarchie de Borel . . . . . . . . . . . . . . . . . . . . . . . . 219
10.1.3 Compactification d’Alexandrov . . . . . . . . . . . . . . . . . . . 221
10.2 Espace de Cantor et de Baire . . . . . . . . . . . . . . . . . . . . 225
10.2.1 Schémas de Cantor et de Baire . . . . . . . . . . . . . . . . . . . 225
10.2.2 Caractérisation des espaces de Cantor et de Baire . . . . . . . . . 229

e dernier chapitre de théorie des ensembles aborde la théorie descriptive des ensembles.
C Nous n’en donnerons qu’une courte introduction, en présentant les propriétés essen-
tielles des espace polonais ainsi qu’une étude des espaces de Cantor et de Baire, espaces
polonais incontournables.
Tout d’abord, rappelons les définitions : un espace complet est un espace métrique
(X, d) tel que toute suite de Cauchy dans X converge. Un espace séparable est un espace
qui contient une partie dense dénombrable. Un espace polonais est un espace complètement
métrisable séparable, c’est-à-dire un espace séparable tel qu’il existe une distance complète
qui induit la topologie de cet espace.
Remarquons qu’un espace polonais n’est pas la donnée d’un espace métrique : c’est un
espace topologique, mais qui peut être induit par une métrique. La différence est subtile,
mais elle signifie que la métrique n’entre pas en compte dans la notion d’espace polonais,
simplement son existence. Par exemple, comme on l’a dit, on peut définir la même topologie
sur (0, 1) de deux façons : en considérant la topologie induite par R et en considérant la
topologie induite par tanh. Les deux nous donnent des métriques, mais seulement celle
induite par tanh est complète : cela ne change rien dans notre définition d’espace polonais,
où les deux cas donnent le même espace.

10.1 Stabilité des espaces polonais


Pour commencer, nous allons voir que la structure d’espace polonais est stable par
de nombreuses opérations. Nous allons distinguer plusieurs opérations : les opérations
élémentaires, qui sont des opérations topologiques classiques, les opérations liées à la
hiérarchie de Borel, et la compactification d’Alexandrov.

213
214 Chapitre 10. Théorie descriptive des ensembles

10.1.1 Opérations élémentaires


La première opération est celle de produit dénombrable. On a vu que la compacité était
stable par des produits quelconques, donc cette stabilité est légèrement plus faible, mais il
faut garder à l’esprit que la structure d’espace polonais est largement plus restrictive que
celle d’espace compact, donc garder une stabilité par produits dénombrables (et non juste
par produits finis) est déjà remarquable.
Proposition 10.1.1.1. Soit (Xn )n∈N une suite dénombrable d’espaces polonais (on garde
la topologie sous-entendue). Alors l’espace produit de ces espaces polonais est encore un
espace polonais.
Démonstration. Tout d’abord, on remarque que si (X, d) est un espace métrique, alors la
métrique suivante engendre la même topologie :
d(x, y)
d′ (x, y) ≜
1 + d(x, y)
Le fait que d′ est une métrique se vérifie directement, sauf pour l’inégalité triangulaire.
Soient x, y, z ∈ X, alors
d(x, z)
d′ (x, z) =
1 + d(x, z)
d(x, y) + d(y, z) x
≤ par croissance de la fonction x 7→
1 + d(x, y) + d(y, z) 1+x
d(x, y) d(y, z)
≤ +
1 + d(x, y) 1 + d(y, z)
≤ d′ (x, y) + d′ (y, z)

On montre donc que d et d′ engendrent la même topologie. Pour cela, comme on sait
que d′ ≤ d, on sait que dans toute boule ouverte U pour d il existe une boule ouverte V
pour d′ (puisque si d(x, y) < ε, alors d′ (x, y) < ε) contenue dans U . On en déduit que tout
voisinage au sens de d est un voisinage au sens de d′ , montrant que la topologie engendrée
par d′ est plus fine (contient plus d’ouverts) que la topologie engendrée par d. Dans le sens
réciproque, pour une boule

U ≜ {y ∈ X | d′ (x, y) ≤ ε}
x
Quitte à prendre ε plus petit, on sait que la fonction x 7→ est surjective sur [0, 1]
1+x
donc sur [0, ε] (si ε > 1, alors trouver une boule inclue dans B1 (x) nous donne encore le
ρ
résultat souhaité). On peut donc trouver ρ tel que = ε. Par stricte croissance de
1+ρ
x
x 7→ , on sait aussi que pour tout z ∈ [0, 1],
1+x
z
< ε ⇐⇒ z < ρ
1+z
On sait donc que pour tout y ∈ X,
d(x, y)
< ε ⇐⇒ d(x, y) < ρ
1 + d(x, y)
donc la boule pour d de centre x et de rayon ρ est incluse dans U . Ainsi tout voisinage au
sens de d′ est un voisinage au sens de d, donc les deux topologies coïncident.
10.1. Stabilité des espaces polonais 215

On voit, de plus, que d′ est bornée (si d tend vers ∞, alors d′ tend vers 1). d′ est
complète si et seulement si d est complète : une suite (un ) est de Cauchy pour d si et
seulement si elle est de Cauchy pour d′ . Dans un sens, il suffit d’utiliser le fait que d ≤ d′ .
Dans l’autre sens, si (un ) est de Cauchy pour d, alors soit ε > 0, qu’on choisit sans perte de
généralité inférieur strict à 1. Par l’argument de surjectivité précédent, on trouve ρ tel que
ρ

1+ρ

Comme (un ) est de Cauchy, on trouve n0 tel que

∀p, q ≥ n0 , d(up , uq ) < ρ


x
donc on en déduit, par stricte croissance de x 7→ , que pour tous p, q ≥ n0 , on a
1+x

l’inégalité d (up , uq ) < ε. Ainsi les deux distances définissent les mêmes suites de Cauchy.
Comme la convergence est une notion purement topologique et que d et d′ définissent les
mêmes topologies, d est complète si et seulement si d′ l’est.
Ainsi on peut considérer que pour chaque espace Xi , on possède une distance
Y complète
di bornée induisant la topologie de Xi . On définit alors la d distance sur Xi par
i∈N

X dn (xn , yn )
d((xn ), (yn )) ≜
n∈N
2n
Y
Cette distance définit bien la topologie produit sur Xn .
i∈N
Soit une boule Bε ((xn )) pour notre distance d, alors à partir d’un certain rang n0 :

dm (x, y) ε
∀m ≥ n, ∀x, y ∈ Xm , <
2 2
On veut prouver qu’on peut trouver un ouvert contenant (xn ) pour la topologie produit et
contenu dans Bε ((xn )) (montrant ainsi qu’un voisinage pour d est un voisinage Y pour la
topologie produit). On sait qu’un ouvert de la topologie produit est de la forme Xi pour
i∈F
une certaine partie finie F ⊆fin N : notre candidat pour F est ici {0, . . . , n0 } puisqu’on a
déjà majoré la distance des éléments après n0 . On peut donc déjà écrire que pour tout
(yn ) :
nX0 −1
ε di (xi , yi )
d((xn ), (yn )) < +
2 i=0
2i
Il nous reste donc à trouver pour chaque i une boule centrée en xi de rayon suffisamment
ε
petit pour que la somme finie soit inférieure à , ce qui se fait directement en prenant
2

2i × ε
ε′i ≜
2 × n0

Ainsi si on considère pour chaque i la boule Bε′i (xi ), on sait que pour tout y dans le cylindre
engendré par cette famille :
d((xn ), (yn )) < ε
Donc tout voisinage au sens de d est un voisinage au sens de la topologie produit.
216 Chapitre 10. Théorie descriptive des ensembles

Réciproquement, soit une famille finie (Ui )i∈F où F ⊆fin N où Ui est une boule ouverte
de Xi , disons
Ui ≜ Bεi (xi )
Y
et soient (xj )j ∈F
/ une famille d’éléments complétant (xi )i∈I en un élément de Xn .
n∈N
Montrons qu’on peut trouver une boule ouverte centrée en (xi )i∈N incluse dans le cylindre
engendré par (Ui ). En prenant
ε ≜ min εi
i∈F
et en posant
U ≜ Bε ((xi ))
Y
on sait que pour tout (yi )i∈N ∈ Xn , si (yi ) ∈ U alors
n∈N
X
di (xi , yi ) < ε
n∈N

donc, puisque di (xi , yi ) est inférieur à d((xn ), (yn )), on sait que di (xi , yi ) < εi , donc yi ∈ Ui .
Ainsi (yi ) est dans le cylindre engendré par (Ui ). Y
En conclusion, d engendre la topologie produit sur Xn .
n∈N
Enfin, cette distance est complète : soit
(ai )i∈N ≜ ((xi,j )j∈N )i∈N
une suite de Cauchy dans cet espace. On définit la limite (bj )j∈N par
bj ≜ lim xi,j
i→∞

Pour montrer que cette suite est bien définie, il nous suffit de montrer que pour tout j ∈ N,
la suite (xi,j )i∈N est de Cauchy. Soit ε > 0, comme (ai ) est de Cauchy, on trouve n0 tel que
∀p, q > n0 , d(ap , aq ) < ε
or on sait que dj (xp,j , xq,j ) < d(ap , aq ), donc (xi,j )i∈N est de Cauchy, donc (bj ) est bien
définie.
On vérifie maintenant que (ai ) tend vers b. Soit ε > 0. On sait (par définition de la
convergence), que pour tout j il existe ij tel que
ε
∀m ≥ ij , dj (xm,j , bj ) <
4
De plus, comme (ai ) est de Cauchy, on trouve n0 tel que
ε
∀p, q ≥ n0 , d(ap , aq ) <
4
d’où on déduit que pour tout j ∈ N,
ε
∀p, q ≥ n0 , dj (xp,j , xq,j ) <
4
Ainsi, pour tout j ∈ N et m > n0 , on a
dj (xm,j , bj ) ≤ dj (xm,j , xm+ij ,j ) + dj (xm+ij ,j , bj )
ε ε
< +
4 4
ε
<
2
10.1. Stabilité des espaces polonais 217

D’où, en sommant ces inégalités pour tout j ∈ N :



X ε
d(am , b) <
n=0
2
d’où d(am , b) < ε. Donc limi→∞ ai = b.
Enfin, l’espace produit est séparable. Pour tout n ∈ N, on choisit Yn une partie dense
dénombrable de Xn et xn un élément quelconque de Xn . On définit alors, pour chaque
F ⊆fin N : ( ( )
∀i ∈ F, yi ∈ Yi
ZF ≜ (yi )i∈N
∀j ∈ N \ F, yj = xj
Le cardinal de ZF est donc dénombrable, puisqu’il y a autant d’éléments dans ZF que de
tuples dans le produit fini des Yi pour i ∈ F . On en déduit, comme l’ensemble des parties
finies de N est dénombrable, que [
Z≜ ZF
F ⊆fin N
est dénombrable. Montrons
Y maintenant que Z est dense dans le produit dénombrable des
Xn . Un ouvert de Xn correspond à un ensemble fini F ⊆fin N et, pour chaque n ∈ F ,
n∈N
un ouvert Un ⊆ Xn . Par chaque n, comme Yn est dense dans Xn , on peut donc trouver
yn ∈ Yn ∩ Un . Alors la suite (
yn si n ∈ F
un ≜
xn sinon

Y au cylindre en (Un )n∈F , et à Y , donc Y intersecte tout ouvert, donc Y est dense
appartient
dans Xn .
n∈N

La seconde propriété de stabilité, là encore dénombrable, est celle par union disjointe.
Nous n’avons pas précisé ce qu’est l’union disjointe dans le cas des espaces topologiques,
nous donnons donc la définition ici :
Définition 10.1.1.2 (Union disjointe d’espaces topologiques). Soit (Xi , Ωi )i∈I une
famille d’espaces topologiques. L’union disjointe de cette famille est l’espace donné par
a
Xi ≜ {(i, x) | x ∈ Xi }
i∈I

et où la topologie est engendrée par la famille de parties


!
a [
Ω Xi ≜ {{(i, x) | x ∈ U } | U ∈ Ωi }
i∈I i∈I

Intuitivement, l’union disjointe des (Xi ) est l’espace global dans lequel on considère
tous les Xi en même temps, mais en ne considérant aucune proximité entre eux.
Proposition 10.1.1.3. Soit (Xi )i∈N une suite d’espaces polonais. Alors l’espace est
`
i Xi
un espace polonais.
Démonstration. Pour chaque Xn , on fixe une distance complète dn (qu’on choisit bornée
par 1 grâce à la construction précédente) qui induit la topologie de Xn . On définit sur le
coproduit la distance (
di (x, y) si i = j
d((i, x), (j, y)) ≜
1 sinon
On veut montrer que les deux bases s’engendrent l’une l’autre :
218 Chapitre 10. Théorie descriptive des ensembles

• soit i ∈ I, U ∈ Ωi . Comme la topologie de Xi est engendrée par di , on peut écrire


[
U= Bi (xj , εj )
j∈J

pour un certain ensemble d’indices J. Mais dans ce cas,


[
B((i, xj ), ε) = {(i, x) | x ∈ U }
j∈J

• soit x ∈ i Xi et ε > 0. Si ε ≥ 1, alors B(x, ε) = i Xi qui est un ouvert par définition.


` `

Sinon, on peut écrire x = (i, y), et dans ce cas B(x, ε) = {(i, z) | di (y, z) < ε}, qui
`
est par définition un élément de la topologie sur i Xi .
`
donc d définit la bonne topologie sur i Xi .
Cette distance est complète : soit (xn ) une suite de Cauchy sur notre espace. Comme
la suite est de Cauchy, on peut trouver n ∈ N tel que

1
∀p, q > n, d(xp , xq ) <
2
donc à partir du rang n, (xn ) est dans la boule B(xn , 1/2). Cela signifie donc qu’à partir du
rang n, tous les éléments de la suite sont de la forme (i, yn ) pour un même i. Naturellement,
cette suite correspond à la suite (yn ) ∈ Xi qui est de Cauchy dans l’espace complet (Xi , di ),
donc converge vers un certain point y. Au final, (xi ) converge vers (i, y). Donc d est une
distance complète.
L’espace est séparable : pour chaque i ∈ N, on trouve une partie Di ⊆ Xi dénombrable
et dense dans Xi . Alors la partie
[
{(i, x) | x ∈ Di }
i∈N
`
est une partie dénombrable et dense dans i∈N Xi .
a
L’espace Xi est donc un espace polonais.
i∈N

Enfin, on a stabilité par partie fermée.

Proposition 10.1.1.4. Soit (X, Ω) un espace polonais et F ⊆ X un fermé de X. Alors


l’espace induit par X sur F est un espace polonais.

Démonstration. On sait qu’une partie d’un espace complet est un espace complet pour la
distance induite si et seulement si la partie est fermée, donc le fait d’être complètement
métrisable passe directement à F .
Soit D une partie dénombrable dense dans X, notons-la {xn }n∈N  . On  construit alors
′ ∗ 1
un ensemble D ⊆ F : pour chaque i ∈ N et chaque j ∈ N , si B xi , ∩ F ̸= ∅ alors
j
on ajoute à D′ un élément yn,j de cet ensemble. Soit y ∈ F et ε > 0, on veut trouver un
1 ε
élément z ∈ F tel que d(y, z) ≤ ε. Pour cela, on commence par fixer j tel que < . Par
j 2
définition de la densité de xn dans X, on trouve n tel que

1
d(y, xn ) <
j
10.1. Stabilité des espaces polonais 219

1
et, par construction de D′ , on trouve yn,j tel que d(xn , yn,j ) < puisque y ∈ B(xn , 1/j)∩F .
j
Ainsi

d(y, yn,j ) ≤ d(y, xn ) + d(xn , yn,j )


1 1
≤ +
j j
≤ε

D′ est donc dense dans F . F est donc un espace polonais.

On donne l’exemple paradigmatique d’espace polonais : l’ensemble des réels.

Exercice 10.1.1.5. Montrer que R muni de la topologie usuelle est un espace polonais.

Avec ces quelques opérations élémentaires, on peut déjà donner plusieurs exemples
d’espaces polonais.

Exemple. Les espaces suivants sont des espaces polonais (avec leur topologie usuelle) :
• l’intervale [0, 1], les hypercubes [0, 1]n pour tout n ∈ N et le cube de Hilbert [0, 1]N .
• de même avec R et C à la place de [0, 1].
• le cercle unité
U ≜ {z ∈ C | |z| = 1}

• tous les espaces de Banach séparables.


• pour tout espace X dénombrable et discret, l’espace X N .

Exercice 10.1.1.6. Prouver les exemples précédents. Prouver aussi que le tore de dimension
n, défini par
n−1
Y
Tn ≜ U
i=0

est un espace polonais pour tout n ∈ N.

10.1.2 La hiérarchie de Borel


Un outil important de théorie descriptive des ensembles est la hiérarchie de Borel.
Elle permet de hiérarchiser les parties d’un espace topologique suivant la complexité à les
construire. Plus précisément, cette hiérarchie s’applique aux boréliens, notion importante
entre autre en théorie de la mesure. Nous rappelons la définition d’ensemble des boréliens,
qui peut être vu comme la plus petite σ-algèbre contenant Ω.

Définition 10.1.2.1 (Ensemble des boréliens). Soit un espace topologique (X, Ω). On
appelle ensemble des boréliens de (X, Ω), que l’on note B(X, Ω), le plus petit ensemble
B ⊆ P(X) tel que :
• Ω⊆B
\ [
• si (Yi )i∈N est une suite d’éléments de B, alors Yi ∈ B et Yi ∈ B.
i∈N i∈N
• si Y ∈ B, alors X \ Y ∈ B.

On peut alors décomposer B(X, Ω) en une hiérarchie indicée par Ord.


220 Chapitre 10. Théorie descriptive des ensembles

Définition 10.1.2.2 (Hiérarchie de Borel). Soit (X, Ω) un espace topologique. On


définit par induction transfinie les ensembles Σ0α , Π0α et ∆0α pour α ∈ Ord :
• Σ01 = Ω
• pour une partie Y ⊆ X, Y ∈ Σ0α si et seulement s’il existe une suite (Yi )i∈N telle que

∃β < α, Yi ∈ Π0β

 ∀i ∈ N,[
 Yi = Y
i∈N

• pour tout α ∈ Ord, on définit

Π0α ≜ {X \ Y | Y ∈ Σα0 }

• pour tout α ∈ Ord, on définit

∆0α ≜ Σ0α ∩ Π0α

En particulier, on dit qu’une partie Y ⊆ X est un Fσ si Y ∈ Σ02 et un Gδ si Y ∈ Π02 , ce


sont respectivement les unions dénombrables de fermés et les intersections dénombrables
d’ouverts.

Exercice 10.1.2.3. Montrer que pour tout espace topologique (X, Ω), on a l’égalité
[
B(X, Ω) = Σ0α
α<ω1

On peut désormais montrer la stabilité des espaces polonais pour les parties Gδ .

Proposition 10.1.2.4. Soit (X, Ω) un espace polonais et Y ⊆ X un Gδ . Alors Y muni de


la topologie induite est un espace polonais.

Démonstration. On se donne une distance complète d sur X engendrant Ω. Soit (Un )n∈N
T
une suite d’ouverts telle que Un = Y . On définit

Cn ≜ X \ Un

et une nouvelle distance d′ sur Y :


1 1
 
′ −n−1
X
d (x, y) ≜ d(x, y) + min 2 , −
n∈N
d(x, Cn ) d(y, Cn )

La topologie induite par d′ est la même que celle induite par d (vérification laissée dans
l’exercice 10.1.2.5).
d′ est une distance complète : soit (xn )n∈N une suite de Cauchy de (Y, d′ ). (xn ) est
aussi une suite de Cauchy dans (X, d). En effet, pour ε > 0, on trouve n0 tel que

∀p, q > n0 , d′ (xp , xq ) ≤ ε

mais d ≤ d′ , donc d(xp , xq ) ≤ ε dans l’expression ci-dessus, donc la fonction est de Cauchy
pour d. Comme (X, d) est complet, on trouve une limite x pour (xn )n∈N . Soit n ∈ N, on
veut montrer que x ∈ / Cn , ce que l’on peut prouver en montrant que d(x, Cn ) ̸= 0. Pour
1
cela, on veut montrer que ̸= 0 en utilisant la définition de d′ .
d(x, Cn )
10.1. Stabilité des espaces polonais 221

Soit ε > 0, comme (xn ) est de Cauchy, on peut trouver n0 tel que

∀p, q > n0 , d′ (xp , xq ) ≤ min(2−n−2 , ε)

Soient p, q > n0 . Comme d′ (xp , xq ) ≤ 2−n−2 , il n’est pas possible d’avoir

1 1
− ≤ 2−n−1
d(xp , Cn ) d(xq , Cn )

d’où l’inégalité dans le sens inverse, d’où


!
1 1 1 1
− ≤ d(xp , xq ) + min 2−n−1 , −
d(xp , Cn ) d(xq , Cn ) d(xp , Cn ) d(xq , Cn )
≤ d′ (xp , xq )
≤ε
!
1
On en déduit que est une suite de Cauchy, donc converge (dans R),
d(xp , Cn ) p∈N
ce qui signifie que pour tout p suffisamment grand, d(xp , Cn ) ̸= 0, donc que d(x, Cn ) ̸= 0,
d’où x ∈
/ Cn . Comme cela est vrai pour tout n, on en déduit que x ∈ Un , donc que x ∈ Y .
T

Ainsi (Y, d′ ) est complet.


Cet espace est séparable par le même argument que pour la preuve de la proposi-
tion 10.1.1.4.

Exercice 10.1.2.5. Vérifier, dans la preuve précédente, que d′ est une distance et qu’elle
induit la même topologie que d.

10.1.3 Compactification d’Alexandrov


La dernière opération élémentaire que nous abordons est celle de la compactification
d’Alexandrov. L’idée de cette opération est de transformer un espace se comportant suffi-
samment bien en un espace compact. Cette construction s’applique aux espace localement
compact, que nous devons donc introduire.

Définition 10.1.3.1 (Espace localement compact). Un espace (X, Ω) est localement


compact si pour tout x ∈ X, il existe un ouvert U ∈ Ω et un compact K de X tels que
x ∈ U ⊆ K.

L’idée d’un espace localement compact, dans le cas métrique, est qu’une boule suffi-
samment petite est contenue dans un compact. Remarquons que dans le cas d’un espace
vectoriel normé de dimension infini par exemple, n’importe quel ouvert aussi petit soit-il
n’est pas inclus dans un compact, donc cette condition n’est pas anodine.
Une version équivalente de cette définition est que tout filtre de voisinage peut se définir
par des compacts. Cette définition est largement plus manipulable, puisqu’elle permet de
directement considérer des compacts aussi proches d’un points que l’on veut.

Proposition 10.1.3.2. Soit un espace (X, Ω) séparé. Cet espace est localement compact si
et seulement si, pour tout x, il existe une famille (Ki )i∈I engendrant le filtre des voisinages
de x.

Démonstration. On procède par double implication :


222 Chapitre 10. Théorie descriptive des ensembles

• si tout voisinage est engendré par un compact, alors pour tout x, on trouve un
voisinage V de x : celui-ci contient un compact K de notre famille. Mais comme K
fait partie d’une famille qui engendre le filtre des voisinages de x, K est lui-même un
voisinage de x, donc on trouve un ouvert U tel que x ∈ U ⊆ K.
• réciproquement, si l’espace est localement compact, montrons que pour tout x ∈ X,
il existe une famille (Ki ) de compacts engendrant le filtre des voisinages de x. On
sait qu’il existe un compact K tel que x ∈ K, et qu’une partie d’un compact est
compacte si et seulement si elle est fermée (par la proposition 5.1.4.6), donc il suffit
pour tout voisinage U de x de montrer qu’il existe F fermé contenant x et contenu
dans U . On considère la frontière de K ∩ U , c’est-à-dire l’ensemble

c ◦
∂(K ∩ U ) ≜ K ∩ U \ K ∩ U

qui est fermée puisqu’intersection de fermés, donc compacte (puisque partie de K).
Pour chaque y ∈ ∂(K ∩ U ), on trouve par séparation un voisinage ouvert Vy de y
et un voisinage ouvert Wy de x, disjoints. Quitte à intersecter Wy par K ∩ U , on
peut considérer que Wy est une partie de K ∩ U . Comme (Vy ) est un recouvrement
de ∂(K ∩ U ), on peut par compacité en extraire un recouvrement fini (Vy )y∈J .En
prenant alors \
W ≜ Wy
y∈J

on a alors un voisinage de x disjoint de tous les Vy , supposés ouverts, donc l’adhérence


de W est disjointe de ∂(K ∩ U ). On a donc trouvé un voisinage fermé F de x contenu
dans U .
L’équivalence est donc prouvée.

Définition 10.1.3.3 (Compactification d’Alexandrov [Ale24]). Soit (X, Ω) un espace


localement compact. On appelle compactifié d’Alexandrov de (X, Ω) l’espace (X̃, Ω̃) défini
par
X̃ ≜ X ∪ {∞} Ω̃ ≜ Ω ∪ {(X \ K) ∪ {∞} | K compact de X}
où ∞ ∈
/ X.

Le compactifié d’Alexandrov d’un espace est donc l’espace auquel on ajoute un point
(considéré à l’infini), dont les voisinages ont comme base les complémentaires de compacts
dans X. La propriété essentielle du compactifié d’Alexandrov, comme son nom l’indique,
est de produire un espace compact.

Proposition 10.1.3.4. Soit (X, Ω) un espace localement compact, alors (X̃, Ω̃) est un
espace compact.

Démonstration. Soit (Ui )i∈I un recouvrement de X̃ par des ouverts de Ω̃, alors il existe
i ∈ I tel que ∞ ∈ Ui . Par définition de Ω̃, on trouve K compact tel que Ui = (X \ K) ∪ {∞}.
On en déduit que (Uj )j∈I\{i} est un recouvrement de K, mais comme on a un recouvrement
d’un compact, on peut en extraire un recouvrement fini (Uj )j∈J où J ⊆fin I \ {i}. Ainsi
(Uj )j∈J∪{i} est un recouvrement fini de X̃, donc (X̃, Ω̃) est compact.

Cette notion de compactification va nous servir pour considérer de nouveaux espaces.


Cependant, il nous faut aussi d’autres notions et résultats. Ces résultats sont importants en
topologie, mais cet ouvrage n’est pas un cours de topologie : nous décidons donc d’admettre
le théorème 10.1.3.8.
10.1. Stabilité des espaces polonais 223

Définition 10.1.3.5 (Espace à base dénombrable). Un espace (X, Ω) est dit à base
dénombrable s’il existe une famille (Ui )i∈N engendrant Ω.

Proposition 10.1.3.6. Un espace polonais est à base dénombrable.

Démonstration. Soit (X, Ω) un espace polonais. On trouve un ensemble dense D ⊆ X, on


notera D = {xn }n∈N . Pour tout n ∈ N, on considère la base de voisinages

1
 
(Vn,j )j∈N ≜ B xn ,
n

La famille (Vn,j )(n,j)∈N×N est une base de Ω. En effet, soit U ∈ Ω. Pour tout x ∈ U , on
peut trouver ε   B(x, ε) ⊆ U . Comme D est dense, on peut trouver un certain xn
tel que
ε ε 1 ε
tel que xn ∈ B x, . On peut alors, en choisissant i tel que < < , remarquer que
3 3 i 2
x ∈ Vn,i ⊆ B(x, ε) ⊆ U . On peut donc écrire, en notant n(x) et i(x) respectivement les
indices trouvés, [
U= Vn(x),i(x)
x∈U

donc (Vn,j ) est bien une base dénombrable de Ω.

Définition 10.1.3.7 (Espace régulier). Un espace (X, Ω) est dit régulier si pour tout
fermé C ⊆ X et point x ∈
/ C il existe deux ouverts U1 , U2 ∈ Ω tels que

 x ∈ U1

C⊆U2
 U ∩U =∅

1 2

Théorème 10.1.3.8 (Métrisation d’Urysohn). Tout espace régulier à base dénombrable


est métrisable.

On peut alors énoncer nos derniers résultats de stabilité.

Proposition 10.1.3.9. Un espace compact séparé est métrisable si et seulement s’il est à
base dénombrable. Un espace vérifiant ces propriétés équivalentes est un espace polonais.

Démonstration. Supposons qu’on possède une métrique sur (X, Ω) supposé compact séparé.
Soit n ∈ N. Il est clair que la famille {B(x, 2−n ) | x ∈ X} recouvre X, donc on peut en
extraire un recouvrement fini {B2−n (x) | x ∈ In } où In ⊆fin X. Notre base dénombrable est
[
{B2−n (x) | x ∈ In , q ∈ Q}
i∈N

On veut donc montrer que pour tout x ∈ X, ε > 0, il existe un élément de notre base qui
contient x et est contenu dans Bε (x) (cela montrera alors que la topologie engendrée par
notre base est plus fine que la topologie Ω, ce qui suffit puisque notre base est extraite de Ω).
On sait que la famille des Bε (y) pour y ∈ (X \ Bε (x)) ∪ {x} recouvre X, et on sait que X
est compact. On en déduit donc, par le lemme 5.3.2.8, qu’il existe un nombre de Lebesgue
ρ pour ce recouvrement. Ainsi, pour n tel que 2−n < ρ, comme la famille des B2−n (xi )
pour xi ∈ In recouvre X, on sait qu’il existe x0 tel que B2−n (x0 ) ∋ x. Par la propriété du
nombre de Lebesgue, on trouve a dans notre recouvrement tel que B2−n (x0 ) ⊆ Bε (a), mais
cela n’est possible que pour a = x, étant donné qu’aucun autre élément du recouvrement
ne contient x. On en déduit donc que B2−n (x0 ) ⊆ Bε (x), d’où le résultat.
224 Chapitre 10. Théorie descriptive des ensembles

Pour le sens réciproque, si (X, Ω) est compact séparé à base dénombrable, on veut
appliquer le théorème 10.1.3.8 : il nous suffit donc de vérifier que cet espace est régulier.
Soit C ⊆ X fermé et x ∈ X \ C. Notons U = X \ C. Comme (X, Ω) est séparé, on sait que
pour tout y ∈ C, il existe (Uy , Vy ) deux ouverts tels que


 x ∈ Uy
y ∈ Vy
 U ∩V =∅

y y

La famille {Vy }y∈C est alors un recouvrement de C, qui est compact car c’est un fermé
dans un espace compact : on en déduit un ensemble I ⊆fin C tel que I Vy ⊇ C, notons
S

cet ensemble V . On voit alors que \


U≜ Uy
y∈I

est un ouvert comme intersection finie d’ouverts, et U ∩ V = ∅ et x ∈ U puisque chaque


Uy contient x par construction. On a donc trouvé les deux ouverts souhaités.
Enfin, supposons que (X, Ω) est un espace métrique compact à base dénombrable,
S
montrons que c’est un espace polonais. Pour la séparabilité, on voit que la famille i∈N In
définie au début de la preuve est dense dans X. On sait que l’espace est métrique, il nous
reste donc à montrer qu’on a une métrique complète. Soit (xn )n∈N une suite de Cauchy.
Comme l’espace est compact, on sait qu’il existe une sous-suite (xφ(n) )n∈N convergente :
notons x cette limite. Soit ε > 0, comme (xn ) est de Cauchy on peut trouver n0 tel que
ε
∀p, q > n0 , d(xp , xq ) ≤
2
de plus, puisque (xφ(n) ) converge, on peut trouver n1 tel que
ε
∀n > n1 , d(xφ(n) , x) ≤
2
On voit donc que, pour n > max(n0 , n1 ) :

d(xn , x) ≤ d(xn , xφ(n) ) + d(xφ(n) , x)


ε ε
≤ +
2 2
≤ε

donc (xn ) converge vers x. Ainsi d est complète, achevant la preuve que (X, Ω) est un
espace polonais.

L’exercice suivant cherche à montrer la stabilité pour les fonctions continues à valeurs
dans C.

Exercice 10.1.3.10. Soit (X, Ω) un espace compact métrisable. Montrer que l’espace
C(X, C) muni de la distance

d(f, g) ≜ sup |f (x) − g(x)|


x∈X

est un espace polonais.

Enfin, en réutilisant le résultat sur les Gδ , on peut affaiblir les conditions de la proposi-
tion 10.1.3.9 à de la compacité locale.
10.2. Espace de Cantor et de Baire 225

Proposition 10.1.3.11. Soit (X, Ω) un espace localement compact à base dénombrable,


c’est un espace polonais.

Démonstration. On voit d’abord que X est un ouvert de X̃, et un ouvert est en particulier
un Gδ , donc il suffit de montrer que X̃ est un espace polonais.
On veut donc montrer que l’espace est compact et à base dénombrable. La compacité
est directe, il nous reste donc à trouver une base dénombrable. Un ouvert de X̃ est soit un
ouvert de X (auquel cas, X étant à base dénombrable, on peut directement reconstruire
cet ouvert grâce à la base dénombrable de X), soit un voisinage de ∞. Il nous reste donc
à trouver une base de V∞ . Pour trouver cette base, on commence par remarquer que,
comme X est à base dénombrable, c’est un espace séparable : on peut prendre un élément
de chaque ouvert de la base dénombrable pour construire un espace dense dénombrable.
On considère maintenant une partie dense dénombrable D ⊆ X. Pour chaque x ∈ D et
chaque n ∈ N, comme l’espace est localement compact, par la proposition 5.1.4.6, on trouve
un voisinage compact Kx de x. On définit maintenant notre base de V∞ par le filtre W,
engendré par les complémentaires des Kx :
[ F
W≜ X \ Kx
x∈D

On sait déjà, comme cette famille est constituée d’ouverts, que le filtre V∞ est plus fin
que W. Dans le sens réciproque, soit K un compact, on veut montrer que l’ouvert X \ K
contient un ouvert de W. Cela revient à dire que pour tout compact K, il existe une union
finie de Kx recouvrant K. Or, on sait que (Kx )x∈K recouvre K, et que chaque Kx contient
un voisinage ouvert Ux de x. Ainsi, par compacité de K, on extrait une partie finie F ⊆ K
telle que (Ux )x∈F recouvre K, donc (Kx )x∈F recouvre K, d’où le résultat.

10.2 Espace de Cantor et de Baire


Dans cette dernière section, on s’intéresse aux espaces de Cantor et de Baire, qui sont
des exemples essentiels d’espaces polonais. L’espace de Cantor a été d’une certaine manière
introduit dans le chapitre 5 puisqu’il est un espace de Stone, mais nous allons étudier plus
en détail ses propriétés topologiques. Nous allons voir les notions de schéma de Cantor et
de schéma de Lusin, permettant de construire efficacement des fonctions depuis les espace
respectifs. Nous verrons ensuite le théorème de Cantor-Bendixson, qui est un des théorèmes
importants de la théorie descriptive des ensembles, puis nous verrons la caractérisation des
espaces de Cantor et de Baire.

10.2.1 Schémas de Cantor et de Baire


Remarquons que la topologie de 2N peut être engendrée par la famille de parties

ext(x1 , . . . , xn ) ≜ {α ∈ 2N | ∀i ∈ {1, . . . , n}, α(i) = xi }

pour (x1 , . . . , xn ) des éléments de {0, 1}. On voit ainsi qu’un élément de l’espace de Cantor
peut être vu comme la limite de suites finies sur 2. On veut donc associer à des suites finies
sur 2 des ouverts, en voulant associer ces ouverts de base de l’espace de Cantor.
Ainsi, un schéma de Cantor sera une association des suites finies sur un espace, de
sorte que l’image des suites infinies est obtenue par passage à la limite. Pour une suite finie
s ∈ 2<ω de taille n et a ∈ {0, 1}, on note s ⋆ a la suite finie obtenue en associant n à a et
les termes de 0 à n − 1 à ceux correspondant dans s.
226 Chapitre 10. Théorie descriptive des ensembles

Définition 10.2.1.1 (Schéma de Cantor). Soit (X, Ω) un espace polonais. On appelle


schéma de Cantor sur X une famille X = {Xs | s ∈ 2<ω } vérifiant les propriétés suivantes :
• pour tout s ∈ 2<ω , Xs ̸= ∅.
• pour tout s ∈ 2<ω , Xs⋆0 ⊆ Xs et Xs⋆1 ⊆ Xs .
• pour tout s ∈ 2<ω , Xs⋆0 ∩ Xs⋆1 = ∅.
c
• pour tout s ∈ 2<ω et b ∈ {0, 1}, Xs⋆b ⊆ Xs .
On dit qu’un schéma de Cantor est de diamètre évanescent si pour toute suite u ∈ 2N ,
on a
lim sup d(x, y) = 0
n∈N x,y∈Xu↾
n

Proposition 10.2.1.2. Soit (X, Ω) un espace polonais et X un schéma de Cantor de


diamètre évanescent dont tous les éléments sont des ouverts. Alors il existe une fonction
f : 2N → X et une seule vérifiant
\
∀u ∈ 2N , f (u) ∈ Xu↾n
n∈N

De plus, c’est une injection continue.


Démonstration. S’il existe une telle fonction, alors pour tout u ∈ 2N , on sait qu’il existe au
S
plus un élément dans n∈N Xu↾n comme son diamètre est nul. Comme on peut choisir un
élément dans chaque Xu↾n par hypothèse, on peut construire une suite, dont la condition
sur les diamètres assure qu’elle est de Cauchy. On sait donc qu’elle converge, et sa limite
est dans l’intersection de tous les Xu↾n , donc f (u) est bien définie. On en déduit l’existence
et l’unicité d’une telle fonction f . On veut maintenant montrer qu’elle est une injection
continue.
Commençons par montrer que pour u ̸= v deux mots finis de même longueur, on a
Xu ∩Xv = ∅. Pour cela, en considérant le plus grand préfixe commun entre u et v, notons-le
p, on sait (sans perte de généralité, quitte à inverser u et v) que Xu ⊆ Xp⋆0 et v ⊆ Xp⋆1 ,
donc Xu ∩ Xv = ∅.
On en déduit donc directement l’injectivité de f , puisque si u = ̸ v sont deux suites
de 2N , alors elles diffèrent à partir d’un certain rang fini, permettant d’appliquer notre
résultat précédent.
On en déduit aussi que pour tout s ∈ 2<ω .

f −1 (Xs ) = ext(s)

En effet, on sait dans un sens que pour toute suite u, l’adhérence de Xu↾n est incluse dans
Xu↾n+1 et que f (u) ∈ Xs pour u ∈ ext(s). Réciproquement, si f (u) ∈ Xs , alors le préfixe
de taille |s| de u ne peut pas différer de s, donc u ∈ ext(s).
Pour montrer que f est continue, puisqu’on a vu que les f −1 (Xs ) sont des ouverts de
2 , il nous suffit de montrer que pour tout u ∈ 2N , (Xu↾n )n∈N est une base de voisinages de
N

f (u).
On considère donc un voisinage V de f (u), pour u ∈ 2N . Par l’absurde, supposons que
c
pour tout n ∈ N, Xu↾n ⊈ V . On sait donc que Xu↾n \ V est une famille de fermés (V et un
ouvert, donc son complémentaire est un fermé) non vides de Xε , qui est ouvert en tant
qu’ouvert de X. On sait donc qu’il existe (par complétude) un unique élément de
[ c
(Xu↾n \ V )
n∈N

qui est donc f (u), mais f (u) ∈ V : c’est absurde. On en déduit donc que f est continue.
10.2. Espace de Cantor et de Baire 227

L’analogue d’un schéma de Cantor pour l’espace de Baire NN est appelé schéma de
Lusin. On impose ici directement que le diamètre est évanescent (en un sens fort), puisque
dans tous les cas on n’utilisera un schéma de Lusin que dans ce cas.

Définition 10.2.1.3 (Schéma de Lusin). Soit (X, Ω) un espace polonais. On appelle


schéma de Lusin une famille {Xs }s∈N<ω telle que :
• X = U∅
[
• pour tout s ∈ N<ω , on a Xs⋆n = Xs
n∈N
• pour tout s ∈ N<ω , Xs est un ouvert-fermé non vide tel que sup d(x, y) < 2−n .
x,y∈Xs

Exercice 10.2.1.4. Soit (X, Ω) un espace polonais et X un schéma de Lusin sur X.


Montrer qu’il existe une fonction f : NN → X et une seule vérifiant
\
∀u ∈ NN , f (u) ∈ Xu↾n
n∈N

et que cette fonction est une injection continue.

Revenons maintenant aux schémas de Cantor. Une façon naturelle de l’appliquer est de
considérer un espace X et de le couper en deux ouverts disjoints X0 et X1 , puis ceux-ci
récursivement en deux ouverts disjoints, jusqu’à obtenir un schéma de Cantor. Si on
considère un ouvert U ∈ Ω, le couper en deux ouverts disjoints est particulièrement facile :
étant donnés deux points dans U , la séparation de X (métrisable) nous donne deux ouverts
disjoints, chacun contenant l’un des deux points. Le souci étant que U n’a pas de raison de
contenir deux points.
Cela nous mène à la notion de point isolé et d’espace parfait.

Définition 10.2.1.5 (Point isolé). Soit (X, Ω) un espace topologique. On dit qu’un point
x ∈ X est isolé si {x} ∈ Ω.

Remarque 10.2.1.6. Un espace est discret si et seulement si tous ses points sont isolés.

Le contraire d’un point isolé est appelé un point d’accumulation. On le définit habi-
tuellement relativement à un ensemble, ce que nous allons donc faire ici, mais ce qui nous
importe est de considérer un point d’accumulation de l’espace entier.

Définition 10.2.1.7 (Point d’accumulation). Soit (X, Ω) un espace topologique, Y ⊆ X


une partie et x ∈ X. On dit que x est un point d’accumulation de Y si pour tout ouvert
U ∈ Ω contenant x, il existe un point y ∈ Y différent de x tel que y ∈ U . On dira que x
est un point d’accumulation sans autre précision si x est un point d’accumulation de X.

On voit donc qu’un point est soit un point isolé, soit un point d’accumulation. Pour
construire le schéma de Cantor énoncé plus haut, il nous suffit donc que l’espace ne
contienne aucun point isolé : ces espaces sont nommés des espaces parfaits.

Définition 10.2.1.8 (Espace parfait). Un espace parfait est un espace topologique dont
tous les points sont des points d’accumulation. Si (X, Ω) est un espace topologique et
Y ⊆ X est un espace parfait (pour la topologie induite), on dit alors que Y est parfait
dans X.

On peut maintenant construire le schéma de Cantor que l’on évoquait.


228 Chapitre 10. Théorie descriptive des ensembles

Proposition 10.2.1.9. Soit (X, Ω) un espace polonais parfait. Il existe une injection
continue 2N → X.
Démonstration. On construit pour cela un schéma de Cantor de diamètre évanescent
constitué d’ouverts de X :
• on définit X∅ = X.
• pour toute suite finie s ∈ 2<ω , on considère deux éléments x, y ∈ Xs (qui existent
car Xs est un ouvert et X est parfait). Par séparation, on trouve Ux , Uy disjoints
contenant respectivement x et y. Quitte à en prendre une boule ouverte à l’intérieur
de Ux (respectivement de Uy ), on peut considérer que l’adhérence de Ux et l’adhérence
de Uy sont incluses dans Xs et sont disjointes. On pose alors

Xs⋆0 = Xs ∩ Ux ∩ B(x, 2−|s|+1 ) Xs⋆1 = Xs ∩ Uy ∩ B(y, 2−|s|+1 )

Comme Xs a un diamètre inférieur à 2−|s| , on en déduit que le diamètre du schéma de


Cantor est bien évanescent. Il nous reste donc à vérifier l’assertion suivante :
\
∀u ∈ 2N , Xu↾n ̸= ∅
n∈N

On sait que chaque Xs est non vide, par construction, donc on peut trouver une suite
(xn )n∈N telle que xi ∈ Xu↾n : celle-ci est de Cauchy. En effet, comme à partir du rang n tous
les points de (xn ) appartiennent à Xu↾n , on en déduit que la distance entre deux éléments
est inférieure à 2−n , nous donnant la propriété d’être de Cauchy puisque 2−n −−−→ 0.
n→∞
Comme X est complet, on en déduit que (xn ) converge et donc que n∈N Xu↾n ̸= ∅.
T

Ainsi, grâce à la proposition 10.2.1.2, on en déduit l’existence d’une injection continue


de 2N dans X.

Corollaire 10.2.1.10. Un espace polonais parfait est de cardinal 2ℵ0 .


Démonstration. On sait que 2ℵ0 minore le cardinal d’un espace polonais parfait par la
proposition précédente. De plus, comme tout point peut être écrit comme limite de points
dans un ensemble dénombrable, on peut injecter l’espace dans NN , de cardinal 2ℵ0 , d’où le
résultat.

En fait, on peut être plus précis sur les espaces polonais : ceux-ci sont presque entièrement
parfait, au sens où l’ensemble des points non parfaits d’un espace polonais est dénombrable.
L’énoncé plus précis est celui du théorème de Cantor-Bendixson.
Théorème 10.2.1.11 (Cantor-Bendixson). Soit (X, Ω) un espace polonais. Il existe
alors un ouvert dénombrable U ∈ Ω et une partie parfaite P ⊆ X tels que X = U ∪ P .
Démonstration. Une idée intuitive de preuve est que depuis l’ensemble X, on peut décider
de retirer les points isolés. Cependant, on peut imaginer que de nouveaux points deviennent
isolés à cause de ce retrait, obligeant à itérer ce processus. Comme l’ensemble U souhaité
se trouve être dénombrable, le processus n’a à être itéré qu’un nombre dénombrable de fois
pour converger, ce qui signifie qu’un point qui ne sera jamais retiré est un point dont les
voisinages sont indénombrables.
Le point de départ de la preuve à proprement parler va à rebours de cette ébauche. On
appelle un point de condensation de X un point x tel que tous les voisinages de x sont
indénombrables. On définit alors

P ≜ {x ∈ X | x est un point de condensation}


10.2. Espace de Cantor et de Baire 229

On fixe désormais une base dénombrable de Ω, qu’on notera (Ui )i∈I . Pour tout i ∈ I, si Ui
est dénombrable alors tous ses éléments sont hors de P (par définition d’être un point de
condensation). Réciproquement, si un point x n’est pas de condensation, alors on trouve un
ouvert U dénombrable tel que x ∈ U , mais alors comme (Ui ) est une base, on peut trouver
un ouvert Ui ⊆ U tel que x ∈ Ui , qui est nécessairement dénombrable par inclusion : x
appartient à un certain Ui dénombrable.
On en déduit donc que

[
X \P = {Ui | i ∈ I, |Ui | ≤ ℵ0 }

cet ensemble, qu’on notera désormais U , est dénombrable (comme union dénombrable
d’ensembles dénombrable). Il nous reste donc à montrer que P est parfait dans X. Soit
x ∈ P et U un ouvert contenant x. Cet ouvert est indénombrable puisqu’il est un voisinage
de x : il a donc une intersection indénombrable avec P (puisque X = U ∪ P et U est
dénombrable), donc il contient en particulier d’autres points que x dans P , donc x est un
point d’accumulation.

Remarque 10.2.1.12. La décomposition donnée ici est de plus unique. Si on trouve une
autre décomposition X = U ′ ∪ P ′ , alors U = U ′ et P = P ′ . Pour le prouver, on peut utiliser
le fait que l’ensemble des points de condensation d’un espace parfait est lui-même.

On peut donc en déduire qu’il y a une forme d’hypothèse du continu dans les espaces
polonais.

Corollaire 10.2.1.13. Un espace polonais indénombrable est de cardinal 2ℵ0 .

Démonstration. Un espace polonais contient une partie parfaite, qui est non vide si l’espace
est indénombrable : on peut donc injecter l’espace de Cantor dans cet espace.

10.2.2 Caractérisation des espaces de Cantor et de Baire

Nous montrons maintenant que quelques propriétés topologiques suffisent à caractériser,


à homéomorphisme près, les espaces de Cantor et de Baire.
On peut voir que l’espace de Cantor est un espace de Stone. A ce titre, il est compact
et possède une base d’ouverts-fermés. De plus, on a vu qu’il est un espace polonais parfait.
En réalité, ces propriétés suffisent à caractériser l’espace de Cantor.
Pour construire un homéomorphisme entre un espace quelconque vérifiant ces hypothèses
et l’espace de Cantor, on s’attend à devoir construire un schéma de Cantor. En utilisant
la compacité de l’espace (qu’on nommera X), on peut trouver un nombre fini de parties
X1 , . . . , Xn disjointes, qui seront de taille 2−x à mesure qu’on effectue les séparations.
Malheureusement, on ne peut pas dire que n = 2, donc notre construction de schéma
de Cantor demande à être adaptée. Pour cela, en considérant un arbre à branchements
finis dont la racine est X et les fils de chaque nœud X0 sont les parties disjointes de
diamètre moitié (par rapport à X0 ) décomposant X0 , que l’on peut représenter par le
schéma ci-dessous :
230 Chapitre 10. Théorie descriptive des ensembles

X1

X2
X0
..
.

Xn

on effectue la transformation en un arbre binaire, en transformant la suite de fils de X0


(notons-les X1 , . . . , Xn ) en une branche partant de X0 , où les nœuds intermédiaires sont
les unions partielles des Xi ∪ · · · ∪ Xn :

X1

X0
X2
X2 ∪ · · · ∪ Xn
X3 ∪ · · · ∪ Xn

Théorème 10.2.2.1 (Caractérisation de l’espace de Cantor). Soit (X, Ω) un espace


polonais parfait compact, non vide, possédant une base d’ouverts-fermés. Alors X est
homéomorphe à l’espace de Cantor.

Démonstration. On construit donc notre schéma de Cantor sur X, dont on s’assure que
chaque Xs est un ouvert-fermé de X. Supposons construit notre schéma pour un mot s de
taille n et tel qu’aucun Xt n’est défini, pour t dont s est un préfixe. On considère alors Xs
et on note ρ son diamètre. On sait que Xs est un compact (puisque fermé dans l’espace
de Cantor, compact). De plus, comme Xs peut être recouvert par des boules de taille
ρ
, et qu’on a une base d’ouverts-fermés, on peut recouvrir Xs par des ouverts-fermés de
2
ρ
diamètres inférieur à : par compacité, on en déduit donc l’existence d’un recouvrement
2
ρ
fini Y1 , . . . , Yn de Xs par des ouverts-fermés de diamètre inférieur à , comme on a un
2
ensemble fini d’ouverts-fermés, on peut conserver toutes ces propriétés en considérant
[
Xi = Yi \ Yi
j<i

pour obtenir une nouvelle famille (Xi )i=1,...,n d’ouverts-fermés disjoints de diamètre suffi-
samment petit. On ajoute alors la suite des parties Xi comme décrit plus tôt. On remarque
que, dans cette construction :
• lorsqu’on ajoute une branche pour une famille de Xi donnée, on a toujours au moins
ρ
deux Xi , car sinon cela voudrait dire que ρ = et donc que Xs , supposé ouvert, est
2
un singleton : c’est impossible dans un espace parfait.
• après l’ajout d’une branche, on ne peut donc pas avoir un nœud avec une seule
branche : soit on a défini ses deux fils, soit on n’en a défini aucun. Cela signifie que
sur les nœud non encore définis, on peut appliquer notre hypothèse de récurrence.
10.2. Espace de Cantor et de Baire 231

On a ainsi construit un schéma de Cantor X , dont on veut vérifier que son diamètre est
évanescent. Or, on sait que si Xs est de diamètre ρ, alors pour un certain n fini et tout
mot u de taille n, Xs⋆u est de diamètre inférieur à ρ/2, donc le diamètre de u ↾n tend vers
0 quand n tend vers ∞.
On a donc construit une injection continue de l’espace de Cantor dans X. Comme
à chaque étape, Xs est partitionné, on sait que l’injection est de plus surjective : si on
considère x ∈ X, alors on peut trouver une suite u telle que f (u) = x. Si x ∈ X0 , alors
on définit u0 = 0, sinon on définit u0 = 1, et on procède ainsi par induction sur n. Si
la suite n’atteint pas x, cela signifie que x est dans un ensemble Xs (car il est au moins
dans Xε = X) mais dans aucun élément de la partition de Xs en X1 , . . . , Xn , ce qui est
absurde. Il nous reste enfin à vérifier que l’image d’un ouvert de l’espace de Cantor est
ouvert. Cela se voit directement, puisque l’image de ext(u) pour u ∈ 2<ω est choisie comme
un ouvert-fermé.
On en déduit que X ∼ = 2N .

Enfin, l’espace de Baire possède aussi une caractérisation. Pour cette caractérisation, il
nous est nécessaire d’introduire d’abord des prérequis topologiques. Même si ce livre n’est
pas un livre de topologie, étant donnée le caractère élémentaire et profond de ces notions,
nous considérons pertinent de les introduire, même si pour un seul théorème final.

Définition 10.2.2.2 (Espace de Lindelöf). Un espace topologique (X, Ω) est dit de


Lindelöf si pour tout recouvrement ouvert, il existe un recouvrement dénombrable.

Les espaces de Lindelöf forment une famille assez large d’espaces topologiques, mais nous
souhaitons ici simplement considérer les espaces polonais. D’après la proposition 10.1.3.6,
un espace polonais est à base dénombrable, et on peut prouver qu’un espace à base
dénombrable est un espace de Lindelöf.

Lemme 10.2.2.3 (Lindelöf). Tout espace à base dénombrable est de Lindelöf.

Démonstration. On considère donc un espace topologique (X, Ω) et une base dénombrable


de cet espace (Un )n∈N . Soit un recouvrement ouvert (Vi )i∈I de X. Pour tout x ∈ X, on
sait qu’on peut trouver ix ∈ I tel que x ∈ Vix . Comme (Un ) est une base de l’espace et que
Vi est un ouvert, on peut donc trouver Jx ⊆ N tel que
[
V ix = Un
n∈Jx

On considère maintenant [
J≜ Jx
x∈X

On sait donc que l’union des Uj pour j ∈ J vaut X, puisque ces indices donnent un
recouvrement de X. De plus, pour tout Uj , il existe un Vi contenant Uj (par construction),
donc on peut considérer l’ensemble {Vij | j ∈ J} des tels Vi . Cet ensemble est dénombrable
et recouvre X puisqu’il contient l’union des Uj .

Comme pour un espace compact dont une partie ouverte peut ne pas être ouverte, une
partie ouverte d’un espace de Lindelöf n’est pas forcément de Lindelöf : un exemple est
l’ouvert ω1 dans S ω1 (compact puisque c’est un ordinal successeur, d’après la proposi-
tion 8.1.1.5). Cependant, pour un fermé, comme dans le cas des compacts, cette propriété
est préservée : c’est ce que l’on prouve dans l’exercice suivant.
232 Chapitre 10. Théorie descriptive des ensembles

Exercice 10.2.2.4. Montrer qu’un fermé d’un espace de Lindelöf est un espace de Lindelöf
pour la topologie induite.

Remarque 10.2.2.5. Dans le cas d’un espace polonais, on remarque que les ouverts eux
aussi sont de Lindelöf, étant donné qu’un Gδ d’un espace polonais est un espace polonais
(et que ceux-ci sont de Lindelöf).

Cela nous permet enfin de donner la caractériser de l’espace de Baire.

Théorème 10.2.2.6 (Caractérisation de l’espace de Baire). Soit (X, Ω) un espace


polonais de dimension zéro et tel que tout compact de X est d’intérieur vide. Alors cet
espace est homéomorphe à l’espace de Baire NN .

Démonstration. On construit un schéma de Lusin dans X. On suppose construit notre


schéma jusqu’à une taille n donné. Soit s ∈ N<ω , on veut définir une partition de Xs en
ouverts-fermés de diamètre inférieur à la moitié de celui de Xs (on suppose que Xs est un
ouvert-fermé de diamètre inférieur à 2−|s| , et qu’il est non vide). En considérant la famille
d’ouverts
(Ux )x∈Xs ≜ B2−(|s|+1) (x)
et par séparabilité de Xs , on sait qu’on peut trouver pour chaque ouvert Ux un élément
yx contenu dans Ux , choisi dans un certain ensemble dénombrable Y (indépendant de x).
On en déduit donc qu’il existe une famille (yi )i∈N dénombrable telle que tout élément de
Xs est à distance inférieure à 2−(|s|+1) d’au moins un élément de la famille. On a donc un
recouvrement ouvert donné par la famille

(Vi )i∈N ≜ {B2−(|s|+1) (yi )}i∈N

En utilisant le lemme 10.2.2.3, on sait que chaque Vi , qui est fermé, peut être recouvert
par une famille dénombrable d’ouverts-fermés, donc on a une famille dénombrable pour
chaque Vi , nous permettant de construire une famille dénombrable (Wi )i∈N d’ouverts-fermés
recouvrant Xs et de diamètre inférieur à 2−(|s|+1) .
Remarquons que notre construction peut, quitte à intersecter nos ouverts avec une
famille bien choisie, être considérée comme ne contenant aucun sous-recouvrement fini. En
effet, comme Xs n’est pas compact (car son intérieur n’est pas vide), mais de Lindelöf,
on peut considérer un recouvrement ouvert dénombrable sans sous-recouvrement fini de
Xs , et considérer à l’intérieur de ces ouverts des boules suffisamment petites et des sous-
recouvrements dénombrables en ouverts-fermés. On suppose donc désormais que (Wi )i∈N
n’admet aucun sous-recouvrement fini.
On construit alors nos Xs⋆i pour i ∈ N par récurrence, en considérant des ouverts-fermés
de Xs inclus dans les (Wi )i∈N : en supposant construits nos ensembles pour j < i, on
considère l’ensemble [
Y ≜ Xs \ Xs⋆j
j<i

Cet ensemble est non vide car (Wi ) n’admet aucun sous-recouvrement fini. On trouve
donc W extrait de cette famille tel que W ∩ Y ̸= ∅. Comme tous ces éléments sont des
ouverts-fermés, on sait que
W′ ≜ W \
[
Xs⋆j
j<i

est un ouvert-fermé (non vide d’après le choix effectué). On définit alors

Xs⋆i = W ′
10.2. Espace de Cantor et de Baire 233

On a donc construit un schéma de Lusin vers notre espace X. Ce schéma est surjectif
d’après notre construction, puisque tout élément est dans une intersection de Xs pour s
de longueur aussi grande que l’on souhaite. De plus, la fonction définie par ce schéma est
ouverte, puisque tout ouvert de l’espace de Baire est associé par construction à un ouvert
de X. Enfin, d’après l’exercice 10.2.1.4, la fonction est une injection continue. On a donc
un homéomorphisme.
Ainsi tout espace polonais X de dimension zéro dont tous les compacts sont d’intérieur
vide est homéomorphe à NN .

Exercice 10.2.2.7. Montrer que l’espace de Baire est homéomorphe à un Gδ de l’espace


de Cantor par la fonction

f : NN −→ 2N
u 7−→ 1u0 01u1 . . .
234 Chapitre 10. Théorie descriptive des ensembles
Troisième partie

Théorie des modèles

235
Chapitre 11
Langage, structures et théories

237
238 Chapitre 11. Langage, structures et théories
Quatrième partie

Calculabilité et incomplétude

239
Chapitre 12
Automates finis et langages rationnels

Table des sous-matières


12.1 Alphabet, mot, langage . . . . . . . . . . . . . . . . . . . . . . . . 242
12.1.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.1.2 Aspect algébrique des langages . . . . . . . . . . . . . . . . . . . 245
12.2 Automate fini et langage reconnaissable . . . . . . . . . . . . . . 246
12.2.1 Définition d’un automate . . . . . . . . . . . . . . . . . . . . . . 246
12.2.2 Langage rationnel . . . . . . . . . . . . . . . . . . . . . . . . . . 248
12.2.3 Constructions d’automates . . . . . . . . . . . . . . . . . . . . . 249
12.2.4 Propriétés d’automates . . . . . . . . . . . . . . . . . . . . . . . 255
12.3 Vers le théorème de Myhill-Nérode . . . . . . . . . . . . . . . . 259
12.3.1 Conditions de rationnalité d’un langage . . . . . . . . . . . . . . 260
12.3.2 Automate minimal . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.3.3 Les langages reconnus par monoïde . . . . . . . . . . . . . . . . . 267

our aborder la calculabilité, plusieurs approches existent. L’une d’entre elles est
P de considérer directement les formalismes de fonctions calculables. Cette approche
est raisonnable puisqu’elle permet d’aller à l’essentiel, mais cela donne une vision assez
restrictive des modèles de calculs plus faibles existants, et qui sont souvent très utiles.
C’est pourquoi nous faisons le choix dans cet ouvrage (où nous ne sommes limités ni
par le temps d’un cours ni par l’espace d’un livre imprimé) de traiter, avant les formalismes
de fonctions calculables, les formalismes liés à la hiérarchie de Chomsky. Nous pensons
en particulier que les automates permettent d’illuminer profondément le fonctionnement
intuitif d’une machine de Turing, plus complexe mais basé sur des notions très proches.
Ce chapitre couvre donc les bases de l’étude des langages rationnelss et des automates
finis. Cette classe de langage peut être décrite par de nombreux formalismes, mais nous
nous contenterons des automates finis, des expressions rationnelless et des monoïdes.
Ce chapitre commence par la base de la théorie des langages : les définitions de
ce qu’est un alphabet, un mot, un langage. . . Nous aborderons ensuite la classe des
langages rationnelss en abordant deux des formalismes décrits que sont les automates et
les expressions rationnelles, puis la preuve de leur équivalence. Nous verrons après cela
les théorèmes de structure sur ces langages : le lemme de pompage et le théorème de
Myhill-Nérode, ainsi que ses conséquences. Nous traitons en dernier le cas de l’équivalence
des langages rationnels avec les langages reconnus par des monoïdes, pour ainsi revenir sur
un aspect plus algébrique, proche du début du chapitre.

241
242 Chapitre 12. Langages rationnels

12.1 Alphabet, mot, langage


Pour étudier de façon plus systématique les langages, nous étudierons aussi de l’algèbre
avec la structure de monoïde, qui est intimement liée à celle d’ensemble de mots. Nous
verrons donc tout d’abord l’aspect concret de ce qu’est un mot et un langage, puis nous
aborderons les côtés théoriques de l’étude des monoïdes.

12.1.1 Premières définitions


Tout d’abord, il nous faut définit ce qu’est un alphabet. Intuitivement, cela désigne
l’ensemble des symboles que nous utilisons pour écrire. Pour avoir un trairement uniforme,
on considère que des symboles comme « ( » font aussi partie de l’alphabet. C’est alors un
objet particulièrement quelconque : on peut imaginer écrire avec à peu près n’importe quel
ensemble de symboles. D’où la définition semblant inutile d’un alphabet : parler d’alphabet
permet surtout de situer le contexte d’étude.

Définition 12.1.1.1 (Alphabet). Un alphabet Σ est un ensemble fini non vide.

L’intérêt d’un alphabet est avant tout de pouvoir écrire des mots avec. La notion de
mot est la notion finie par excellence : un mot est donc simplement une suite finie de
lettres.

Définition 12.1.1.2 (Mot). Un mot u sur un alphabet Σ est une suite finie à valeurs
dans Σ, c’est-à-dire u = (u0 , . . . , un−1 ) ∈ Σn pour un certain entier n ∈ N.
On note Σ⋆ l’ensemble des mots sur Σ :
[
Σ⋆ ≜ Σn
n∈N

Notation 12.1.1.3. Pour tout mot u ∈ Σn , on note ui pour la ième lettre, c’est-à-dire
l’image de u par la projection πi : Σn → Σ.
Pour tout mot u ∈ Σ⋆ , on note |u| ∈ N l’entier n tel que u ∈ Σn .

Remarque 12.1.1.4. On aurait aussi pu définir Σ⋆ comme l’ensemble inductif (au sens du
chapitre 1) des listes d’éléments de Σ. Les deux formalismes sont équivalents, mais la théorie
des automates et plus généralement celle des langages formels utilisent habituellement
plutôt le formalisme des suites finies.

Remarquons qu’une suite vide est une suite finie : on peut donc définir le mot vide,
qu’on notera ε.
On peut désormais définir un langage : c’est un ensemble de mots.

Définition 12.1.1.5 (Langage). Soit Σ un alphabet. Un langage L sur Σ est une partie
L ⊆ Σ⋆ .

Parlons dès maintenant de stabilité, qui est une notion importante dans le contexte
de l’algèbre : elle permet de décrire une structure dans laquelle une opération donnée est
interne à la structure.

Définition 12.1.1.6 (Stabilité). Soit Σ un alphabet et ⋄ une opération binaire sur Σ⋆ .


On dit qu’un langage L sur Σ est stable par ⋄ si

∀u, v ∈ L, u ⋄ v ∈ L
12.1. Alphabet, mot, langage 243

Une autre façon de parler de stabilité est de commencer par étendre une opération
binaire sur les mots en une opération sur les langages.

Définition 12.1.1.7 (Extension sur les langages). Soit Σ un alphabet et ⋄ une


opération binaire sur Σ⋆ . On étend l’opération ⋄ sur les langages sur Σ par, pour tous
langages L, M :
L ⋄ M ≜ {u ⋄ v | u ∈ L, v ∈ M}

Exercice 12.1.1.8. Montrer qu’un langage L est stable par une opération ⋄ si et seulement
si L ⋄ L ⊆ L.

Cette notion de stabilité se généralise très bien à des classes de langages, dont il convient
donc d’introduire la définition.

Définition 12.1.1.9 (Classe de langages). Soit un alphabet Σ. On appelle classe de


langages une partie C ⊆ P(Σ⋆ ) (ses éléments sont donc des langages).

Définition 12.1.1.10 (Stabilité d’une classe de langages). Soit Σ un alphabet et ⋄


une opération binaire sur P(Σ⋆ ). On dit qu’une classe de langages C sur Σ est stable par ⋄
si
∀L, M ∈ C, L ⋄ M ∈ C

Remarque 12.1.1.11. Si on dispose d’une opération binaire ⋄ sur les langages, il est
possible de l’étendre sur les classes en faisant une construction analogue à celle étendant
les opérations sur les mots en des opérations sur les langages. On peut ainsi passer d’une
opération sur les mots en une opération sur les classes de langages, en effectuant les deux
extensions à la suite.

Pour le reste de cette sous-section, nous allons voir des exemples de langages, d’opéra-
tions et de classes de langages.

Exemple. Nous allons dès maintenant définir l’alphabet qui nous sera le plus utile :

2 ≜ {0, 1}

Voici quelques langages sur 2 ou un alphabet Σ quelconque :


• le langage des mots commençant par 0 :

L0 ≜ {u ∈ Σ⋆ | u0 = 0}

• le langage des mots ayant une taille paire :

Lpair ≜ {u ∈ Σ⋆ | |u| ∈ 2N}

• le langage des mots dont le début et la fin sont la même lettre :

Ldebut=fin ≜ {u ∈ Σ⋆ | u0 = u|u|−1 }

• pour un langage L, le langage L des mots pris dans l’autre sens :

L ≜ {u ∈ Σ⋆ | u|u|−1 . . . u0 ∈ L}

• étant donnés deux langages L et L′ l’intersection des deux langages L ∩ L′ .


• étant donnés deux langages L et L′ , l’union des deux langages L ∪ L′ .
244 Chapitre 12. Langages rationnels

Nous allons définir une nouvelle opération, fortement liée à la structure de Σ⋆ , qui nous
permettra de donner plus d’exemples de langages.

Définition 12.1.1.12 (Concaténation). Soit un alphabet Σ. On définit l’opération de


concaténation ⋆ : Σ⋆ × Σ⋆ → Σ⋆ comme le fait, étant donnés deux mots u, v ∈ Σ⋆ , de lire
les deux mots à la suite. Formellement, on définit

u ⋆ v ≜ (u0 , . . . , u|u|−1 , v0 , . . . , v|v|−1 )

Pour tout n ∈ N, on notera un pour l’itération de l’opération ⋆ :

u0 ≜ ε ∀n ∈ N, un+1 = un ⋆ u

Remarque 12.1.1.13. Le mot vide, ε, est neutre pour ⋆ : u ⋆ ε = u et ε ⋆ u = u.

Notation 12.1.1.14. Il nous arrivera régulièrement de ne pas écrire l’opération de conca-


ténation. La notation uv où u, v ∈ Σ⋆ , doit donc se lire u ⋆ v.

Exemple. Voici plusieurs autres langages possibles sur un alphabet Σ :


• pour deux langages L, L′ , le langage concaténé des deux langages :

L ⋆ L′ ≜ {u ⋆ u′ | u ∈ L, u′ ∈ L′ }

• pour un langage L, l’itération de concaténation sur ce langage :

L⋆0 ≜ {ε} ∀n ∈ N, L⋆(n+1) ≜ L⋆n ⋆ L

• pour un langage L, le langage des mots dont toutes les concaténations sont encore
dans L :
Lstable⋆ ≜ {u ∈ Σ⋆ | ∀n ∈ N, un ∈ L}

• pour un langage L, le langage des itérations de mots de L :

L⋆ ≜ {u0 ⋆ · · · ⋆ un−1 | n ∈ N, ∀i ∈ {0, . . . , n − 1}, ui ∈ L}

Exercice 12.1.1.15. Montrer que pour tout langage L sur un alphabet Σ, on a l’égalité
suivante : [
L⋆ = L⋆n
n∈N

Exercice 12.1.1.16. Montrer que pour tout langage L sur un alphabet Σ, on a ε ∈ L⋆ et


L⋆ est stable par ⋆.

Exemple. Donnons quelques exemples de classes de langages sur un alphabet Σ :


• la classe des langages contenant ε :

Cε ≜ {L ⊆ Σ⋆ | ε ∈ L}

• la classe des langages stables par ⋆ :

C⋆ ≜ {L ⊆ Σ⋆ | ∀u, v ∈ L, u ⋆ v ∈ L}
12.1. Alphabet, mot, langage 245

12.1.2 Aspect algébrique des langages


Nous nous intéressons maintenant à l’aspect algébrique des langages. L’objectif de cette
sous-section est d’aboutir à la caractérisation de l’ensemble des mots comme construction
universelle (celle du monoïde libre). Pour cela, commençons par voir ce qu’est un monoïde.

Définition 12.1.2.1 (Monoïde). Un monoïde est un ensemble M muni d’une opération


binaire · : M × M → M et d’un élément neutre e, c’est-à-dire un élément e ∈ M tel que

∀x ∈ M, x · e = e · x = x

et tel que · est associative, c’est-à-dire

∀x, y, z ∈ M, x · (y · z) = (x · y) · z

Définissons la notion de morphisme associée à la structure de monoïde.

Définition 12.1.2.2 (Morphisme de monoïde). Soient (M, ·, e) et (N, ⋄, e′ ) deux


monoïdes. Un morphisme entre ces deux monoïdes est une fonction f : M → N vérifiant
les deux conditions
∀x, y ∈ M, f (x · y) = f (x) ⋄ f (y) (12.1.2.1)
f (e) = e′ (12.1.2.2)

Remarquons que contrairement au cas des groupes, les morphismes de monoïdes ont
besoin de stabiliser l’élément neutre.
L’exemple le plus évident de monoïde est (N, +, 0), mais nous allons voir que la structure
des mots généralise de façon naturelle ce cas.

Exercice 12.1.2.3. Soit Σ un alphabet, vérifier que (Σ⋆ , ⋆, ε) est un monoïde.

Le cas de Σ⋆ générale le cas de N : il est en effet possible de considérer un entier dans


sa représentation unaire (comme une succession d’applications de la fonction n 7→ n + 1 à
0) comme un mot sur l’alphabet {∗} où ∗ est un objet quelconque. La seule information
que contient un tel mot est alors sa longueur.
L’étude des monoïdes permet donc d’inclure l’étude de la structure de Σ⋆ . Nous allons
maintenant voir qu’en fait, Σ⋆ peut être construit comme la structure de monoïde la plus
simple engendrée par Σ. Cela se traduit par la propriété universelle du monoïde libre.

Théorème 12.1.2.4 (Propriété universelle du monoïde libre). Soit Σ un alphabet,


(M, ⋄, e) un monoïde et f : Σ → M une fonction (quelconque). Alors il existe un unique
morphisme de monoïde f˜ entre Σ⋆ et M tel que f˜(x) = f (x) pour tout x ∈ Σ.

Démonstration. On procède par analyse-synthèse :


• supposons que f˜ existe et vérifie les conditions décrites. Alors pour tout mot u =
u0 . . . un−1 , on peut vérifier par récurrence sur n que f˜(u) = f (u0 ) ⋄ · · · ⋄ f (un−1 ), où
le cas où u est de longueur nulle correspond à f˜(ε) = e. La fonction ainsi définie est
unique, étant donnée la construction.
• en considérant la fonction proposée précédemment, on voit d’abord que f˜(x) = f (x)
pour x ∈ Σ, et que si u = v ⋆ w alors f˜(u) = f˜(v) ⋄ f˜(w), où l’associativité est
nécessaire pour pouvoir couper le produit au milieu sans changer le résultat.
On voit donc qu’un seul candidat est possible pour la fonction donnée, et que ce candidat
vérifie la proposition attendue.
246 Chapitre 12. Langages rationnels

Remarquons qu’en choisissant une fonction f : Σ → M sans propriété particulière,


on peut potentiellement atteindre avec f˜ des valeurs qui ne sont pas atteintes par f
directement. Par exemple si on prend la fonction

f : Σ −→ N
α 7−→ 1

alors l’image d’un mot de taille n est n. De cette façon, on vient de voir que l’ensemble des
mots de taille n peut être décrit à partir du monoïde (N, +, 1) en considérant une partie
du monoïde et une fonction f : Σ → N.
Plus généralement, on définit ce qu’est le langage induit par une fonction depuis un
alphabet vers un monoïde possédant une partie distinguée.

Définition 12.1.2.5. Soit Σ un alphabet, (M, ·, e) un monoïde, h : Σ → M une fonction


et S ⊆ M . On dit que L(Σ, M, ·, e, h, S) est le langage induit par (Σ, M, ·, e, h, S), qui est
défini par :
L(Σ, M, ·, e, h, S) ≜ {u ∈ Σ⋆ | h̃(u) ∈ S}

En reprenant l’exemple de α 7→ 1, on voit qu’en prenant S = {n}, on induit le langage


Σn .

12.2 Automate fini et langage reconnaissable


On s’intéresse désormais aux automates finis et aux langages reconnaissables.

12.2.1 Définition d’un automate


Pour présenter un automate, le meilleur moyen est de commencer par une approche
graphique : un automate se visualise comme une machine effectuant des opérations élé-
mentaires sur des mots. Dans notre premier cas, l’opération est particulièrement simple
puisque la machine se contente de lire le mot. Un automate fini est une machine lisant
linéairement un mot (elle lit chaque lettre l’une après l’autre, sans pouvoir faire demi-tour).
A chaque lettre lue, l’automate change (ou non) d’état, parmi un ensemble fini d’états : le
mot lu est accepté si la lecture aboutit à un certain état considéré comme acceptant.
Le formalisme derrière cette définion est lourd, mais nécessaire, nous donnons donc la
définition formelle d’un automate.

Définition 12.2.1.1 (Automate fini déterministe). Soit un alphabet Σ. Un automate


fini déterministe A sur Σ est un quadruplet (Q, q0 , δ, F ) où :
• Q est un ensemble fini appelé ensemble des états de A,
• q0 ∈ Q est appelé l’état initial,
• δ : Q × Σ ⇀ Q est une fonction partielle appelée la fonction (ou table) de transitions,
• F ⊆ Q est appelé l’ensemble des états terminaux.
On notera AΣ l’ensemble des automates sur Σ.

Le processus de lecture décrit plus haut, en reprenant les notations introduites, consiste
à prendre un mot u = u0 . . . un et calculer δ(δ(· · · δ(q0 , u0 ) · · · ), un ) puis vérifier que cette
valeur appartient à F .
12.2. Automate fini et langage reconnaissable 247

Définition 12.2.1.2 (Fonction de transition étendue). Soit un automate fini détermi-


niste A sur un alphabet Σ et δ sa fonction de transition. On appelle fonction de transition
étendue la fonction δ ⋆ : Q × Σ⋆ ⇀ Q définie par induction sur Σ⋆ par :

δ ⋆ (q, ε) = q δ ⋆ (q, u ⋆ a) = δ(δ ⋆ (q, u), a)

pour tout état q ∈ Q, mot u ∈ Σ⋆ et lettre a ∈ Σ.


Définition 12.2.1.3 (Langage accepté par un automate). Soit A un automate sur
un alphabet Σ. On dit que A accepte (ou reconnait) le mot u ∈ Σ⋆ si δ ⋆ (q0 , u) ∈ F , ce
qu’on note A |= u. On définit le langage reconnu par A par :

LA ≜ {u ∈ Σ⋆ | A |= u}

Maintenant que les définitions ont été introduites, donnons une intuition graphique de
ce qu’il se passe (intuition largement indispensable pour comprendre les automates). Pour
représenter un automate A, la convention est de dessiner un graphe donc les sommets sont
les états (l’ensemble Q), et où δ est représentée par des arcs dirigés et étiquetés par Σ. Par
exemple, entre deux états q et q ′ , s’il existe a tel que δ(a, q) = q ′ , alors on aura une flèche
a
q−→ q ′ . L’état initial est représenté avec une flèche entrante, et les états terminaux sont
représentés par des doubles cercles.
Prenons par exemple un premier automate sur 2 :

q2
1
0,1
start q0 q1 0
0
1
q3

En lisant simplement ce dessin, on peut voir que l’automate reconnaît, par exemple,
00. Cette représentation a l’avantage, en plus de la lisibilité, de donner l’ensemble des
informations nécessaires pour retrouver l’objet mathématique représenté associé.
On a ainsi construit une classe de langages : la classe des langages reconnaissables.
Définition 12.2.1.4 (Langage reconnaissable). Soit Σ un alphabet. On appelle classe
des langages reconnaissbles sur Σ l’ensemble des langages reconnus par les automates sur
Σ:
Reco(Σ) ≜ {LA | A ∈ AΣ }
Exercice 12.2.1.5. Trouver le langage reconnu par l’automate suivant sur 2 (et prouver
que le langage reconnu est bien celui attendu) :

1 1
0
start q0 q1
0
248 Chapitre 12. Langages rationnels

Cette première classe de langages d’intérêt est en fait le centre de l’étude de ce chapitre.
On le verra, mais plusieurs définitions de cette classe existent, par des formalismes très
différents, ce qui rend cette classe de langages assez remarquable.
L’un de ces formalismes a déjà été présenté : on verra que les langages associés à des
monoïdes sont en fait des langages reconnus par des automates.

12.2.2 Langage rationnel


Avant de donner notre dernier formalisme, décrivons une autre classe de langages, qui
s’avérera en fait être la même classe.

Définition 12.2.2.1 (Langage rationnel). La classe des langages rationnels sur un


alphabet Σ est la plus petite classe R de langages sur Σ telle que :
• ∅∈R
• pour tout a ∈ Σ, {a} ∈ R
• si L, L′ ∈ R alors L ∪ L′ ∈ R
• si L, L′ ∈ R alors L ⋆ L′ ∈ R
• si L ∈ R alors L⋆ ∈ R.
On note Ratio(Σ) cette classe R.

Remarque 12.2.2.2. Le langage {ε} est rationnel, car il peut s’écrire ∅⋆ . On peut donc
ajouter si on le souhaite le mot vide tout en gardant la rationnalité d’un langage.

Cette définition est une définition par induction, comme on en a rencontré de nombreuses
fois depuis le début de ce livre. Cependant, il n’est pas particulièrement facile de manipuler
un tel ensemble de langages, en particulier pour représenter un langage de façon efficace :
devoir décrire le procédé par lequel on obtient le langage est, pour l’instant, fastidieux.
Heureusement, il existe un formalisme permettant exactement de décrire comment on
obtient un langage rationnel à partir de ces opérations inductives, c’est ce qu’on appelle
les expressions rationnelles.

Définition 12.2.2.3 (Expression rationnelle). Soit un alphabet Σ. On définit l’ensemble


des expressions rationnelles par la grammaire suivante :

e, e′ ::= ∅ | a | e + e′ | ee′ | e⋆

où a ∈ Σ. On note Regex(Σ) l’ensemble des expressions rationnelles sur Σ.

Remarque 12.2.2.4. On appelle aussi ces expressions et langages des expressions régulières
et des langages réguliers, d’où le terme regular expression donnant lieu à regex.

La correspondance est assez naturelle : une expression de la forme a représente le


langage {a}, ∅ le langage vide et les trois opérations représentent les opérations par
lesquelles est stable la classe des langages rationnels.
On définit donc une fonction d’interprétation des expressions rationnelles. De plus, on
ajoute ε dans nos expressoins rationnelles, par souci de lisbilité.

Définition 12.2.2.5 (Interprétation d’une expression rationnelle). On définit la


fonction Val : Regex(Σ) → Ratio(Σ) par induction :
• Val(∅) = ∅
• Val(a) = {a}
12.2. Automate fini et langage reconnaissable 249

• Val(e + e′ ) = Val(e) ∪ Val(e′ )


• Val(ee′ ) = Val(e) ⋆ Val(e′ )
• Val(e⋆ ) = (Val(e))⋆
• Val(ε) = {ε}

Exercice 12.2.2.6. Montrer que Val est une surjection.

Exercice 12.2.2.7. Trouver le langage interprété par l’expression rationnelle suivante sur
2:
(01⋆ 0)⋆

Remarque 12.2.2.8. Cette surjection n’est pas pour autant injective, et ce même en
retirant ε des expressions rationnelles. Par exemple, a + a a la même interprétation que a.

On a ainsi une façon plus simple de manipuler la classe des langages rationnels. Notre
première équivalence va donc consister en deux étapes :
• montrer que les langages reconnaissables sont stables par les constructions de la classe
des langages rationnels.
• étant donnée un automate A, construire une expression rationnelle e dont l’interpré-
tation est le langage reconnu par A.
Pour la première étape, nous aurons besoin de faire des constructions sur les automates.

12.2.3 Constructions d’automates


Les langages rationnels contiennent les singletons {a} pour a ∈ Σ, l’ensemble vide et
sont stables par trois opérations :
• l’union,
• la concaténation de langage,
• l’étoile d’un langage.
Il nous faut donc construire des automates représentant tous ces cas. Traitons d’abord
les cas les plus simples.
Il est clair qu’on peut construire des automates pour les singletons :

a
start q0 q1

et pour l’ensemble vide :

start q0

Le point essentiel est, par conséquent, la stabilité par les trois opérations. Il nous faut
donc introduire deux constructions d’automates : l’automate union, et les ε-transitions.

Définition 12.2.3.1 (Automate union). Soient A = (Q, q0 , δ, F ) et A′ = (Q′ , q0′ , δ ′ , F ′ )


deux automates sur un alphabet Σ. On définit l’automate union A ⊔ A′ par :
• QA⊔A′ ≜ Q × Q′
• q0,A⊔A′ ≜ (q0 , q0′ )
250 Chapitre 12. Langages rationnels

• δA⊔A′ (q, a) ≜ (δA (q, a), δA′ (q, a))


• FA⊔A′ ≜ F × Q′ ∪ Q × F ′
Proposition 12.2.3.2. Pour tous automates A, A′ sur un alphabet Σ donné, on a l’équation
LA ∪ LA′ = LA⊔A′
Démonstration. On montre d’abord par récurrence sur u que pour tout u ∈ Σ⋆ , on a
⋆ ′ ⋆ ⋆ ′
δA⊔A′ ((q0 , q0 ), u) = (δA (q0 , u), δA′ (q0 , u))

• pour u = ε, le résultat est par définition.


• si l’égalité est vraie pour u et pour tout a ∈ Σ, on a
⋆ ′ ⋆ ′
δA⊔A′ ((q0 , q0 ), u ⋆ a) = δA⊔A′ (δA⊔A′ (q0 , q0 ), a)
⋆ ⋆ ′
= δA⊔A′ ((δA (q0 , u), δA ′ (q0 , u)), a)
⋆ ⋆ ′
= (δA (δA (q0 , u)), δA′ (δA ′ (q0 , u)))
⋆ ⋆ ′
= (δA (q0 , u ⋆ a), δA ′ (q0 , u ⋆ a))

De plus, (q, q ′ ) ∈ F × Q′ ∪ Q × F ′ signifie que q ∈ F ou q ′ ∈ F ′ . On en déduit donc, en


utilisant le résultat précédent, que
A ⊔ A′ |= u ⇐⇒ A |= u ∨ A′ |= u
D’où l’égalité des deux langages.

Exercice 12.2.3.3 (Automate produit). Soient A et A′ deux automates sur un alphabet


Σ. On définit l’automate produit A × A′ par :
• QA⊔A′ ≜ Q × Q′
• q0,A⊔A′ ≜ (q0 , q0′ )
• δA⊔A′ (q, a) ≜ (δA (q, a), δA′ (qa ))
• FA⊔A′ ≜ F × F ′
Montrer que cet automate reconnait LA ∩LA′ , en déduire que les langages reconnaissables
sont stables par intersection (binaire).
On veut maintenant montrer la stabilité par concaténation de deux langages et par
étoile d’un langage. L’idée derrière ces deux constructions est relativement simple : pour
deux automates A, A′ , l’automate reconnaissant la concaténation est une copie de chacun
des deux automates, en ajoutant des transitions entre les états acceptants de A et l’état
initial de A′ . De même pour l’étoile d’un langage, on ajoute un nouvel état initial, acceptant,
on le relie à l’ancien état initial et on crée une transition entre chaque état acceptant et le
nouvel état initial.
Cependant, ces transitions demandent à pouvoir être effectuées automatiquement, en
ayant la possibilité pour un état de faire (ou non) cette transition avant la lecture d’une
nouvelle lettre. Cela nous pousse à ajouter deux choses : le non déterminisme, pour pouvoir
choisir ou non si l’on fait une transition, et les ε-transitions, qui sont des transitions qui,
comme décrites précédemment, peuvent s’exécuter ou non et sans lecture de lettre.
Commençons par présenter un automate non déterministe : celui-ci est un automate
dans lequel, au lieu d’une fonction de transition indiquant à partir d’un état et d’une lettre
quel est l’état lu ensuite, on dispose d’une relation de transition indiquant pour deux états
et une lettre s’il existe une transition entre ces deux états étiquetée par cette lettre. On
lui préfère en général une présentation équivalente : à un état et une lettre on associe
l’ensemble des états possibles à atteindre.
12.2. Automate fini et langage reconnaissable 251

Définition 12.2.3.4 (Automate fini non déterministe). Soit Σ un alphabet. On


appelle automate fini non déterministe A un quadruplet (Q, Q0 , δ, F ) où :
• Q est un ensemble fini appelé ensemble des états de A,
• Q0 ⊆ Q est l’ensemble des états initiaux,
• δ : Q × Σ ⇀ P(Q) est la fonction de transition non déterministe,
• F ⊆ Q est l’ensemble des états terminaux.

On peut définir la fonction de transition étendue, dont le principe est de considérer


l’union à chaque fois qu’on prend un ensemble d’états possibles.

Définition 12.2.3.5 (Fonction de transition étendue). Soit un automate fini non


déterministe A sur un alphabet Σ, on note δ ⋆ : Q × Σ⋆ → P(Q) sa fonction de transition
étendue, définie par induction par :
• δ ⋆ (q, ε) = {q}
δ(q ′ , a)
[
• δ ⋆ (q, u ⋆ a) =
q ′ ∈δ ⋆ (q,u)

Définition 12.2.3.6 (Langage accepté). Soit Σ un alphabet et A un automate fini non


déterministe sur Σ. On dit que A accepte (ou reconnaît) le mot u ∈ Σ⋆ s’il existe q0 ∈ Q0
tel que δ ⋆ (q0 , u) ∩ F =
̸ ∅, ce qu’on note A |= u. On définit le langage reconnu par A par :

LA ≜ {u ∈ Σ⋆ | A |= u}

Un automate fini non déterministe se représente comme un automate fini déterministe,


à ceci près qu’on accepte d’avoir plusieurs flèches depuis un état qui sont étiquetées par
la même lettre, et qu’on peut avoir plusieurs états initiaux. Accepter un mot dans un tel
automate est alors simplement trouver au moins un chemin partant d’un état initial et
arrivant à un état terminal en suivant des transitions étiquetées par les lettres du mot lu.
Cela mène à une définition alternative de l’acceptation d’un mot, qu’on traite en
exercice. La notion de trace est assez générale, et représente l’historique de l’exécution
d’une entrée sur une machine : ici, la trace d’un automate est alors la suite des états dans
lesquels est la machine en lisant un mot.

Exercice 12.2.3.7. Soit Σ un alphabet et A un automate fini non déterministe sur Σ. On


définit, pour tout u ∈ Σ⋆ , l’ensemble tr(u) des traces de u sur A, comme l’ensemble des
suites finies (q0 , . . . , qn ) d’états de A dont le premier élément est un élément de Q0 et tel
que δ(qi , ui ) = qi+1 pour tout i ∈ {0, . . . , n − 1}. Montrer que A |= u si et seulement s’il
existe un élément p ∈ tr(u) dont le dernier état est un état terminal.

On pourrait s’attendre à ce que relâcher tant de contraintes augmente la puissance des


automates, mais ce n’est en réalité pas le cas. Il est clair qu’un automate déterministe peut
être transformé en un automate non déterministe, en prenant Q0 ≜ {q0 } et pour fonction de
transition non déterministe le singleton de l’image par la fonction de transition déterministe.
La réciproque, elle, demande une construction plus subtile, appelée l’automate des parties.

Définition 12.2.3.8 (Automate des parties). Soit un alphabet Σ et un automate fini


non déterministe A sur Σ. On définit l’automate des parties de A, noté P(A), par :
• QP(A) ≜ P(QA )
• q0 ≜ Q0
S
• δP(A) (R, a) ≜ q∈R δA (q, a)
252 Chapitre 12. Langages rationnels

• FP(A) ≜ {R ⊆ Q | R ∩ F ̸= ∅}

Proposition 12.2.3.9. Soit un automate non déterministe A sur un alphabet Σ, on a


l’égalité
LA = LP(A)

Démonstration. On prouve par induction sur u que pour tout u ∈ Σ⋆ , on a l’égalité suivante
pour tout R ⊆ Q :
⋆ ⋆
δP(A) (R, u) = δA (R, u)
• dans le cas où u = ε, le résultat est direct.
• supposons que l’hypothèse d’induction est valide pour u et montrons le cas u ⋆ a :
[

δP(A) (R, u ⋆ a) = δA (q, a)

q∈δP(A) (R,u)
[
= δA (q, a)
⋆ (R,u)
q∈δA

= δA (R, u ⋆ a)

D’où le résultat par induction. On voit alors que la condition pour que u soit accepté, dans
les deux automates, revient à

δP(A) (Q0 , u) ∩ F ̸= ∅

donc LP(A) = LA .

Remarque 12.2.3.10. Cette construction n’est pas gratuite en pratique : elle fait passer
d’un ensemble d’états à son ensemble des parties, ce qui donne une complexité exponentielle
à la construction.

On peut donc utiliser des automates non déterministes pour étudier les langages
reconnaissables. On introduit maintenant les ε-transitions, qui ont plus de sens dans le
contexte des automates non déterministes.

Définition 12.2.3.11 (Automate avec ε-transitions). On définit un automate fini non


déterministe avec ε-transitions comme un automate fini non déterministe, mais dans lequel
la fonction de transition est de la forme δ : Q × (Σ ∪ {ε}) ⇀ Q.

Pour définir l’acceptation d’un mot par un automate avec ε-transitions, on utilisera le
formalisme des traces, introduit dans l’exercice 12.2.3.7.

Définition 12.2.3.12 (Langage reconnu par un automate avec ε-transitions). Soit


Σ un alphabet et A un automate non déterministe avec ε-transitions sur Σ. On définit
l’ensemble tr(u) des traces sur un mot u comme l’ensemble des suites finies (q0 , . . . , qn )
d’états de Q où q0 ∈ Q0 et telles qu’il existe pour tout i ∈ {0, . . . , n − 1} une lettre
(possiblement ε) ai ∈ Σ ∪ {ε} telle que les deux conditions suivantes sont vérifiées :
• δ(qi , ai ) = qi+1
• u = a0 ⋆ · · · ⋆ an−1
On dit que A accepte le mot u s’il existe une suite (q0 , . . . , qn ) ∈ tr(u) telle que qn ∈ F .
On définit le langage reconnu par A comme l’ensemble des mots reconnus par A.
12.2. Automate fini et langage reconnaissable 253

Les traces dans un automate avec ε-transitions représentent juste les exécutions possibles
lors de la lecture d’un mot, mais où il est possible d’effectuer gratuitement des transitions
étiquetées par ε.
Là encore, il est clair qu’un automate sans ε-transition peut être simulé par un automate
avec ε-transition, en n’ajoutant aucune ε-transition.
On introduit donc maintenant l’élimination des ε-transitions, permettant de construire
un automate sans ε-transition mais reconnaissant le même langage.
L’idée de l’élimination des ε-transitions est assez simple : au lieu de faire des sauts
spontanés dans une ε-transition, on décide de faire une grande transition contenant toutes
les ε-transitions ainsi que la transition qui suit. Il nous faut aussi modifier l’ensemble des
états terminaux pour ajouter les états qui peuvent atteindre un état terminal uniquement
en effectuant des ε-transitions.

Définition 12.2.3.13 (Élimination des ε-transitions). Soit Σ un alphabet et A un


automate avec ε-transitions sur Σ. On définit la relation →⋆ sur les états de A comme la
plus petite relation réflexive et transitive contenant la relation

q → q ′ ≜ q ′ ∈ δ(q, ε)

On définit l’automate A̸ε non déterministe sans ε-transition par la construction suivante :
• QA̸ε ≜ QA
• Q0,A̸ε ≜ Q0,A
δA (q ′ , a)
[
• δA̸ε (q, a) ≜
q ′ ∈Q
q→⋆ q ′

• FA̸ε = {q ∈ Q | ∃q ′ ∈ Q, q →⋆ q ′ ∧ q ′ ∈ FA }

Proposition 12.2.3.14. Soit Σ un alphabet et A un automate avec ε-transitions sur Σ.


Alors
LA = LA̸ε

Démonstration. On prouve d’abord que q ′ ∈ δA̸ε (q, a) si et seulement s’il existe une suite
finie (q0 , . . . , qn ) telle que :
• q0 = q
• ∀i ∈ {0, . . . , n − 2}, qi+1 ∈ δA (qi , ε)
• qn ∈ δA (qn−1 , a)
• qn = q ′
Pour un sens, on remarque que dans une telle suite, q1 →⋆ qn−1 donc δA̸ε (q, a) ⊇ δA (qn−1 , a).
Pour l’autre sens, on sait par définition qu’il existe q ′′ tel que q →⋆ q ′′ et q ′ ∈ δA (q ′′ , a),
donc il nous reste à vérifier que si q →⋆ q ′′ alors il existe une suite d’états uniquement
reliés par des ε-transition, ce qui se fait par induction sur →⋆ (on laisse la vérification au
lecteur).
Ainsi, on a une trace (q0 , . . . , qn ) dans A pour un mot u donné si et seulement si
(q0 , . . . , qp′ ), obtenue en supprimant les états reliés par des ε-transitions, est une trace pour

u dans A̸ε (réciproquement si on peut ajouter des états reliés par des ε-transitions).
De plus, un état qn est terminal dans A̸ε si et seulement s’il existe une suite d’ε-
transitions menant à un état terminal : ainsi une trace terminant sur un tel état dans A
donne une trace acceptante en ajoutant des ε-transitions. Réciproquement, on récupère
une trace acceptante dans A̸ε en supprimant ces ε-transitions.
254 Chapitre 12. Langages rationnels

Ainsi,
LA = LA̸ε

On sait donc maintenant que les automates déterministes, non déterministes et non
déterministes avec ε-transitions, sont tous équivalents du point de vue de la classe de
langage qu’ils reconnaissent.
On peut maintenant prouver la stabilité des langages reconnaissables par concaténation
de langages et par étoile.
Proposition 12.2.3.15. Soit Σ un alphabet et A, A′ deux automates non déterministes
avec ε-transitions sur Σ. Alors il existe un automate reconnaissant
LA ⋆ LA′
Démonstration. On construit l’automate A′′ dont les états est la somme directe des états de
A et A′ (pour simplifier les notations on va considérer les deux ensembles d’états disjoints
et considérer leur union), les transitions sont uniquement celles définies au sein de A et A′
sauf entre chaque état qf de A et chaque état initial qi de A′ où l’on rajoute une transition
ε
− qi . Les états initiaux sont ceux de A et les états terminaux ceux de A′ .
qf →
Accepter un mot dans cet automate signifie donc avoir une trace (q0 , . . . , qn ) commençant
en un état initial de A et terminant dans un état terminal de A′ . Comme la seule façon de
passer d’un état de A a un état de A′ est d’utiliser une des ε-transitions ajoutées, on sait
que la trace peut se décomposer en (q0 , . . . , qp ) et (qp+1 , . . . , qn ) et ces deux traces sont
acceptantes respectivement pour un mot dans LA et pour un mot dans LA′ , donc la trace
est acceptant pour un mot dans LA ⋆ LA′ .
Réciproquement, si on a deux traces (q0 , . . . , qp ) et (qp+1 , . . . , qn ) pour respectivement
u ∈ LA et v ∈ LA′ , alors (q0 , . . . , qn ) est une trace acceptante pour u ⋆ v.
On prouve de même qu’ajouter simplement des transitions entre les états terminaux et
initiaux d’un automate donne le langage de l’étoile. Comme la preuve est très proche de la
preuve précédente, nous préférons la donner en exercice.
Définition 12.2.3.16 (Automate étoile). Soit Σ un alphabet et A un automate sur Σ.
On définit l’automate étoile A⋆ par :
• QA⋆ ≜ QA ⊔ {p}
• Q0,A⋆ ≜ {p}
• δA⋆ est définie comme δA mais en ajoutant des ε-transitions entre p et chaque
q0 ∈ Q0,A , ainsi qu’entre chaque qf ∈ FA et p.
• FA⋆ ≜ {p}.
Exercice 12.2.3.17. Soit Σ un alphabet et A un automate sur Σ, montrer que
LA⋆ = L⋆A
On déduit donc des constructions effectuées la stabilité par les opérations rationnelles.
Corollaire 12.2.3.18. Soit Σ un alphabet. La classe Reco(Σ) contient la classe Ratio(Σ).
Démonstration. On a déjà dit que ∅ ∈ Reco(Σ) et que {a} ∈ Reco(Σ) pour tout a ∈ Σ.
De plus, en utilisant la proposition 12.2.3.2, la proposition 12.2.3.15 et l’exercice 12.2.3.17,
on en déduit que Reco est stable par union, concaténation et étoile. On en déduit donc,
puisque Ratio(Σ) est la plus petite telle classe, que Ratio(Σ) ⊆ Reco(Σ).
Avant de montrer l’inclusion réciproque, il nous faut nous attarder sur les propriétés
des automates.
12.2. Automate fini et langage reconnaissable 255

12.2.4 Propriétés d’automates


Plusieurs propriétés d’intérêt existent, à propos des automates. Pour faciliter la gé-
nération d’une expression rationnelle à pratir d’un automate, nous allons présenter des
propriétés basiques à leur propos. La première est celle d’avoir une table de transition
totale plutôt que partielle.

Définition 12.2.4.1 (Automate complet). Un automate A est dit complet si la fonction


de transition δ est une fonction totale.

Il est facile d’assurer cette propriété en ajoutant un état dit « puits » vers lequel pointent
toutes les transitions à ajouter, et les transitions partant de cet état.

Proposition 12.2.4.2. Soit A un automate sur un alphabet Σ, il existe un automate A′


qui est complet et reconnaît le même langage que A.

Démonstration. On construit l’automate A′ comme décrit ci-dessus :


• Q′ ≜ Q ⊔ {p}
• q0′ ≜ q0
• δ ′ : Q′ × Σ → Q′ est défini par disjonction de cas :
◦ si (q, a) ∈ Dom(δ), alors δ ′ (q, a) = δ(q, a)
◦ sinon, δ ′ (q, a) = p
• F′ = F
On veut maintenant prouver que les deux automates reconnaissent le même langage.
Soit u ∈ Σ⋆ , montrons que δ ⋆ (q0 , u) est indéfini si et seulement si δ ′⋆ (q0 , u) = p et que
sinon δ ′⋆ (q0 , u) = δ ⋆ (q0 , u), par induction sur u :
• dans le cas de ε, on sait que δ ′⋆ (q0 , ε) = δ ⋆ (q0 , ε) = q0 .
• supposons l’hypothèse vraie pour u, et soit a ∈ Σ. Supposons que δ ⋆ (q0 , u ⋆ a) est
indéfinie, on a alors deux cas possibles :
◦ Si δ ⋆ (q0 , u) est indéfinie, alors par hypothèse d’induction δ ′⋆ (q0 , u) = p et comme
δ ′ (p, a) = p, on en déduit que δ ′⋆ (q0 , u ⋆ a) = p.
◦ Si δ ⋆ (q0 , u) = q et δ(q, a) est indéfini, alors par hypothèse d’induction δ ′⋆ (q0 , u) =
q et, par définition, δ ′ (q, a) = p.
Réciproquement, si δ ′⋆ (q0 , u ⋆ a) = p alors c’est que la transition a atteint un état
puits à un moment, et cela correspondait à une transition non définie dans δ (la
preuve est parfaitement analogue à celle du sens direct).
Dans l’autre cas, si δ ′⋆ (q0 , u ⋆ a) = q où q ∈ Q, alors on sait que δ ′⋆ (q0 , u) =
δ(q0 , u) = q ′ par hypothèse d’induction, et que δ ′ (q, a) = δ(q, a) par définition, donc
δ ′⋆ (q0 , u ⋆ a) = δ ⋆ (q0 , u ⋆ a).
On en déduit donc :

δ ⋆ (q0 , u) ∈ F ⇐⇒ δ ′⋆ (q0 , u) ∈ F

ce qui est le résultat voulu.

Une autre propriété importante sur un automate est celle d’automate émondé. Pour
donner une idée de leur intérêt, reprenons la construction précédente. En complétant un
automate, on ajoute un état puits, mais arriver à cet état signifie forcément que la lecture
du mot n’arrivera jamais à un état acceptant. On peut donc, si on préfère minimiser le
256 Chapitre 12. Langages rationnels

nombre d’états qui interviennent effectivement dans l’automate, décider de supprimer notre
état puits, mais aussi tous les états qui n’arriveront jamais à un état acceptant. De tels
états sont dits co-accessibles. De façon duale, un état accessible est un état qu’on peut
atteindre à la lecture d’un mot et ils sont eux aussi les seuls d’intérêt : en effet, même si un
état mène à un état acceptant, cela n’a pas d’importance si aucun chemin ne mène à lui.
On peut donc donner des définitions similaires à propos d’un automate pour parler de
tous ses états : un automate accessible est un automate dont tous les états sont accessibles
et un automate co-accessible est un automate dont tous les états sont co-accessibles. Un
automate à la fois accessible et co-accessible est appelé un automate émondé, et il est
toujours possible de construire un automate émondé, en ne gardant que les états traversés
lors de traces acceptantes.

Proposition 12.2.4.3. Soit Σ un alphabet et A un automate sur Σ. Alors il existe un


automate A′ émondé qui reconnaît le même langage que A.

Démonstration. On remarque que pour toute trace (q0 , . . . , qn ) acceptante, les états qi , i ∈
{0, . . . , n} sont à la fois accessibles et co-accessibles. Ainsi, si une trace contient un état
non accessible ou non co-accessible, alors elle n’est pas acceptante. Puisqu’un mot u n’est
accepté que lorsqu’il existe une trace acceptante pour u, l’ensemble des mots acceptés n’est
pas changé en ne gardant que les états à la fois accessibles et co-accessibles. On en déduit
que l’automate A′ induit par A en ne prenant que les états intervenant dans des traces
acceptantes reconnaît le même langage que A.

Enfin, parlons de la notion d’automate normalisé. Un tel automate est un automate


dans lequel on peut trouver trois parties : l’état initial, unique, le cœur de l’automate et
l’état terminal. Celui-ci permet d’avoir une forme plus linéaire à un automate.

Définition 12.2.4.4 (Automate normalisé). Soit Σ un alphabet. Un automate normalisé


sur Σ est un automate sur Σ tel qu’il existe un unique état initial, un unique état terminal,
tel qu’il n’existe aucune transition d’un état vers l’état initial et aucune transition depuis
l’état terminal.

Proposition 12.2.4.5. Soit Σ un alphabet et A un automate sur Σ, il existe alors un


automate non déterministe avec ε-transitions, normalisé, reconnaissant le même langage
que A.

Démonstration. On construit l’automate simplement en ajoutant un nouvel état initial q0


et un nouvel état terminal qf et des ε-transitions depuis q0 vers tout état anciennement
initial, et de tout état anciennement terminal vers qf .

Exercice 12.2.4.6. Montrer que l’automate construit précédemment reconnaît le même


langage que A.

On peut aussi procéder à l’élimination des ε-transitions sur un tel automate, mais on
remarque alors un problème : si le langage contient ε, alors il doit y avoir une transition de
q0 à qf étiquetée par ε, ce qui ne peut pas s’éliminer en gardant q0 et qf distincts. On a
donc besoin d’ajouter que le langage reconnu par A ne contient par ε, si l’on veut renforcer
le résultat en donnant un automate sans ε-transitions normalisé.
On montre maintenant que Reco(Σ) ⊆ Ratio(Σ). Pour montrer cette inclusion, on
va construire une expression rationnelle par un processus d’élimination d’états depuis
un automate. Étant donné un automate A, on peut considérer les étiquettes comme des
expressions rationnelles limitées à un caractère. Avec cette considération, effectuer deux
12.2. Automate fini et langage reconnaissable 257

a b ab
transitions −
→→− correspond à une seule transition −→. Cela nous donne alors une procédure
pour regrouper des transitions, et ainsi éliminer des états (puisque l’état du milieu entre
la transition a et la transition b peut alors être supprimé). On a ainsi un algorithme qui
construit un expression rationnelle pour un automate. On remarque que les ε-transitions
sont parfaitement adaptées dans ce contexte, puisque Val(εe) = Val(e), comme on l’attend
d’une ε-transition.
La procédure à suivre est donc la suivante :
• définir une notion plus générale d’automate fini qui permet d’utiliser des expressions
rationnelles pour les étiquettes,
• créer le processus d’élimination d’état,
• montrer que ce processus conserve le langage reconnu.

Définition 12.2.4.7 (Automate fini généralisé). Soit Σ un alphabet, on appelle un


automate fini généralisé un quadruplet (Q, Q0 , δ, F ) tel que :
• Q est l’ensemble fini des états,
• Q0 ⊆ Q est l’ensemble des états initiaux,
• δ : Q × Regex(Σ) ⇀ P(Q) est la fonction de transition généralisée,
• F ⊆ Q est l’ensemble des terminaux.

Définition 12.2.4.8 (Acceptation d’un mot par un automate généralisé). Soit


Σ un alphabet et A un automate généralisé sur Σ. On dit qu’un mot u ∈ Σ⋆ est accepté
(ou reconnu) par A s’il existe une décomposition u = u0 ⋆ · · · ⋆ up−1 et une suite d’états
(q0 , . . . , qp ) telles que :
• q0 ∈ Q0
• qp ∈ F
• ∀i ∈ {0, . . . , p − 1}, ∃e ∈ Regex(Σ), ui ∈ Val(e) ∧ qi+1 ∈ δ(qi , e)

On voit ici qu’une inclusion évidente existe entre les automates non déterministes et les
automates généralisés : il suffit de transformer l’étiquette a par le regex a. On veut donc
maintenant construire le processus d’élimination. On a dit précédemment qu’une suite
de deux transitions peut se transformer en une seule concaténation, ce qui donne l’idée
suivante de transformation :

q0 a q1 b q2 q0 ab q2
7−→

En effectuant cette transformation entre chaque paire de transitions passant par q1 , il


semble donc possible d’éliminer l’état q1 . Cependant, un cas important reste possible : on
peut avoir une boucle sur q1 . Dans ce cas, il est nécessaire d’ajouter pour chaque expression
e étiquetant une boucle, l’expression ae⋆ b au lieu de simplement ab, comme on peut le voir
dans le diagramme suivant :

q0 a q1 b q2 q0 ae⋆ b q2
7−→
258 Chapitre 12. Langages rationnels

Il reste un souci : il est possible qu’il existe plusieurs transitions distinctes entre deux
états donnés. Pour contrer ça, on s’assure d’abord qu’on peut, sans perte de généralité,
considérer qu’un automate généralisé n’a qu’au plus une transition d’un état à un autre.
On introduit une nouvelle notation : on décrit les transitions avec Rδ définie par la
formule suivante :
Rδ (q, e, q ′ ) ≜ q ′ ∈ δ(q, e)
P
On définit aussi la notation ei pour des expressions rationnelles e1 , . . . , en , comme ∅ si
n = 0 et de façon naturelle en itérant l’opération + sinon.

Proposition 12.2.4.9. Soit Σ un alphabet et A un automate généralisé sur Σ. Il existe


alors un automate généralisé A′ , équivalent à A, tel que pour tous états q, q ′ il existe
exactement une expression e telle que Rδ (q, e, q ′ ).

Démonstration. On construit A′ en remplaçant pour tous états q, q ′ les expressions les


reliant par l’unique expressions X
e
e∈Regex(Σ)
Rδ (q,e,q ′ )

Soit un mot u ∈ Σ⋆ . On considère une trace (q0 , . . . , qn ) pour u, une décomposition


u = u0 ⋆ · · · ⋆ un−1 et une suite e0 , . . . , en−1 telles que ui ∈ Val(ei ) et Rδ (qi , ei , ei+1 ), pour
tous i ∈ {0, . . . , n−1}. Cette décomposition est aussi valide dans A′ , puisque si ai ∈ Val(ei ),
ui appartient à la somme des e pour Rδ (qi , e, qi+1 ). Réciproquement, appartenir à la somme
signifie qu’on peut trouver e tel que Rδ (qi , e, qi+1 ) telle que ai ∈ Val(ei ). On en déduit donc
que les traces acceptantes sont identiques dans les deux automates, et comme les états
initiaux et terminaux sont les mêmes, A et A′ sont équivalents.

Remarque 12.2.4.10. On ajoute potentiellement de nombreuses transitions en considérant



des transitions de la forme a − → b, mais celles-ci ont le même rôle que l’absence de transition
(puisque u ∈ Val(∅) n’est pas possible). On peut donc maintenant définir l’unique expression
reliant deux états, ce qu’on écrit e(q, q ′ ). Ainsi accepter un mot u signifie obtenir une
trace (q0 , . . . , qn ) où q0 est initial, qn terminal et une décomposition u = u1 ⋆ · · · un−1 où
ui ∈ Val(e(qi , qi+1 )).

On introduit maintenant le lemme essentiel menant au théorème souhaité : éliminer un


état avec la procédure définie plus tôt ne change pas le langage calculé.

Lemme 12.2.4.11. Soit Σ un alphabet et A un automate généralisé contenant exactement


une transition entre chaque deux états. Soit q un état ni initial ni terminal. On définit
l’automate A′ par :
• QA′ ≜ QA \ {q}
• Q0,A′ ≜ Q0,A′
• e(q1 , q2 ) ≜ e(q1 , q)(e(q, q))⋆ e(q, q2 ) + e(q1 , q2 )
• FA′ ≜ FA
Alors A′ reconnaît le même langage que A.

Démonstration. Si on trouve une trace (q0 , . . . , qn ) acceptante pour un mot u dans A, alors
en supprimant les occurrences de q dans cette trace on obtient une trace acceptante pour
u dans A′ , puisque pour qi−1 , q, qi+1 et deux facteurs ui−1 , ui apparaissant dans la trace
(respectivement la décomposition de u), on peut les remplacer par qi , qi+1 et ui−1 ⋆ ui , et
cela donnera une transition valide pour A′ . Entre deux états qi−1 , qi où q n’apparaît pas,
12.3. Vers le théorème de Myhill-Nérode 259

comme on sait que Val(eA (qi−1 , qi )) ⊆ Val(eA′ (qi−1 , qi )) (car on a une union), on en déduit
le résultat pour le reste de la trace.
Réciproquement, si on a une trace valide pour A′ alors, entre deux états qi , qi+1 , on a
soit un mot ui qui est dans Val(eA (qi , qi+1 )), soit on peut remplacer ces deux états par
(qi , q, qi+1 ) pour faire une trace valide pour A.

On peut donc enfin construire une expression rationnelle à partir d’un automate.
Proposition 12.2.4.12. Soit un langage reconnaissable L, alors il existe une expression
rationnelle e telle que Val(e) = L.
Démonstration. On sait qu’un langage reconnaissable peut être reconnu par un automate
non déterministe avec ε-transitions. On pose donc A un tel automate, reconnaissant L. On
le normalise et lui associe naturellement un automate généralisé A′ qui contient exactement
une transition entre deux de ses états. En utilisant le lemme 12.2.4.11, on sait donc qu’on
peut éliminer n’importe quel état qui n’est ni initial ni terminal : on peut donc itérer ce
lemme pour obtenir un automate généralisé A′′ qui reconnait le même langage L que A′ , et
qui ne contient qu’un état initial et un état terminal (car l’automate a été choisi normalisé).
Notre automate est donc de la forme :

q0 e q1
start

On en déduit donc que pour tout mot u ∈ Σ⋆ , on a l’équvalence suivante :

u ∈ L ⇐⇒ u ∈ Val(e)

Donc il existe e tel que L = Val(e).

On en déduit donc le théorème de Kleene :


Théorème 12.2.4.13 (Kleene). Soit Σ un alphabet. Les classes Ratio(Σ) et Reco(Σ)
sont égales.
Remarque 12.2.4.14. Ces deux équivalences sont algorithmiques : elles permettent de
construire de manière effective, étant donné un automate A, une expression rationnelle
e(A) reconnaissant le même langage, et inversement de construire un automate A(e) depuis
une expression rationnelle e (il faut alors utiliser l’automate union, la concaténation et
l’étoile d’automates pour obtenir l’automate depuis une expression rationnelle).
Nous avons vu de nombreuses constructions à propos des automates. Ces constructions
renforcent le fait qu’un langage reconnaissable est reconnu par de nombreux automates.
On peut donc se demander s’il existe un automate meilleur que les autres, ce qui nous
mène à la prochaine section : la construction d’un automate minimal.
À partir de maintenant, on parlera toujours de langage rationnel pour parler indistinc-
tement de langage reconnaissable ou rationnel, puisque les deux notions sont équivalentes.

12.3 Vers le théorème de Myhill-Nérode


Le théorème au cœur de cette section possède deux aspects : le premier est la notion
d’automate minimal, que nous avons évoqué juste avant. Le deuxième sera notre premier
objectif : donner un critère permettant de prouver qu’un langage est (ou non) rationnel.
Nous allons aborder cet aspect du théorème en premier lieu.
260 Chapitre 12. Langages rationnels

12.3.1 Conditions de rationnalité d’un langage


Pour arriver à ce résultat, on va présenter un premier lemme important : le lemme de
l’étoile. Celui-ci nous indique une condition nécessaire à ce qu’un langage soit rationnel,
mais non suffisante.

Lemme 12.3.1.1 (de l’étoile). Soit un langage rationnel L sur un alphabet Σ. Alors il
existe un entier N ∈ N tel que pour tout mot u ∈ L de longueur supérieure à N , il existe
une décomposition u = vws telle que

∀n ∈ N, vwn s ∈ L

La preuve de ce résultat se base principalement sur l’idée de trouver une boucle dans
la lecture d’un mot : si un mot est assez long, alors il finira par repasser par un état, et on
pourra alors itérer cette boucle. En prenant une trace (q0 , . . . , qf ), passant deux fois par qi ,
on voudra avoir le chemin suivant :

q0 v qi w qi s qf
start

Démonstration. Puisque L est un langage rationnel, on pose A un automate (déterministe,


sans ε-transitions) reconnaissant L. On pose N = |Q| + 1, prouvons que la propriété
souhaitée est vraie pour ce choix de N :
Soit u ∈ L de longueur n ≥ N . Comme u ∈ L, on peut trouver une trace acceptante
(q0 , . . . , qn ) pour u dans A. Comme n ≥ N , on en déduit que n > |Q|, donc par le principe
des tiroirs, on trouve q tel qu’il existe au moins deux occurrences de q dans notre trace. On
coupe alors notre trace selon deux telles occurrences : (q0 , . . . , qi ), (qi , . . . , qj ) et (qj , . . . , qn )
où qi = qj = q. De même, on peut découper u = vws de telle sorte que (q0 , . . . , qi ) est une
trace pour v de q0 à q, (qi , . . . , qj ) est une trace pour w de q à q et (qj , . . . , qn ) est une
trace pour s de q à qn . On en déduit alors qu’en concaténant p fois la suite (qi , . . . , qj ) au
milieu, on obtient une trace acceptante pour vwp s. Ainsi on en déduit :

∀p ∈ N, vwp s ∈ L

D’où le résultat souhaité pour N = |Q| + 1.

Remarque 12.3.1.2. Tout d’abord, il est possible que l’automate ne présente aucune
boucle. Dans ce cas, le langage est fini puisque le nombre de traces possibles l’est. Notre
lemme nous donne alors comme N un nombre jamais atteint par un mot : le lemme est
alors vrai par vacuité.
Un autre point à relever concerne le fait que, dans notre décomposition, on a aussi le
fait que vs ∈ L, car supprimer la boucle conserve aussi la validité de la trace.
Enfin, un point plus important : ce nombre N existe pour un langage L donné, mais il
n’est pas uniforme puisqu’il dépend du choix de l’automate. On pourrait considérer le N
minimal pour tous les automates possibles, mais celui-ci n’a pas de construction explicite
a priori. On va en fait pouvoir montrer que ce N minimal correspond au N associé à un
automate particulier, et qu’on peut donc choisir un N de façon uniforme en fonction de L.

Exercice 12.3.1.3. En utilisant le lemme précédent, montrer que le langage suivante n’est
pas rationnel :
L ≜ {0n 1n | n ∈ N}
12.3. Vers le théorème de Myhill-Nérode 261

On souhaite maintenant affiner le résultat en cherchant une condition non seulement


nécessaire, mais aussi suffisante, permettant donc de caractériser les langages rationnels.
Pour y arriver, on a besoin d’une premier définition : celle de quotient gauche.

Définition 12.3.1.4 (Quotient gauche). Soit Σ un alphabet et L un langage. Pour tout


u ∈ Σ⋆ , on définit le quotient gauche (ou résiduel) de L par u comme :

u−1 L ≜ {v ∈ Σ⋆ | u ⋆ v ∈ L}

Le quotient gauche par u peut se voir au niveau des automates : si on prend un automate
qui reconnaît L, la lecture de u depuis l’état initial mène à un état q, et l’ensemble u−1 L
est l’ensemble des mots acceptés si l’on remplace l’état initial par q, c’est-à-dire l’ensemble
des mots qui finissent la lecture de u en une lecture acceptante. On remarque en particulier
que ε ∈ u−1 L si et seulement si u ∈ L.
Cela motive notre construction syntaxique : les différents u−1 L peuvent naturellement
former une structure d’automates, puisque les transitions peuvent se définir par δ(u−1 L, a) =
(u ⋆ a)−1 L. On a aussi défini les états terminants avec la remarque précédente, et l’état
initial est simplement L = ε−1 L. Un tel automate, qu’on appelle automate syntaxique,
respecte notre définition d’automate lorsque le nombre d’états est fini, ce qui nous donne
en fait le théorème de Myhill-Nérode.

Théorème 12.3.1.5 (Myhill-Nérode). Soit Σ un alphabet et L un langage sur Σ. Le


langage L est rationnel si et seulement si l’ensemble {u−1 L | u ∈ Σ⋆ } est fini.

Démonstration. Supposons que L est rationnel. On trouve un automate A déterministe


reconnaissant L. On construit alors une surjection de l’ensemble des états vers l’ensemble
des u−1 L pour u ∈ Σ⋆ . Pour cela, pour chaque état q ∈ Q on définit l’automate Aq où
l’état initial est remplacé par q. On définit alors l’ensemble

f (q) ≜ {u ∈ Σ⋆ | Aq |= u}

La fonction f est surjective : pour tout u, en prenant qu ≜ δ(q0 , u), on voit que f (qu ) = u−1 L.
Ainsi, comme Q est fini, on en déduit que {u−1 L | u ∈ Σ⋆ } est fini aussi.
Réciproquement, supposons que {u−1 L | u ∈ Σ⋆ } est fini. On construit alors l’automate
syntaxique AL :
• Q ≜ {u−1 L | u ∈ Σ⋆ }
• q0 ≜ L
• δ(u−1 L, a) ≜ (u ⋆ a)−1 L
• F ≜ {q ∈ Q | ε ∈ q}
On veut vérifier que cet automate reconnaît bien L. Par une induction directe sur u ∈ Σ⋆ ,
on prouve que
∀u ∈ Σ⋆ , δ ⋆ (q0 , u) = u−1 L
donc AL |= u si et seulement si ε ∈ u−1 L, ce qui signifie exactement que u ∈ L d’après la
remarque précédente.

Il existe donc, pour tout langage rationnel L, un automate naturellement associé.

Remarque 12.3.1.6. L’une des formulation équivalentes de l’axiome du choix est que
toute surjection f : E → F admet une section, c’est-à-dire une fonction g : F → E telle
que f ◦ g = idF . Pour cette raison, montrer un résultat de finitude (et plus généralement de
262 Chapitre 12. Langages rationnels

cardinalité) en utilisant une surjection est moins fort que d’utiliser une injection, puisqu’on
définit la subpotence par l’existence d’une injection.
Dans notre cas, il est donc légitime de se demander s’il n’est pas possible de considérer
une injection, et la première idée qui vient en tête pour une telle injection est alors, étant
donné un automate qui reconnait L :
f : {u−1 L | u ∈ Σ⋆ } −→ Q
u ⋆
7−→ δ (q0 , u)
Malheureusement, cette fonction n’est pas bien définie, car deux mots peuvent être dans le
même résiduel pour L et pour autant être associé à des états différents. Un exemple d’une
telle situation est l’automate suivant :

q0 0 qf 0, 1

0 0

1
qs 1 q1
start

0, 1 qp 1

Où les états q0 et q1 sont associés au même résiduel. Heureusement, comme dans notre
cas Q est fini, il est possible (par récurrence sur le cardinal de Q) de choisir un état pour
chaque résiduel, et donc de construire une fonction f comme ci-dessus sur un sous-ensemble
de Q.
Remarquons aussi que cette fonction f est bien définie exactement lorsque l’automate
est isomorphe à l’automate syntaxique.
Cela nous donne un moyen de montrer à la fois qu’un langage est rationnel, et qu’un
langage n’est pas rationnel : en exibant une infinité de résiduels, on en déduit directement
qu’un langage n’est pas rationnel, et ce critère est plus précis que le lemme de l’étoile
puisqu’il est exact.
Exercice 12.3.1.7. On considère l’alphabet {a, b, c}, montrer que le langage

L ≜ {an bm cp | (n, m, p) ∈ N3 }

vérifie le lemme de l’étoile, mais n’est pas rationnel.

12.3.2 Automate minimal


On passe maintenant à l’autre aspect du théorème de Myhill-Nérode : l’automate
syntaxique qu’on a construit est en fait l’automate minimal, au sens où tout automate
reconnaissant le même langage contiendra plus d’états.
Pour en donner une idée plus claire, on va introduire les notions de morphismes
d’automates et d’automate quotient. Pour simplifier, on ne parlera que d’automates finis
déterministes complets et accessibles.
12.3. Vers le théorème de Myhill-Nérode 263

Définition 12.3.2.1 (Morphisme d’automate). Soit Σ et A, A′ deux automates


finis déterminstes sur Σ. On appelle morphisme d’automate f : A → A′ une fonction
f : QA → QA′ telle que :
• f (q0,A ) = q0,A′
• pour tous q ∈ QA , a ∈ Σ, f (δA (q, a)) = δA′ (f (q), a)
• pour tout q ∈ FA , f (q) ∈ FA′

Un morphisme d’automate est donc une façon de transformer l’automate A en l’automate


A′ . Remarquons que généralement, il est tout à fait possible de n’avoir des morphismes
que dans un sens, par exemple pour

q1 0, 1
0
0, 1
start q0 start q0′ q1′ 0, 1
1

q2 0, 1

on peut trouver un morphisme de l’automate de gauche vers l’automate de droite, en


prenant f (q1 ) = f (q2 ) = q1′ . Cependant, dans l’autre sens, on ne peut pas conserver la
transition 0, 1 entre q0′ et q1′ en associant une image à q1′ .
Un premier théorème nous dit qu’au niveau des langages reconnus, un morphisme donne
une inclusion.

Proposition 12.3.2.2. Soient A, A′ deux automates sur un alphabet Σ, et f : A → A′ un


morphisme d’automates. Alors
LA ⊆ LA′

Démonstration. On va noter q, q0 , . . . les états de A et q ′ , q0′ , . . . les états de A′ , de même


F et F ′ pour respectivement l’ensemble des états terminaux de A et ceux de A′ .
On voit tout d’abord que pour tout mot u ∈ Σ⋆ , on a

δ ⋆ (f (q0 ), u) = f (δ ⋆ (q0 , u))

et f (q0 ) = q0′ . De plus, comme f est un morphisme, f (F ) ⊆ F ′ , donc

δ ⋆ (q0 , u) ∈ F =⇒ f (δ ⋆ (q0 , u)) ∈ F ′

d’où le résultat.

Un autre résultat, peut-être moins intuitif, est que l’inclusion devient une égalité dès
lors que f (F ) = F ′ (en réutilisant les notations précédentes).

Proposition 12.3.2.3. Si un morphisme d’automates f : A → A′ est tel que f (F ) = F ′ ,


alors LA = LA′ .

Démonstration. On réutilise les notations de la preuve précédente. Par contraposée, sup-


posons que u ∈/ LA . Cela signifie donc que δ ⋆ (q0 , u) ∈ / F ′ puisque
/ F , donc f (δ ⋆ (q0 , u)) ∈
′ ⋆ ′
F = f (F ), donc δ (q0 , u) ∈ ′
/ F par l’argument précédent.

Par contraposée, A |= u =⇒ A |= u, d’où le résultat.
264 Chapitre 12. Langages rationnels

On dit qu’un tel morphisme est surjectif (attention, cela ne signifie pas que le morphisme
est surjectif en tant que fonction Q → Q′ ).
On peut alors prouver que l’automate syntaxique est minimal.
Proposition 12.3.2.4. Soit A un automate fini déterministe complet et accessible sur un
alphabet Σ. Il existe un morphisme surjectif A → ALA et surjectif sur les états.
Démonstration. Comme on sait que A est accessible, on peut trouver pour tout état q ∈ Q
un mot u(q) tel que δ(q0 , u(q)) = q. On définit alors l’image de q comme (u(q))−1 LA .
On montre d’abord que ce choix d’image ne dépend pas du mot u(q) choisi. En effet, si
δ(q0 , u) = δ(q0 , v) alors pour tout w ∈ Σ⋆ :
A |= u ⋆ w ⇐⇒ A |= v ⋆ w
donc u−1 LA = v −1 LA .
Pour un état terminant dans l’automate syntaxique donné, on trouve un mot u tel que
cet état vaut u−1 L. On peut alors considérer δ(q0 , u) pour obtenir un état qui est associé
à cet état, et puisque ε ∈ u−1 L, on en déduit que δ(q0 , u) ∈ F , donc notre morphisme
est surjectif. Il est même surjectif en tant que fonction entre états, puisque l’argument
précédent donne pour tout u−1 L un antécédent par le morhpisme : δ(q0 , u).

Remarque 12.3.2.5. En soi, le point important est la surjectivité sur les états. Cependant,
comme nous allons le voir, l’existence d’un morphisme nous permet de montrer que
l’automate minimal peut être obtenu à partir des autres automates, en regroupant les états.
Nous cherchons maintenant à obtenir une construction explicite de l’automate syntaxique
à partir d’un automate donné. Pour cela, nous introduisons d’abord la notion d’automate
quotient. Ces quotients s’appliquent à ce qu’on va appeler des congruences d’automates,
qui sont des relations d’équivalence compatibles avec la structure d’automate.
Définition 12.3.2.6 (Congruence d’automate). Soit Σ un alphabet, et A un automate
fini déterministe sur Σ. Une relation ∼⊆ Q × Q est appelée une congruence d’automate si
toutes les conditions suivantes sont vérifiées :
• ∼ est une relation d’équivalence.
• ∼ est compatible avec δ :
∀q, q ′ ∈ Q, q ∼ q ′ =⇒ ∀a ∈ Σ, δ(q, a) ∼ δ(q ′ , a)

• ∼ sature F :
∀q, q ′ ∈ Q, q ∼ q ′ =⇒ (q ∈ F ⇐⇒ q ′ ∈ F )
On peut alors définir l’automate quotient A/ ∼ par :
• son ensemble d’états est Q/ ∼.
• son état initial est la classe de q0 .
• pour tout q ∈ Q et a ∈ Σ, δ(q, a) = δ(q, a)
• l’ensemble des états terminaux est {q f | qf ∈ F }.
Remarque 12.3.2.7. La compatibilité est essentielle pour que cette définition ait du sens,
puisque l’on veut que le choix de q dans une classe ne change pas le résultat de δ(q, a) :
c’est le cas ici puisque si q ∼ q ′ alors δ(q, a) ∼ δ(q ′ , a). Pour les états terminaux, dire qu’un
ensemble d’états est terminal semble changer le sens de l’automate lorsque l’ensemble
n’est pas constitué que d’états terminaux, ce qui motive notre propriété de saturation
(remarquons que la condition de saturation aurait pu se limiter à une implication, puisque
la relation est symétrique dans tous les cas).
12.3. Vers le théorème de Myhill-Nérode 265

On prouve alors que le quotient, comme attendu puisqu’on regroupe des états de même
comportement, ne change pas le langage reconnu.
Proposition 12.3.2.8. Soit un automate A et une congruence d’automate sur A. Alors

LA = LA/∼

Démonstration. Par une récurrence sur u qu’on ne détaille pas, on vérifie que

∀u ∈ Σ⋆ , δA/∼

(q0 , u) = δ ⋆ (q0 , u)

Si δ ⋆ (q0 , u) ∈ F alors δ ⋆ (q0 , u) ∈ FA/∼ . Réciproquement, si δ ⋆ (q0 , u), alors on sait qu’il
existe q dans cette classe tel que q ∈ F , et comme ∼ sature F , on en déduit que δ ⋆ (q0 , u) ∈ F .
On a donc l’égalité des deux langages.

On donne un second résultat, reliant la congruence et les morphismes.


Proposition 12.3.2.9. Soient A, A′ deux automates sur le même alphabet Σ et f : A → A′
un morphisme surjectif. Alors f définit sur A une congruence d’automate par :

q ∼f q ′ ≜ f (q) = f (q ′ )

Démonstration. On veut montrer que ∼f définit une congruence. Il est clair que c’est une
relation d’équivalence, on prouve donc les deux autres points :
• si f (q) = f (q ′ ) et a ∈ Σ, alors

f (δ(q, a)) = δ(f (q), a)


= δ(f (q ′ ), a)
= f (δ(q ′ , a))

donc ∼f est compatible avec δ.


• si f (q) = f (q ′ ) et q ∈ F , alors f (q) ∈ f (F ), donc f (q ′ ) ∈ f (F ), d’où par surjectivité
de f que q ′ ∈ F .
Ainsi ∼f est une congruence.

Vu la forme de ∼f , il est clair que A/∼f est isomorphe à A′ (en prenant pour notion
d’isomorphisme l’existence d’un morphisme réciproque). On en déduit donc qu’on peut
construire ALA directement depuis A par un quotient : il se trouve que ce quotient peut
être décrit de façon très concrète.
Définition 12.3.2.10 (Congruence de Nérode). Soit A un automate sur un alphabet
Σ. On définit la congruence de Nérode sur A par :

q ≡ q ′ ≜ ∀u ∈ Σ⋆ , δ ⋆ (q, u) ∈ F ⇐⇒ δ ⋆ (q ′ , u) ∈ F

On voit déjà que si on prend un mot u tel que δ(q0 , u) = q et v tel que δ(q0 , v) = q ′ ,
alors q ≡ q ′ revient à dire que u−1 LA = v −1 LA , ce qui confirme que le quotient de A par
≡ nous donne l’automate syntaxique. Pour l’instant, notre construction de l’automate ne
peut pas être automatisée : on a besoin de tester tous les mots pour déterminer si q ∼ q ′ .
Pour combler cette lacune, on définit les approximations de la congruence de Nérode :
Définition 12.3.2.11 (Approximation de la congruence de Nérode). On définit
l’approximation n de la congruence de Nérode, notée ≡n , par

q ≡n q ′ ≜ ∀u ∈ Σ<n , δ ⋆ (q, u) ∈ F ⇐⇒ δ ⋆ (q ′ , u) ∈ F
266 Chapitre 12. Langages rationnels

L’approximation consiste donc en la considération des premiers mots seulement. On intro-


duit maintenant un lemme essentiel, permettant de calculer effectivement cette congruence
pour tout n.

Lemme 12.3.2.12. Soit un automate A sur un alphabet Σ, deux états q, q ′ de A et n ∈ N.


On a la relation suivante :

q ≡n+1 q ′ ⇐⇒ q ≡n q ′ ∧ ∀a ∈ Σ, δ ⋆ (q, a) ≡n δ ⋆ (q ′ , a)

Démonstration. Si q ≡n+1 q ′ , alors pour tout a ∈ Σ et u ∈ Σ<n , on a l’équivalence


δ(q, u ⋆ a) ∈ F ⇐⇒ δ(q ′ , u ⋆ a) ∈ F par hypothèse. Mais alors, cela se réécrit en

δ ⋆ (δ(q, a), u) ∈ F ⇐⇒ δ ⋆ (δ(q ′ , a), u) ∈ F

On en déduit que δ(q, a) ≡n δ(q ′ , a). Réciproquement, pour u ∈ Σ<n+1 , on peut éliminer
le cas où u = ε qui est direct et considérer que u = v ⋆ a où |v| < n, ce qui nous permet
d’utiliser l’hypothèse pour déduire que

δ ⋆ (q, v ⋆ a) ∈ F ⇐⇒ δ ⋆ (q ′ , v ⋆ a)

c’est-à-dire q ≡n+1 q ′ .

Le deuxième lemme essentiel nous dit que l’algorithme effectué en construisant cette
suite de congruence, lorsqu’il atteint un point stationnaire, donne en résultat la congruence
de Nérode.

Lemme 12.3.2.13. Soit un automate A sur un alphabet Σ. Si pour n ∈ N, les relations


≡n et ≡n+1 coïncident, alors pour tout k ∈ N, ≡n+k et ≡ coïncident.

Démonstration. Supposons que pour tous q, q ′ , on ait

q ≡n q ′ ⇐⇒ q ≡n+1 q ′

alors par induction sur k, on prouve que ≡n+k coïncide avec ≡n :


• c’est évident pour k = 0.
• supposons que ≡n+k et ≡n coïncident. Alors, par le lemme 12.3.2.12, on voit que
≡n+k+1 et ≡n+1 coïncident, mais par hypothèse ≡n+1 et ≡n coïncident, d’où le fait
que ≡n+1 et ≡n coïncident.
On veut maintenant prouver que ≡n et ≡ coïncident. Soit deux états q, q ′ tels que
q ≡n q ′ et un mot u ∈ Σ⋆ . Si |u| < n alors par définition δ(q, u) ∈ F ⇐⇒ δ(q ′ , u) ∈ F .
Sinon, alors q ≡|u| q ′ puisque ≡n coïncide avec ≡k pour tout k > n, d’où le résultat. La
réciproque est immédiate.

On a donc un algorithme permettant de calculer l’automate minimal d’un automate


complet : on construit la congruence de Nérode par approximations successives grâce au
lemme 12.3.2.12 jusqu’à obtenir une partition stable des états, et le quotient est alors
directement l’automate minimal.
12.3. Vers le théorème de Myhill-Nérode 267

12.3.3 Les langages reconnus par monoïde


Pour clore ce chapitre, revenons aux considérations algébriques énoncées au début.
Dans celles-ci, on a vu qu’il était possible d’associer un langage à un monoïde en utilisant
la propriété universelle du monoïde libre. Nous allons maintenant prouver qu’en réalité, les
langages associés à des monoïdes finis sont exactement les langages rationnels.
On commence par prouver un premier sens : les langages reconnus par monoïdes sont
aussi reconnus par automates.

Proposition 12.3.3.1. Soit Σ un alphabet, M un monoïde (de produit · et de neutre e)


et L un langage reconnu par une fonction h : Σ → M et S ⊆ M . Alors L ∈ Reco(Σ).

Démonstration. On construit l’automate A suivant :


• Q=M
• q0 = e
• δ(q, a) = q · f (a)
• F =S
Une récurrence immédiate sur u permet de prouver que

|u|−1
Y
∀u ∈ Σ⋆ , δ(q0 , u) = ui
i=0

Cette valeur est exactement celle de h̃(u), et être reconnu par A correspond exactement à
appartenir à S, d’où l’égalité de langage.

Il nous reste donc à construire un monoïde à partir d’un automate. Pour cela, on va
utiliser la construction du monoïde des transitions.

Définition 12.3.3.2 (Monoïde des transitions). Soit Σ un alphabet et A un automate


fini déterministe complet reconnaissant un langage L. On définit le monoïde des transitions
de A, qu’on notera MA , par :
• les éléments du monoïde sont les relations binaires R ⊆ Q × Q.
• la multiplication est la composition de relations :

R · R′ ≜ {(x, z) | ∃y ∈ Q, xRy ∧ yRz}

• l’élément neutre est la relation

∆Q ≜ {(q, q) | q ∈ Q}

Exercice 12.3.3.3. Prouver que MA est bien un monoïde.

Les éléments du monoïde sont les relations binaires. Cependant, les éléments d’impor-
tances sont plus précisément les relations telles que pour tout couple (q, q ′ ), on a un chemin
de q vers q ′ dans A. On peut donc simplement prendre la relation (q, q ′ ) ≜ δ(q, a) = q ′
paramétrée par a pour obtenir à travers δ ⋆ les relations contenant les chemins entre états
paramétrés par un mot u donné. Un mot est acceptant quand l’état q0 est relié à un état
terminal, donc le choix de S est celui des relations incluant un couple (q0 , qf ) où qf ∈ F .
On en vient donc au résultat à proprement parler.
268 Chapitre 12. Langages rationnels

Proposition 12.3.3.4. Soit un automate fini déterministe complet A reconnaissant un


langage L sur un alphabet Σ, alors la fonction

h : Σ −→ MA
a 7−→ {(q, q ′ ) | δ(q, a) = q ′ }

et la partie
S ≜ {R ∈ MA | R ∩ ({q0 } × F ) ̸= ∅}
reconnaissent le langage L.

Démonstration. Par induction sur la longueur de u, on montre que :

∀u ∈ Σ⋆ , h̃(u) = {(q, q ′ ) | δ ⋆ (q, u) = q ′ }

• on sait que h̃(ε) est l’élément neutre du monoïde, et que cet élément est {(q, q)}, or
c’est aussi l’ensemble décrit par δ ⋆ (q, ε) = q ′ .
• supposons que l’égalité est vraie pour un mot u, et soit a ∈ Σ. Alors

h̃(u ⋆ a) = h(u) · {(q, q ′ ) | δ(q, a) = q ′ }


= {(q, q ′ ) | δ ⋆ (q, u) = q ′ } · {(q, q ′ ) | δ(q, a) = q ′ }
= {(q, q ′′ ) | ∃q ′ , δ ⋆ (q, u) = q ′ ∧ δ(q ′ , a) = q ′′ }
= {(q, q ′′ ) | δ(δ ⋆ (q, u), a) = q ′′ }
= {(q, q ′ ) | δ ⋆ (q, u ⋆ a) = q ′ }

D’où le résultat par induction. On sait donc que h̃(u) ∈ S est équivalent à ce qu’il existe un
couple (q0 , qf ) ∈ {(q, q ′ ) | δ ⋆ (q, u) = q ′ } où qf ∈ F , ce qui revient à dire que δ ⋆ (q0 , u) ∈ F ,
donc à ce que A accepte u. Ainsi MA reconnaît le même langage que A.
Chapitre 13
Grammaires hors contexte et langages
algébriques

Table des sous-matières


13.1 Grammaire hors contexte . . . . . . . . . . . . . . . . . . . . . . 269
13.1.1 Premières définitions . . . . . . . . . . . . . . . . . . . . . . . . . 270
13.1.2 Grammaires sous formes particulières . . . . . . . . . . . . . . . 273
13.2 Arbres de dérivation, automates à pile . . . . . . . . . . . . . . . 277
13.2.1 Ambigüité et dérivations . . . . . . . . . . . . . . . . . . . . . . . 277
13.2.2 Automates à pile . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

ans le chapitre précédent, nous avons étudié les expressions rationnelles. Celles-ci sont
D particulièrement simples : leur forme est limitée à l’étoile, l’union et la concaténation.
On a vu par exemple que le langage {an bn }n∈N n’est pas rationnel. Un tel langage paraît
pourtant intéressant, d’où la volonté de construire un formalisme plus riche que celui des
expressions rationnelles.
Les langages algébriques, encore appelés langages hors contextes, sont les langages nés
d’un tel formalisme. Ce chapitre est dédié à l’étude de ce formalisme, qui est celui des
grammaires hors contexte. Nous verrons ces grammaires ainsi que les automates associés
aux langages algébrique : les automates à pile. Contrairement aux automates finis, les
automates à pile ont une forme de mémoire, sous la forme d’une pile de symboles.

13.1 Grammaire hors contexte


Le formalisme des grammaires hors contexte est particulièrement proche des fondements
de l’informatique : c’est par exemple ce formalisme qui est utilisé pour décrire des langages
de programmation.
L’idée d’une grammaire est de permettre de construire des mots en utilisant des règles
de formation. Pour donner un exemple, essayons de générer une expression arithmétique :
une telle expression est une somme, un produit ou un entier. Une première tentative est
donc d’utiliser des BNF, comme au chapitre 1, ce qui donne alors :

e, e′ ::= n | e + e′ | e × e′

Un souci apparaît alors : comment lire 2 + 3 × 4 ? Dans les premiers chapitres, nous avons
décidé de considérer que dans un tel cas, il y a deux expressions possibles (2 + 3) × 4 et

269
270 Chapitre 13. Langages algébriques

2 + (3 × 4) et l’une des deux est privilégiée par des règles de priorité. Une autre façon de
faire, qui est celle que l’on formalise à l’aide des grammaires hors contexte, est d’inclure
explicitement le parenthésage dans la construction d’une expression. En faisant cela, on
souhaite obtenir une description de nos expressions uniquement comme un sous-ensemble
de (N ∪ {(, ), +, ×})⋆ .

Remarque 13.1.0.1. En réalité, on parle aussi de BNF dans le cas de la présentation


qui sera donnée dans la suite de ce chapitre des grammaires hors contextes. Dans ce livre,
on considérera toutefois qu’une BNF sera une spécification moins formelle d’un ensemble
inductif. On gardera l’expression « grammaire hors contexte » dans le cas où l’on veut
parler d’un ensemble de mots décrit par des règles syntaxiques.

13.1.1 Premières définitions


Donnons directement la définition d’une grammaire hors contexte, qui est l’objet que
nous manipulerons pour le reste de la section 13.1. Comme nous n’utiliserons par d’autres
grammaires ici, on parlera directement de grammaire pour signifier « grammaire hors
contexte ».

Définition 13.1.1.1 (Grammaire hors contexte). Soit Σ un alphabet. On appelle


grammaire hors contexte sur Σ un triplet (Γ, →, S) où Γ est un alphabet disjoint de Σ,
→⊆ Γ × (Γ ∪ Σ)⋆ et S ∈ Γ. Dans ce cadre, on appelle les éléments de Γ des symboles non
terminaux (ou simplement des non terminaux) et les éléments de Σ des symboles terminaux
(ou simplement des terminaux). On appelle → les règles de la grammaire.

Une grammaire hors contexte consiste donc en la donnée des symboles qui seront
d’intérêt, d’un symboles donné et de règles permettant de construire des mots en remplaçant
des symboles non terminaux. On souhaite donc pouvoir, par exemple, faire la réécriture

E+3→2+3

pour remplacer le non terminal E (représentant une expression) en le terminal 2. Cela nous
mène donc à la notion de dérivation.

Définition 13.1.1.2 (Dérivation). Soit une grammaire G. On appelle dérivation en un


pas de u ∈ (Σ ∪ Γ)⋆ vers u′ ∈ (Σ ∪ Γ)⋆ la relation, qu’on notera u → u′ , définie par le fait
qu’il existe une décomposition de u et u′ de la forme

u = vAw u′ = vbw

où A → b, c’est-à-dire (A, b) ∈→. On appelle dérivation de u vers u′ la clôture réflexive et


transitive →⋆ de la dérivation en un pas.

Remarque 13.1.1.3. On parlera indifféremment de dérivation de u vers v pour la relation


u →⋆ v et pour une suite u0 , . . . , un telle que u0 = u, un = v et ∀i ∈ {0, . . . , n−1}, ui → ui+1 .
L’existence d’une telle suite étant équivalente à u →⋆ v, cet abus de langage ne pose aucun
problème au niveau logique.

Nous introduisons quelques règles de notations pour rendre les définitions de grammaires
plus lisibles.
13.1. Grammaire hors contexte 271

Notation 13.1.1.4. Pour décrire une grammaire, on précisera son alphabet Σ, mais Γ
restera implicite : on déduit Γ de l’ensemble des non terminaux utilisés lors de l’écriture
des règles. Pour écrire les règles, on donnera la syntaxe suivante :
S → u1 | · · · | un
A → v1 | · · · | up
..
.
On notera toujours S pour l’élément S ∈ Γ. De plus, en pratique, on pourra utiliser
des mots-clés plutôt que des lettres comme éléments de Γ : cela permet de clarifier les
constructions, mais du côté théorique on suppose que ces mots-clés sont simplement des
symboles.
Donnons maintenant deux exemples fondamentaux : les expressions arithmétiques et
les mots de Dyck.

Exemple. On définit la grammaire Garith comme suit :


• Σ = N ∪ {(, ), +, ×}
• Les règles sont :
S → MultiplicativeExpr +S | MultiplicativeExpr
MultiplicativeExpr → Atom × MultiplicativeExpr | Atom
Atom → n | (S)

On définit la grammaire GD comme suit :


• Σ=2
• Les règles sont :
S → S0S1 | ε

Donnons aussi des exemples de dérivations, en utilisant nos deux premières grammaires.
Une première dérivation, dans Garith :
S → MultiplicativeExpr +S → MultiplicativeExpr + MultiplicativeExpr
→ Atom + MultiplicativeExpr → Atom + Atom × MultiplicativeExpr
→ 2 + Atom × MultiplicativeExpr
→ 2 + (S) × MultiplicativeExpr → 2 + (S) × Atom → 2 + (S) × 3
→ 2 + (MultiplicativeExpr) × 3 → 2 + (Atom × MultiplicativeExpr) × 3
→ 2 + (4 × MultiplicativeExpr) × 3
→ 2 + (4 × 5) × 3
Une autre dérivation, dans GD :
S → S0S1 → S0S10S1 → 0S10S1 → 0S0S110S1 → 00S110S1
→ 00S110S0S11 → 00S1100S11 → 00S1100S0S111 → 00S11000S111
→2 0011000111
Dans ces deux dérivations, nous voyons une différence importante entre le mot final et
les mots précédents : le mot final ne contient plus de symbole non terminal (d’où l’utilisation
du mot « terminal »). On a ainsi deux notions de langages qui sont naturellement associées
à une grammaire.
272 Chapitre 13. Langages algébriques

Définition 13.1.1.5 (Langage engendré par une grammaire). Soit G une grammaire.
On définit les deux langages engendrés par G :
⋆ ⋆ ⋆
L
dG ≜ {u ∈ (Σ ∪ Γ) | S → u} LG ≜ L
dG∩Σ

Lorsque l’on parle du langage engendré par G, on désigne l’ensemble LG .

Définition 13.1.1.6 (Langage hors contexte). Soit Σ un alphabet. On appelle classe


des langages algébrique (ou hors contexte) la classe de langages sur Σ définie par

Calg ≜ {LG | G grammaire sur Σ}

Remarque 13.1.1.7. L’expressoin « hors contexte » vient du fait que les grammaires que
nous utilisons n’utilisent que des règles sans contexte d’application : on se contente de
remplacer des non terminaux dès qu’ils apparaissent, mais on n’a pas de règles telles que,
par exemple :
uAB → CBA
où plusieurs symboles apparaissent à gauche de → et forcent donc à avoir un contexte de
dérivation.

Exercice 13.1.1.8. Soit un alphabet Σ. Montrer que le langage des palindromes sur Σ,
c’est-à-dire l’ensemble

Lpalindrome ≜ {u ∈ Σ⋆ | ∀i ∈ {0, . . . , |u| − 1}, ui = u|u|−i }

est un langage algébrique. Est-il rationnel ?

Un point essentiel avec les grammaires hors contextes est que, comme la seule donnée
importante lors d’une dérivation est le symbole que l’on décide de dériver, il est possible
de séparer des dérivations en coupant arbitrairement un mot. Cela nous mène au lemme
suivant, qualifié de fondamental dans [Car].

Lemme 13.1.1.9. Soit un alphabet Σ, une grammaire G sur Σ et u ∈ (Σ ∪ Γ)⋆ . Il existe


alors une dérivation u →k v de longueur k vers un mot v ∈ (Σ ∪ Γ)⋆ si et seulement s’il
existe deux décompositions (
u = u1 ⋆ u2
v = v1 ⋆ v 2
et deux dérivations
u1 →k1 v1 u2 →k2 v2
telles que k1 + k2 = k.

Démonstration. Dans un sens, prenons deux dérivations u1 → v1 et u2 → v2 . Comme on


peut former la dérivation u1 ⋆ u2 → v1 ⋆ u2 → v1 ⋆ v2 , une récurrence sur k1 et k2 nous
permet de déduire qu’on peut composer deux dérivations parallèles.
Dans l’autre sens, on procède par récurrence sur k pour montrer que si u →k v alors il
existe une décomposition v = v1 ⋆ v2 et k1 , k2 tels que k1 + k2 = k, u1 →k1 v1 et u2 →k2 v2 :
• dans le cas où u →0 u, alors on pose

v1 ≜ u1 v2 ≜ u2

et on a le résultat.
13.1. Grammaire hors contexte 273

• supposons que l’implication est vraie pour k. Si on a une dérivation u →k+1 v, alors
on peut trouver w tel que u →k w → v, et décomposer w en w1 ⋆ w2 , de telle sorte
que
u1 →k1 w1 u2 →k2 w2
et k1 + k2 = k. De plus, on sait par définition de w → v qu’il existe une lettre de w
qui sera remplacée en appliquant une règle de notre grammaire. Cette lettre est soit
dans w1 , auquel cas on pose v1 le résultat de cette dérivation en w1 et v2 ≜ w2 pour
obtenir le résultat, soit dans w2 et un raisonnement analogue s’applique.
On en déduit l’équivalence souhaitée.

13.1.2 Grammaires sous formes particulières


Pour manipuler des grammaires, il est souvent utile de les transformer pour leur donner
une forme plus pratique. Nous allons ici traiter de quatre formes importantes que peuvent
avoir des grammaires : la forme réduite, la forme propre, la forme normale de Chomsky et
la forme normale de Greibach.
Nous reprenons assez directement les preuves données dans [Car], et décidons donc de
conserver la mise en avant de la possibilité d’implémenter de vrais algorithmes à partir des
preuves données.
Dans le cas des automates, nous avons vu qu’il était possible de considérer des automates
émondés, c’est-à-dire tels que tout état est à la fois accessible et co-accessible. Dans le cas
d’une grammaire, la notion analogue est celle de forme réduite : toute variable dans Γ peut
apparaître dans une dérivation produisant un mot.
Définition 13.1.2.1 (Forme réduite). Soit Σ un alphabet. On dit qu’une grammaire
(Γ, →, S) sur Σ est sous forme réduite si les deux conditions suivantes sont vérifiées :
• pour tout A ∈ Γ, il existe u tel que A →⋆ u.
• pour tout A ∈ Γ, il existe u, v tels que S →⋆ uAv.
Comme avec les automates, il est possible de se ramener à une grammaire sous forme
réduite sans changer le langage engendré.
Proposition 13.1.2.2. Soit un alphabet Σ et une grammaire G = (Γ, →, S). Il existe
Γ′ ⊆ Γ tel que, en notant G′ = (Γ′ , →, S), G est sous forme réduite et LG = LG′ .
Démonstration. Pour construire notre nouvelle grammaire, on procède en éliminant des
symboles ne respectant pas la condition de réduction. On construit donc un nouvel ensemble
de symboles ∆ ⊆ Σ ∪ Γ par la suite suivante :
(
∆0 ≜ Σ
∆n+1 ≜ ∆n ∪ {A ∈ Γ | A → w et w ∈ (∆n )⋆ }
Il est clair que (∆n ) est une suite d’ensembles finis croissante et majorée par Σ ∪ Γ, donc
elle est stationnaire. On définit donc ∆ comme l’union des ∆n .
On peut prouver par récurrence sur n que pour tout A ∈ Γ, A ∈ ∆n si et seulement s’il
existe u ∈ Σ⋆ tel que A →⋆ u avec une réduction de taille inférieure à n, en utilisant la
définition de ∆n+1 : ainsi, tout symbole dans ∆ peut produire un mot de Σ⋆ .
On construit maintenant une deuxième suite, à partir de ∆, pour ne considérer que
les variables qui peuvent être atteintes par des dérivations depuis S. On définit la suite
d’ensembles finis (Θn ) suivantes :
(
Θ0 ≜ {S}
Θn+1 ≜ Θn ∪ {A ∈ ∆ | ∃S ′ ∈ Θn , ∃u, v ∈ ∆⋆ , S ′ → uAv}
274 Chapitre 13. Langages algébriques

Comme précédemment, on considère Θ l’union finie des Θn car on a une suite croissante
majorée d’ensembles finis.
On peut prouver que pour tout A ∈ Σ \ ∆, A ∈ Θn si et seulement s’il existe deux mots
u, v ∈ ∆⋆ et une dérivation S →⋆ uAv de taille inférieure à n, dont tous les mots de la
dérivation appartiennent à ∆⋆ , là encore par récurrence sur n.
On définit donc
Γ′ ≜ Θ \ Σ
et par les deux arguments précédents on sait que la grammaire induite sur Γ′ est sous
forme réduite.
Pour montrer que les deux grammaires engendrent les mêmes mots, il nous suffit de
montrer que toute dérivation S →⋆ u faite dans (Γ, →, S) fonctionne aussi dans (Γ′ , →, S)
(l’autre étant vraie par inclusion). On remarque que puisque la dérivation ne contient que
des non terminaux qui peuvent produire un mot, tous les non terminaux apparaissant dans
la dérivation S →⋆ u sont des éléments de ∆. De plus, ils sont clairement dans Θ, donc ils
sont dans Γ′ . On en déduit l’égalité des deux langages.

Remarque 13.1.2.3. Les définitions de (∆n ) et (Θn ) donnent un algorithme pour trouver
les états à conserver pour avoir une grammaire sous forme réduite. Si l’on souhaite
implémenter ces suites d’ensembles, il faut aussi se demander comment tester à quel moment
ces deux suites se stabilisent : on voit en fait que dès que ∆n+1 = ∆n (respectivement
Θn+1 = Θn ) alors la suite devient stationnaire. Il suffit donc de vérifier lors de la construction
de ∆n+1 (respectivement de Θn+1 ) si des éléments ont été ajoutés ou non.

La deuxième forme à introduire est la forme propre.

Définition 13.1.2.4 (Forme propre). Soit Σ un alphabet. Une grammaire (Γ, →, S) sur
Σ est dite sous forme propre s’il n’existe aucune règle de la forme A → ε ni A → B où
A, B ∈ Γ.

Si l’on souhaite mettre une grammaire sous forme propre, il semble que dériver le mot ε
devient impossible : c’est effectivement le cas, mais il est possible de passer une grammaire
sous forme propre en ne perdant que ce potentiel mot. Pour le prouver, nous avons d’abord
besoin d’introduire la notion de substitution.

Définition 13.1.2.5 (Substitution). Soient Σ, Γ deux alphabets. On appelle substitution


de Σ vers Γ un morphisme de monoïde σ : Σ⋆ → P(Γ⋆ ) où P(Γ⋆ ) est muni de la loi de
produit des langages (et du langage {ε} comme élément neutre).

Proposition 13.1.2.6. Soit Σ un alphabet et G = (Γ, →, S) une grammaire sur Σ. Alors


il existe une grammaire G′ sur Σ sous forme propre telle que LG′ = LG \ {ε}.

Démonstration. Tout d’abord, on suppose (quitte à utiliser la proposition 13.1.2.2) que


notre grammaire est sous forme réduite.
On commence par chercher à supprimer les règles de la forme A → ε. Pour cela, on
introduit d’abord l’ensemble ∆ des symboles qui peuvent produire ε, en donnant la suite
(∆n ) suivante : (
∆0 ≜ {A ∈ Γ | A → ε}
∆n+1 ≜ ∆n ∪ {A ∈ Γ | ∃u ∈ (∆n )⋆ , A → u}
Comme cette suite est stationnaire (toujours par les mêmes arguments), on définit ∆ l’union
croissante finie de ces ensembles. On peut montrer par récurrence que ∆n est exactement
l’ensemble des symboles A ∈ Γ tels que A →⋆ ε. On définit maintenant la substitution de
13.1. Grammaire hors contexte 275

Σ ∪ Γ dans lui-même en donnant l’image de chaque élément de Σ ∪ Γ (et en étendant cette


fonction à (Σ ∪ Γ)⋆ par le théorème 12.1.2.4) :

σ(a) ≜ {a} si a ∈ Σ


σ(A) ≜ {A, ε} si A ∈ ∆

σ(A) ≜ {A} si A ∈ Γ \ ∆

Cette substitution nous permet de retenir quels mots doivent être ajoutés lorsque l’on
supprime les règles ε. En effet, si l’on supprime directement chaque règle de la forme A → ε,
on risque de perdre des dérivations qui feraient intervenir une dérivation de cette forme,
entourée d’autres dérivations. On décide donc d’ajouter à nos règles toutes les règles de
la forme A → u où u a été obtenu par une dérivation depuis A qui fait potentiellement
apparaître un ε.
On définit donc la relation →′ comme la plus petite relation qui contient → privé de
l’ensemble {(A, ε) | A ∈ Γ}, et qui contient chaque règle A →′ u où A → w et u ∈ σ(w)\{ε}
(comme l’ensemble des règles A → w est fini, l’ensemble des règles ajoutées dans →′ est lui
aussi fini).
On veut prouver qu’un mot non vide est dérivable pour une relation si et seulement s’il
l’est pour l’autre.
Commençons par prouver que si A →′ u, alors A →⋆ u dans le cas où u = ̸ ε. Pour cela,
il nous suffit de montrer que pour toute règle A → w et u ∈ σ(w) \ {ε}, on a A →⋆ u. Pour
cela, on procède par récurrence sur la taille de w :
• si A → w et w = ε, alors u ∈ σ(w) \ {ε} est absurde, donc le cas est traité.
• supposons que A →⋆ u pour tout A et tout u ∈ σ(w) \ {ε} avec w de taille n. Soit
w′ = w ⋆ a, où a est une lettre, A un non terminal et u ∈ σ(w′ ) \ {ε} tels que A → u.
On distingue deux cas :
◦ si a ∈ ∆, alors σ(w′ ) = σ(w) ∪ σ(w){a}, et on en déduit donc que soit u ∈
σ(w) \ {ε} (auquel cas la propriété est vérifiée par hypothèse de récurrence),
soit u = u′ a et u′ ∈ σ(w) \ {ε}, et la propriété est alors encore vérifiée.
◦ si a ∈/ ∆, alors σ(w′ ) = σ(w), donc l’hypothèse de récurrence s’applique directe-
ment.

Ainsi → ne rajoute pas de mots dérivés.
Pour le sens réciproque, il nous faut procéder par induction sur la longueur d’une
dérivation pour prouver que si A →⋆ u alors A→′ ⋆ u, où u est non vide :
• le seul mot dérivable en 0 étape est S dans les deux cas
• supposons l’implication prouvée pour le cas d’une dérivation en n étapes, et soient
A, u tels que A →n+1 u, montrons que A→′ ⋆ u. Par construction on peut considérer
que A →n vA′ w → vuw avec A′ → u. Par hypothèse d’induction, on sait donc que
A→′ n vA′ w ; deux cas se présentent alors :
◦ si u = ε, alors considérons le mot α tel que α → vA′ w. On peut le décomposer
en α = βA′′ γ et décomposer nos deux mots v, w en v = βv ′ et w = w′ γ. On voit
alors que v ′ w′ ∈ σ(v ′ A′ w′ ), donc A′′ →′ v ′ A′ w′ . Il vient finalement que α →′ u.
◦ si u est non vide, alors comme u ∈ σ(u) (le résultat se prouve par une induction
directe sur u, puisque σ(a) contient a pour toute lettre a), on en déduit que
vA′ w → u.
Les deux langages engendrés sont donc les mêmes, à l’exception potentielle de ε.
Il nous reste maintenant à supprimer les règles de la forme A → BC. Pour cela, on
supprime simplement les telles règles, et on ajoute toutes les règles de la forme A → w où
A →⋆ B et B → w. Le langage reconnu ne change donc pas.
276 Chapitre 13. Langages algébriques

Remarque 13.1.2.7. Il est commun, dans la pratique, de ne pas avoir besoin du mot vide
lorsque l’on utilise une grammaire hors contexte. Dans le cas par exemple des expressions
arithmétiques, des termes sur une signature ou des formules sur une signature, il n’y a
aucun besoin d’inclure le mot vide. On peut néanmoins relever des langages comme celui
de Dyck contenant le mot vide.
Introduisons aussi la forme normale de Chomsky.
Définition 13.1.2.8 (Forme normale de Chomsky). Soit un alphabet Σ et une
grammaire G ≜ (Γ, →, S) sur Σ. On dit que G est sous forme normale de Chomsky lorsque
toutes ses règles sont de l’une des deux formes :
• A → BC avec B, C ∈ Γ
• A → a où a ∈ Σ
Proposition 13.1.2.9. Soit Σ un alphabet et G ≜ (Γ, →, S) une grammaire sur Σ. Il
existe une grammaire G′ sous forme normale de Chomsky telle que LG′ = LG \ {ε}.
Démonstration. On commence par supposer que G est sous forme propre (d’où le fait qu’on
perde potentiellement ε). Nous allons maintenant procéder en deux étapes : le premier
objectif est de transformer toutes les règles en des règles avec un terminal ou uniquement
des non terminaux.
On pose un ensemble Γ′ ≜ {Aa | a ∈ Σ} avec une bijection avec l’ensemble Σ. Soit
la substitution σ définie par σ(A) = {A} pour A ∈ Γ et σ(a) = {Aa } pour a ∈ Σ.
Cette substitution indique, étant donné un mot u, la version de u où tous les a ∈ Σ ont
été remplacés par les non terminaux Aa respectifs. Notre grammaire modifiée est alors
(Γ ∪ Γ′ , →′ , S) où →′ est définie par :
(
Aa →′ a
A →′ σ(u)

pour tout a ∈ σ et (A, u) ∈→. On peut vérifier que les mots engendrés ne changent pas,
puisque σ(u)→⋆ u.
Pour finir, il nous suffit pour chaque règle A →′ A1 · · · Ak de rajouter des non terminaux
A1 , · · · , A′k−2 et les règles

A →′′ A1 A′1 A′1 →′′ A2 A′2 ··· A′k−2 →′′ Ak−1 Ak


et de supprimer les règles de la forme A →′ A1 · · · Ak . On obtient ainsi une grammaire en
forme normale de Chomsky.

Remarque 13.1.2.10. Cette grammaire nous permet de construire un algorithme, même si


peu efficace, pour calculer l’appartenance d’un mot au langage engendré par une grammaire.
La dernière forme que nous étudions est la forme normale de Greibach.
Définition 13.1.2.11 (Forme normale de Greibach). Soit un alphabet Σ et une
grammaire G ≜ (Γ, →, S) sur Σ. On dit que G est sous forme normale de Greibach si toutes
ses règles sont de la forme A → aU où a ∈ Σ et U ∈ Γ⋆ . On dira que G est sous forme
normale de Greibach quadratique si les règles sont, de plus, de la forme A → a, A → aB
où A → aBC avec a ∈ Σ, B, C ∈ Γ.
Proposition 13.1.2.12. Toute grammaire est équivalente à une grammaire sous forme
normale de Greibach quadratique.
Démonstration. A FAIRE
13.2. Arbres de dérivation, automates à pile 277

13.2 Arbres de dérivation, automates à pile


Cette section s’intéresse au développement de la théorie des langages algébriques au
travers des arbres de dérivations et des automates à pile. Les arbres de dérivation donnent
un modèle plus intuitif et visuel pour considérer la construction d’un mot depuis une
grammaire, et les automates à pile sont un formalisme permettant de représenter les
langages algébriques comme une extension des langages rationnels.

13.2.1 Ambigüité et dérivations


Pour introduire cette sous-section, il nous faut d’abord présenter la notion d’arbre de
dérivation. Comme nous l’avons vu, les mots engendrés par une grammaire sont obtenus par
une dérivation depuis un mot de départ S. On remarque que, à moins de cas particulièrement
élémentaires, plusieurs dérivations sont possibles. Par exemple, en reprenant la grammaire
GD définie dans les exemples précédents, on peut construire les deux dérivations suivantes :
(
S → S0S1 → 0S1 → 01
S → S0S1 → S01 → 01

Ces deux dérivations donnent le même mot, mais plus que ça elles semblent fonctionner
exactement de la même façon, à un choix près de l’ordre dans lequel on effectue les
dérivations S → ε depuis S0S1. Remarquons de plus que ce choix n’a aucune incidence en
général : si l’on considère deux dérivations partant de symboles non terminaux distincts,
on pourrait aussi bien exécuter les dérivations « en parallèle » sans changer le résultat.
Cela nous motive donc à définir la notion d’arbre de dérivation dans lequel, plutôt
que de considérer la dérivation d’un mot de façon linéaire, on la considère comme une
arborescence procédant à chaque dérivation parallèle simultanément.
Nous avons donc d’abord besoin de la notion d’arbre, plus précisément d’arbre enraciné.

Définition 13.2.1.1 (Arbre enraciné, feuille, étiquetage). Un arbre enraciné est un


triplet (V, r, d) avec :
• un ensemble V de sommets ;
• un sommet r ∈ V appelé racine ;
• une fonction d : V → List(V ) associant à un sommet s la liste de ses fils, qui vérifie
que :
◦ pour tous s, s′ ∈ V , si d(s) ∩ d(s′ ) ̸= ∅ alors s = s′ ;
◦ pour tous s, s′ ∈ V tels que s ∈ d(s′ ), il n’existe qu’une occurrence de s dans
d(s′ ) ;
◦ pour tout s ∈ V , il existe une suite finie s0 , . . . , sn telle que s0 = r, sn = s et
∀i ∈ {0, . . . , n − 1}, si+1 ∈ d(si ).
On appelle feuille un sommet n’ayant aucun fils.
Un arbre (V, r, d) est dit étiqueté par un ensemble X s’il est muni d’une fonction
V → X.

Remarque 13.2.1.2. La définition que nous donnons ici n’est pas consensuelle : le mot
« arbre » est particulièrement polysémique en mathématiques et informatique théorique, et
la définition que nous donnons nous sert uniquement pour avoir une définition formelle
simplifiée pour notre usage, qui est une déformation de la définition qu’on peut trouver
par exemple en théorie des graphes, où un arbre est un graphe connexe acyclique. A la
278 Chapitre 13. Langages algébriques

place de définir une relation de voisinage, nous donnons une fonction donnant les fils d’un
sommet, qui nous permet de mettre en avant la direction générale qu’a un arbre, allant de
la racine aux feuilles. On décide aussi d’imposer un ordre dans l’énumération des fils d’un
sommet pour simplifier la suite.

On définit la hauteur d’un arbre comme la plus grande suite allant de la racine à une
feuille de l’arbre (la hauteur d’un arbre limité à une racine étant 0). Il est alors possible de
définir et raisonner par récurrence sur la hauteur de l’arbre.

Définition 13.2.1.3 (Arbre de dérivation). Soit Σ un alphabet, et (Γ, →, S) une


grammaire sur Σ. On appelle arbre de dérivation sur (Γ, →, S) un arbre (V, r, d) dont les
sommets sont étiquetés par Σ ∪ Γ (on notera e la fonction d’étiquetage) et tel que :
• e(r) = S
• si s est une feuille de l’arbre, alors e(s) ∈ Σ.
• pour tout sommet s de l’arbre, il existe une règle e(s) → u telle que u est l’application
de e à chaque élément de d(s).
On appelle frontière d’un arbre de dérivation T le mot u ∈ Σ⋆ obtenu en concaténant
toutes les étiquettes des feuilles de T , dans l’ordre.

Remarque 13.2.1.4. Si l’on veut définir la frontière formellement, on peut définir inducti-
vement sur V la fonction ∂ : V → Σ⋆ par :
• si s est une feuille, ∂s ≜ e(s)
• sinon, ∂s ≜ ⋆ ∂s′
s′ ∈d(s)

et définir ∂T , la frontière de l’arbre T = (V, r, d), comme ∂T ≜ ∂r.


Relevons qu’au niveau des définitions, ∂ est une fonction à valeurs dans (Σ ∪ Γ)⋆ , mais
que le fait que les étiquettes des feuilles sont des éléments de Σ nous assure que ∂s est
dans Σ⋆ .

Exemple. Les deux dérivations précédentes de 01 dans le langage de Dyck peuvent être
associées à l’arbre de dérivation suivant :

S 0 S 1

ε ε

Le fait suivant est plutôt intuitif. Nous le laissons en exercice pour le lecteur le plus
dubitatif.

Exercice 13.2.1.5. Soit un alphabet Σ et une grammaire G sur Σ. Montrer que pour tout
u ∈ Σ⋆ , u ∈ LG si et seulement s’il existe un arbre de dérivation T sur G tel que ∂T = u.

Supposons qu’on dispose d’un arbre de dérivation T partant d’un non terminal S et
d’un arbre de dérivation T ′ partant d’un non terminal A. Il est alors possible de « greffer »
notre arbre T ′ à un sommet de T étiqueté par A. On obtient alors un nouveau mot dans
notre langage, si T et T ′ sont des arbres sur une grammaire du langage (à l’exception près
du fait que la racine de T ′ peut avoir une étiquette autre que S).
13.2. Arbres de dérivation, automates à pile 279

Cela nous permet de définir un résultat, analogue à celui du lemme de l’étoile. Dans
le lemme de l’étoile, on a considéré un automate pour dire que celui-ci va devoir boucler
lorsqu’il reconnait un mot suffisamment long. Ici, plutôt que de considérer les états d’un
automate, on considère les symboles utilisés dans l’arbre de dérivation : si l’arbre de
dérivation est suffisamment haut, alors il va exister une branche (un chemin de la racine à
une feuille) qui va passer deux fois par le même symbole non terminal, disons A. On a alors,
pour notre arbre T , un sous-arbre T ′ dont la racine est A et qui passe par A. En nommant
T ′′ le sous-arbre obtenu depuis la deuxième apparition de A, on peut alors greffer T ′ à T ′′ ,
pour obtenir un nouvel arbre, sur lequel on peut encore répéter cette opération autant de
fois que l’on le souhaite. Au niveau des mots engendrés par ces itérations d’arbres où T ′′
est remplacé par T ′ , cela se traduit par le lemme suivant :
Lemme 13.2.1.6 (Itération). Soit Σ un alphabet, G = (Γ, →, S) une grammaire sur Σ.
Il existe alors un entier N tel que pour tout u ∈ LG de longueur supérieure à N , il existe
une décomposition
u = αvβwγ
telle que (
∀n ∈ N, αv n βwn γ ∈ LG
|vw| > 0
Démonstration. On sait que → contient un nombre fini de règles. On définit
d ≜ max{|u| | (A, u) ∈→}
et
N ≜ d|Γ|+2
D’après les conditions dans la définition d’un arbre de dérivation, on sait que pour tout
arbre de dérivation sur G et sommet s, on a l’inégalité
|d(s)| ≤ d
Si un arbre de dérivation T sur G possède une hauteur strictement inférieure à |Γ| + 2, alors
(par induction sur la hauteur de l’arbre) sa frontière sera de taille strictement inférieure
à d|Γ|+2 , donc par contraposition tout arbre de dérivation engendrant un mot u de taille
supérieure à N doit avoir une hauteur supérieure à |Γ| + 2. Il existe donc une branche
(s0 , . . . , sn ) de longueur supérieure à |Γ| + 2 dans cet arbre.
On utilise maintenant le principe des tiroirs sur la branche (s0 , . . . , sn−1 ) de longueur
supérieure à |Γ| + 1 : il existe deux indices i, j tels que i = ̸ j et e(si ) = e(sj ). Soient alors
les arbres T0 , T1 et T2 définis respectivement comme le sous-arbre de T dont la racine est
sj , comme le sous-arbre de T ′ dont la racine est ei et privé de l’arbre T0 et comme T privé
de l’arbre T0 ∪ T1 .
Soit
A ≜ e(si )
On décide de nommer les frontières de nos différents arbres :
∂T0 ≜ β ∂T1 ≜ vAw ∂T2 ≜ αAγ
Il est dont possible de greffer T1 à T2 un nombre k quelconque de fois, puis de greffer T0 à
T1 , pour obtenir un arbre de dérivation valide. On en déduit donc, en prennat la frontière
de chacun de ces arbres de dérivation itérée :
(
∀n ∈ N, αv n βwn γ ∈ LG
|vw| > 0
280 Chapitre 13. Langages algébriques

On en déduit le résultat souhaité.

T2

T1

T0
α v β w γ

Figure 13.2.1.1 – Illustration de la décomposition précédente

Un problème se présente cependant, avec les arbres de dérivation. Dans le cas des
dérivations d’un mot, de la forme S →⋆ u, on sait qu’il existe en général de nombreuses
dérivations, mais qu’en est-il des arbres de dérivation ?
Une grammaire peut en fait, ou non, posséder un unique arbre de dérivation pour
chaque mot : c’est ce qu’on appelle une grammaire non ambigüe.
Définition 13.2.1.7 (Ambigüité). Soit Σ un alphabet et G une grammaire sur Σ. On
dit que G est ambigüe lorsqu’il existe deux arbres de dérivation sur G distincts mais de
même frontière. On dit qu’un langage algébrique L est inhéremment ambigu s’il n’existe
aucune grammaire non ambigüe engendrant L.
La notion d’ambigüité, ou plutôt de non ambigüité, nous permet de définir une propriété
universelle, analogue au théorème 1.1.2.1.
Proposition 13.2.1.8 (Propriété universelle d’une grammaire non ambigüe). Soit
Σ un alphabet et G = (Γ, →, S) une grammaire non ambigüe sur Σ. Soit un ensemble X
et une famille (fA,u )(A,u)∈→ de fonctions telles que pour tout (A, u) ∈→, fA,u : X n → X
où n est le nombre de non terminaux appartenant à u. Il existe alors une unique fonction
f : LG → X telle que pour toute règle A → u1 A1 · · · An un+1 et mots v1 , . . . , vn ∈ Σ⋆ tels
que Ai →⋆ vi , on a l’égalité
f (u1 ⋆ v1 ⋆ · · · ⋆ vn un+1 ) = fA,u1 A1 ···An un+1 (f (v1 ), . . . , f (vn ))
Démonstration. On raisonne par induction sur la hauteur d’un arbre de dérivation d’un mot
u, en supposant que la racine de l’arbre est un non terminal A quelconque. Formellement, on
prouve qu’il existe une unique fonction dont le domaine est l’ensemble des mots s’obtenant
par un arbre de dérivation de hauteur au plus n depuis un non terminal quelconque :
• si la dérivation est de la forme A → u où u ∈ Σ⋆ , alors notre condition est que
f (u) = fA,u ∈ X, et cette fonction convient bien
• supposons qu’un mot u soit obtenu par un arbre de dérivation dont la racine est A
suivi des sous-arbres T1 , . . . , Tk , où l’on ignore les terminaux (on notera u1 , . . . , uk+1
les mots constitués des terminaux entre chaque non terminal). On sait alors que f
est définie de façon unique sur les mots issus de T1 , . . . , Tk par hypothèse d’induction,
et alors il existe une unique valeur à u qui est donnée par la condition.
13.2. Arbres de dérivation, automates à pile 281

Ainsi, par induction, tout arbre de dérivation d’un mot est associé à un élément de
X de sorte de respecter la condition souhaitée, d’où le résultat dans le cas des arbres de
dérivation dont la racine est S.

Remarque 13.2.1.9. En réalité, on aurait pu définir un ensemble XA pour chaque non


terminal A, ce qui donne une fonction f de codomaine différent pour chaque non terminal
pris comme symbole de départ.
Nous profitons de ces définitions pour donner la bijection de Cantor, qui permet
d’encoder des données finies grâce à des entiers. On va ici en faire usage pour donner un
premier cas d’utilisation de notre propriété universelle avec une première version de codage
de Gödel.
Définition 13.2.1.10 (Bijection de Cantor). On appelle bijection de Cantor, ou
polynôme de Cantor, la fonction

α : N × N −→ N!
n+m
X
(n, m) 7−→ k +m
k=1

Exercice 13.2.1.11. Montrer que la bijection de Cantor est effectivement une bijection et
croissante strictement en chaque coordonnée.
L’intérêt de cette fonction est de nous donner un encodage des paires d’entiers avec
les entiers eux-mêmes. On peut en fait généraliser cette idée avec les k-uplets d’entiers, et
même les listes d’entiers.
Définition 13.2.1.12. On définit la nème bijection, αn , par récursion sur n :
• la bijection α1 : N ∼
= N est définie par l’identité.
• si αn est définie, alors on définit

αn+1 : Nn+1 −→ N
(p1 , . . . , pn+1 ) 7−→ α2 (αn (p1 , . . . , pn ), pn+1 )

On définit aussi la bijection α⋆ : N⋆ ∼


= N par récursion sur les listes :
• α⋆ (ε) = 0
• α⋆ (u ⋆ a) = 1 + α2 (α⋆ (u), a)
Exercice 13.2.1.13. Montrer que αn et α⋆ sont des bijections croissantes strictement en
chaque coordonnée.
Notation 13.2.1.14. On notera en général ⟨n, m⟩ pour αn (n, m), et de même ⟨n1 , . . . , np ⟩
pour αp (n1 , . . . , np ).
Définition 13.2.1.15 (Codage de Gödel d’un langage algébrique, version 1). Soit
Σ un alphabet et G = (Γ, →, V ) une grammaire non ambigüe sur Σ. Pour chaque A ∈ Γ,
on numérote les règles (A, u) ∈→ pour les ordonner, on note e(A, u) le numéro de la règle
A, u. Soit u = u1 A1 · · · An un+1 où u1 , . . . , un+1 ∈ Σ⋆ , on définit

fA,u (x1 , . . . , xn ) ≜ ⟨e(A, u), x1 , . . . , xn ⟩

La fonction obtenue est ce qu’on appelle un codage de Gödel de LG :

⌜−⌝ : LG → N
282 Chapitre 13. Langages algébriques

Exemple. On fixe une signature du premier ordre ∆ et un ensemble de variables du premier


ordre X . On peut définir les formules sur la signature ∆ par la grammaire suivante :

S ::= ∀x, S | ∃x, S | T


T ::= U → T | U
U ::= V ∨ U | V
V ::= W ∧ V | W
W ::= ¬W | ⊤ | ⊥ | Y = Y | Rp (Y, . . . , Y ) | (S)
Y ::= x | f p (Y, . . . , Y )

où x ∈ X , Rp décrit l’ensemble des symboles de relation d’arité p et f p les symboles de


fonctions d’arité p. Les tuples Y, . . . , Y sont des p-uplets : en particulier pour p = 0 on a
simplement R0 (respectivement f 0 ).
On peut vérifier que la grammaire est sans ambigüité. Ainsi, pour une formule φ donnée,
on peut lui associer un entier naturel ⌜φ⌝, en prenant comme numérotation l’ordre dans
lequel on a présenté les règles venant d’un même non terminal.
En particulier, lorsque ∆ est la signature de l’arithmétique LArith dont nous avons
parlé dans le chapitre 3, on peut de plus associer à une formule φ son code de Gödel ⌜φ⌝,
puis le terme dans le langage de l’arithmétique S ⌜φ⌝ 0. On a ainsi une façon de représenter
une formule de l’arithmétique à l’intérieur même de l’arithmétique. Nous verrons que ce
processus est au cœur des théorèmes d’incomplétude de Gödel.

Remarque 13.2.1.16. Le terme « codage de Gödel » sert à désigner une fonction des
formules logiques dans les entiers. Dans notre cas, nous avons défini une fonction plus
générale, mais il reste que cette fonction, dans le cas particulier de l’arithmétique, correspond
à nos attentes. Cependant, nous n’allons pas faire usage de ce codage, car nous aurons
l’occasion d’en définir un plus pratique sur le long terme. En effet, dans le chapitre 14,
nous allons définir un codage de Gödel en prouvant en plus qu’il est calculable (en un sens
que nous préciserons) et que les opérations les plus basiques effectuées sur ce codage sont
aussi calculables.
Relevons qu’historiquement, le premier codage de Gödel dans son article [Göd31] (une
traduction en anglais est disponible dans [Hei67]) utilisait la décomposition en facteurs
premiers, pour encoder un tuple (n1 , . . . , nk ) par l’entier 2n1 × 3n2 × · · · × pnk k où (pn ) est
l’énumération canonique des nombres premiers.

Remarque 13.2.1.17. Dans notre description des propositions, nous avons un ensemble
infini de symboles avec x ∈ X . Pour résoudre ça, il suffit de considérer x comme un symbole
non terminal et la règle
x ::= x0 | xs (x)
décrivant une variable x0 et une fonction injective non surjective xs : X → X . Ainsi la
variable xn est remplacée par la variable xs n (x0 ) et on a alors bien un langage algébrique.
Cela nous donne d’ailleurs un codage plus explicite des termes (les expressions dérivées de
Y dans notre grammaire).

13.2.2 Automates à pile


Dans cette sous-section, l’objectif sera de présenter les automates à pile. A FAIRE
Chapitre 14
Fonctions récursives, machines de Turing

Table des sous-matières


14.1 Fonctions primitives récursives . . . . . . . . . . . . . . . . . . . 283
14.1.1 Définitions et premières fonctions . . . . . . . . . . . . . . . . . . 284
14.1.2 Codages primitifs récursifs . . . . . . . . . . . . . . . . . . . . . . 290
14.2 Machines de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . 298
14.2.1 Premiers pas dans le formalisme des machines de Turing . . . . . 298
14.2.2 Équivalence de machines de Turing . . . . . . . . . . . . . . . . . 300
14.2.3 Équivalence avec les fonctions récursives . . . . . . . . . . . . . . 300

e chapitre est celui commençant à traiter la calculabilité à proprement parler. Jusque


C là, nous avons vu des versions simples d’automates, et de langages traités par ces
automates, pour introduire donner une meilleure connaissance du traitement des mots par
des automates.
Les langages algébriques (et encore plus les langages rationnels) restent restreints.
Par exemple, un langage tel que {an bn cn | n ∈ N} n’est pas algébrique, bien qu’il existe
clairement un algorithme permettant de le reconnaître. On souhaite donc trouver une
notion plus forte et expressive de fonction.
Cette notion plus forte est celle de fonction calculable, que nous allons voir dans ce
chapitre à travers les fonctions récursives en premier lieu, puis par les machines de Turing.
Une fonction calculable est une version mathématique de l’idée intuitive que l’on se fait
de « fonction programmable sur un ordinateur ». Bien sûr, le caractère mathématique pousse
à certaines généralisations (comme le fait que le modèle mathématique a une mémoire non
bornée), mais il reste important, pour fonder son intuition des fonctions calculables, de
garder à l’esprit qu’une fonction calculable n’est rien d’autre qu’une fonction obtenue en
exécutant un programme d’un langage de programmation suffisamment expressif (tel que
C, Python, Ocaml etc).

14.1 Fonctions primitives récursives


Avant d’introduire les fonctions récursives, nous en donnons une version faible mais
très importante : les fonctions primitives récursives (abrégées en fonctions RP). Si l’on
imagine une fonction calculable comme un programme C ou Python, une fonction RP est
un programme n’employant comme seule boucle que la boucle for.

283
284 Chapitre 14. Fonctions récursives, machines de Turing

14.1.1 Définitions et premières fonctions


Donnons dès maintenant la définition de la classe RP.

Définition 14.1.1.1 (Fonctions primitives récursives). On définit la classe RP ⊆


S n
n∈N Funct(N , N) comme la plus petite classe telle que :
• pour toutes les projections

πkn : Nn −→ N
(x1 , . . . , xn ) 7−→ xk

avec n, k ∈ N, πkn ∈ RP.


• pour tout n ∈ N, en notant k0n : Np → N la fonction nulle, k0n ∈ RP.
• la fonction n 7→ n + 1 est primitive récursive : succ ∈ RP.
• si f1 , . . . , fn : Nk → N sont des fonctions RP et g : Nn → N est une fonction RP,
alors la fonction
g ◦ (f1 , . . . , fn ) : Nk −→ N
(x1 , . . . , xk ) 7−→ g(f1 (x1 , . . . , xk ), . . . , fn (x1 , . . . , xk ))

est elle aussi RP.


• si f : Nk → N et g : Nk+2 → N sont des fonctions RP, alors la fonction

rec(f, g) : Nk+1 −→ N
(x1 , . . . , xk , 0) 7−→ f (x1 , . . . , xk )
(x1 , . . . , xk , y + 1) 7−→ g(x1 , . . . , xk , y, rec(f, g)(x1 , . . . , xk , y))

est elle aussi RP. On appelle cette opération la récursion primitive.

Remarque 14.1.1.2. Comme toujours, on identifie N0 → N avec N. Ainsi on peut définir


une fonction N → N à partir d’une constante x0 ∈ N et d’une fonction fs : N2 → N.

Remarque 14.1.1.3. Toute fonction RP est une fonction totale, puisque les opérations
permettant de construire de nouvelles fonctions RP conservent la totalité, et les fonctions
RP de base sont totales.

On peut donc, dès lors, donner plusieurs fonctions RP élémentaires.

Proposition 14.1.1.4. Les fonctions suivantes sont RP :


• pour tout n ∈ N et tout p ∈ N, la fonction constante

knp : Np −→ N
(x1 , . . . , xp ) 7−→ n

• + : N2 → N
• × : N2 → N
• exp : N2 → N

Démonstration. Pour les fonctions constantes, il nous suffit de composer n fois la fonction
succ à la fonction nulle k0p .
On sait que les autres fonctions souhaitées sont définies par ces équations :
• ∀n ∈ N, n + 0 = n
14.1. Fonctions primitives récursives 285

• ∀n, m ∈ N, n + succ(m) = succ(n + m)


• ∀n ∈ N, n × 0 = 0
• ∀n, m ∈ N, n × succ(m) = n + (n × m)
• ∀n ∈ N, exp(n, 0) = 1
• ∀n, m ∈ N, exp(n, succ(m)) = n × exp(n, m)
On définit les fonctions suivantes :
• + ≜ rec(π11 , succ ◦π33 )
• × ≜ rec(k01 , + ◦ (π23 , π33 ))
• exp ≜ rec(k11 , × ◦ (π23 , π33 ))
Il est direct de vérifier que ces fonctions vérifient les équations attendues.

A partir de ces fonctions élémentaires, on peut construire les fonctions de somme et de


produit.

Proposition 14.1.1.5. Les fonctions suivantes sont RP :

Σp : Np −→ N Πp : Np −→ N
Pp Qp
(x1 , . . . , xp ) 7−→ i=1 xi (x1 , . . . , xp ) 7−→ i=1 xi

Démonstration. On prouve par récurrence sur p que chaque Σp , Πp est une fonction RP :
• dans le cas où p = 0, on a simplement deux constantes, respectivement 0 et 1, qui
sont RP.
• supposons que Σp est RP, alors on peut définir Σp+1 par

Σp+1 ≜ + ◦ (Σp ◦ (π1p+1 , . . . , πpp+1 ), πp+1


p+1
)

et Πp+1 par
Πp+1 ≜ × ◦ (Πp ◦ (π1p+1 , . . . , πpp+1 ), πp+1
p+1
)
Les deux fonctions sont donc RP.

Exercice 14.1.1.6. Soit une fonction RP f : Nn → N. Montrer que la fonction

Σf : Nn+1 −→ N
Pp
(x1 , . . . , xn , p) 7−→ i=1 f (x 1 , . . . , xn , i)

est une fonction RP. Montrer la même chose pour la fonction Πf dans laquelle la somme
est remplacée par le produit.

D’autres fonctions arithmétiques parmi les plus élémentaires sont facilement prouvables
comme étant RP.

Proposition 14.1.1.7. Les fonctions min, max : N2 → N, la fonction d : N2 → N définie


par d(n, m) = |n − m|, ainsi que la fonction

− : N2 −→ N
(n, 0) 7−→ n
(0, succ(m)) 7−→ 0
(succ(n), succ(m)) 7−→ n − m

sont RP.
286 Chapitre 14. Fonctions récursives, machines de Turing

Démonstration. On commence par prouver que − est RP. Pour cela, on définit d’abord la
fonction prédécesseur, qui envoie 0 sur 0 et succ(n) sur n :

p ≜ rec(k00 , π12 )

A partir de cette fonction p, on définit la fonction − comme son itération :

− ≜ rec(π11 , p ◦ π33 )

On voit qu’alors, n − 0 = n pour tout n ∈ N. On montre ensuite par récurrence sur m que
0−m=0 :
• 0−0=0
• si 0 − m = 0, alors 0 − succ(m) = p(0 − m) = p(0) = 0
Il nous reste alors à montrer que succ(n) − succ(m) = n − m. On raisonne par induction
sur m :
• succ(n) − succ(0) = p(succ(n) − 0) = p(succ(n)) = n = n − 0
• supposons que succ(n) − succ(m) = n − m, alors

succ(n) − succ(succ(m)) = p(succ(n) − succ(m)) = p(n − m) = n − succ(m)

Donc − est RP.


A partir de cette définition de −, on peut prouver que n − m = max(0, n − m) (nous
considérons la preuve suffisamment directe pour la laisser en exercice). On peut alors définir
d(n, m) = (n − m) + (m − n).
On peut vérifier que pour tous n, m, on a les deux équations suivantes :
1 1
min(n, m) = (n + m − |n − m|) max(n, m) = (n + m + |n − m|)
2 2
donc les fonctions min et max s’écrivent comme

min ≜ demi ◦ − ◦ (+, d)


max ≜ demi ◦ + ◦ (+, d)

On en déduit que les fonctions souhaitées sont RP.

Exercice 14.1.1.8. Montrer que les fonctions min et max sur un n-uplet sont encore des
fonctions RP.
Exercice 14.1.1.9. Vérifier que la fonction

demi : N −→  N 
n
n 7−→
2
est bien une fonction RP.
Exercice 14.1.1.10. Montrer que la fonction q : N2 → N et la fonction r : N2 → N,
renvoyant respectivement le quotient et le reste de la division euclidienne d’un entier par
un autre, sont des fonctions RP.
Attardons-nous maintenant sur la notion de prédicat RP. On a vu qu’une fonction RP
était une certaine fonction Nn → N, mais il est aussi intéressant de considérer à la place de
fonctions des relations R ⊆ Nn . On adapte donc notre notion de RP à ces relations.
14.1. Fonctions primitives récursives 287

Définition 14.1.1.11 (Relation RP). On dit qu’une relation R ⊆ Nn est RP si sa


fonction caractéristique χR : Nn → 2 est une fonction RP.

Remarque 14.1.1.12. On parlera aussi d’ensemble RP ou de partie RP, ce dernier cas


plutôt pour parler de partie de N.

Les relations RP se comportent bien vis à vis de la logique classique, au sens de la


proposition suivante.

Proposition 14.1.1.13. Pour tout n ∈ N, l’ensemble des relations RP sur Nn est une
sous-algèbre de Boole de P(Nn ).

Démonstration. On cherche donc à prouver que les relations RP sont stables par intersection,
union et complément, et que Nn et ∅ sont des relations RP. Les deux derniers points sont
directs puisque ces deux relations correspondent respectivement à k1n et k0n .
Soient R, S deux relations RP, alors :
(
χR∩S (n1 , . . . , np ) = min(χR (n1 , . . . , np ), χS (n1 , . . . , np ))
∀n1 , . . . , np ∈ N,
χR∪S (n1 , . . . , np ) = max(χR (n1 , . . . , np ), χS (n1 , . . . , np ))

donc R ∩ S et R ∪ S sont RP, en composant par min et max, respectivement.


De plus,
∀n1 , . . . , np ∈ N, χNp \R (n1 , . . . , np ) = 1 − χR (n1 , . . . , np )
donc Np \ R est aussi RP, en composant par x 7→ 1 − x.
Ainsi les relations RP forment une algèbre de Boole pour les opérations ensemblistes
usuelles.

Proposition 14.1.1.14. Les relations △ ≜ {(x, x) | x ∈ Nn } et ≤≜ {(n, m) | n ≤ m} sont


RP.

Démonstration. On prouve d’abord que ≤ est RP. Pour cela, on remarque que n ≤ m
exactement lorsque n − m ≤ 0, c’est-à-dire lorsque n − m = 0. En prenant alors (n, m) 7→
1 − (n − m), on a bien une fonction RP à valeurs dans 2 et qui coïncide avec χ≤ . Pour
montrer que la relation △ est aussi RP, il suffit de remarquer que

(n, m) ∈ △ ⇐⇒ (n ≤ m) ∧ (m ≤ n)

et d’utiliser la proposition 14.1.1.13 pour en déduire le résultat.

Exercice 14.1.1.15. Montrer que △n ≜ {(n, . . . , n) ∈ Nn | n ∈ N} est une relation RP.

Grâce à ces propriétés de base, on sait déjà que des formules sans quantification utilisant
l’égalité et l’inégalité comme symbole de relation sont, en s’interprétant dans la structure
N, des relations RP.
On verra qu’il n’est pas possible de rajouter n’importe quelle quantification, mais le
résultat suivant est déjà un résultat particulièrement fort : une quantification bornée sur
une relation RP reste une relation RP.

Proposition 14.1.1.16. Soit une relation RP R ⊆ Nn+1 . On définit les fonctions

∃R : Nn+1 −→ 2
1 si ∃z < y, R(x1 , . . . , xn , z)
(
(x1 , . . . , xn , y) 7−→
0 sinon
288 Chapitre 14. Fonctions récursives, machines de Turing

∀R : Nn+1 −→ 2
1 si ∀z < y, R(x1 , . . . , xn , z)
(
(x1 , . . . , xn , y) 7−→
0 sinon
Ces deux fonctions sont RP.
Démonstration. On construit les deux fonctions par récursion primitive :
n+2
∃R ≜ rec(k0n , max ◦(πn+2 , R ◦ (π1n+2 , . . . , πn+1
n+2
)))
n+2
∀R ≜ rec(k1n , min ◦(πn+2 , R ◦ (π1n+2 , . . . , πn+1
n+2
)))
On montre seulement le fait que la fonction ∃R ainsi définie vérifie la propriété voulue, le
cas de ∀ étant parfaitement analogue.
On remarque d’abord qu’il n’existe aucun z < 0, donc dans le cas de (x1 , . . . , xn , 0) la
valeur retournée est 0. Dans le cas où l’on appelle la fonction sur (x1 , . . . , xn , succ(y)), alors
on voit qu’il existe z < succ(y) tel que R(x1 , . . . , xn , z) si et seulement s’il existe z < y tel
que R(x1 , . . . , xn , z) ou si R(x1 , . . . , xn , y), ce qui correspond à l’équation vérifiée dans le
cas récursif.
Exercice 14.1.1.17. Montrer que l’ensemble des nombres premiers est un ensemble RP.
On peut aussi construire des instructions conditionnelles sur des relations RP.
Proposition 14.1.1.18. Soit R ⊆ Nn une fonction RP et deux fonctions f, g : Nn → N
deux fonctions RP. Alors la fonction
if(R, f, g) : Nn −→ N
f (x1 , . . . , xn ) si (x1 , . . . , xn ) ∈ R
(
(x1 , . . . , xn ) 7−→
g(x1 , . . . , xn ) sinon
Démonstration. On définit if de la façon suivante :
if(R, f, g) ≜ rec(g, f ◦ (π1n+2 , . . . , πnn+2 )) ◦ (π1n , . . . , πnn , R)
Lorsque R(x1 , . . . , xn ) = 0, la fonction vaut (g ◦ (π1n , . . . , πnn ))(x1 , . . . , xn ), c’est-à-dire
g(x1 , . . . , xn ). Lorsque R(x1 , . . . , xn ) = 1, la fonction vaut (f ◦ (π1n , . . . , πnn ))(x1 , . . . , xn ),
c’est-à-dire f (x1 , . . . , xn ). D’où le résultat.
Remarque 14.1.1.19. La fonction if(R, f, g) peut s’appliquer avec une fonction h à la
place de R. La condition sera alors que la valeur retournée par h est non nulle.
On voit qu’il est possible de passer facilement d’une fonction à un ensemble, en
considérant la fonction caractéristique. Réciproquement, on souhaite avoir un moyen, étant
donné un prédicat, d’en extraire une fonction : c’est la notion de minimisation qui nous
sera utile.
Définition 14.1.1.20 (Minimisation, minimisation bornée). Soit R ⊆ Nn+1 une
relation. On définit la fonction partielle de minimisation comme suit :
µR : Nn −→ N
(x1 , . . . , xn ) 7−→ min{y ∈ N | (x1 , . . . , xn , y) ∈ R}
où la fonction n’est pas définie lorsque l’ensemble sur lequel est pris le minimum est vide.
On appelle minimisation bornée la fonction totale suivante :
µB R : Nn+1 −→ N
(x1 , . . . , xn , y) 7−→ min{z < y | (x1 , . . . , xn , z) ∈ R}
où la fonction vaut 0 lorsque l’ensemble sur lequel est pris le minimum est vide.
14.1. Fonctions primitives récursives 289

La minimisation en général n’est pas RP, mais la minimisation bornée l’est. De plus,
le fait que la fonction n’est pas définie dans le cas de µ est dû au fait que si l’on songe à
nos fonctions comme à des algorithmes, et à R comme à un algorithme de décision, il est
impossible de savoir (en temps fini) s’il existe ou non un certain y tel que R(x1 , . . . , xn , y).
Au contraire, dans le cas de la minimisation bornée, il est possible de le vérifier en temps
fini, et on peut donc donner une valeur dans le cas où l’ensemble est vide.
Proposition 14.1.1.21. Soit R ⊆ Nn+1 une relation RP. La fonction µB R est une fonction
RP.
Démonstration. On définit µB R par récursion primitive. Dans le cas où y = 0, alors
l’ensemble {z < 0 | (x1 , . . . , xn , z) ∈ R} est vide donc la fonction retourne 0. Dans le
cas inductif, lorsque y = succ(y ′ ), le minimum de l’ensemble est soit le minimum de
{z < y ′ | (x1 , . . . , xn , z) ∈ R} si cet ensemble est non vide, soit y ′ si (x1 , . . . , xn , y ′ ) ∈ R si
cet ensemble est non vide, soit 0. On pourrait se contenter de cet algorithme, qui nous
fait recalculer en permanence l’habitation des ensembles. A la place, on va construire une
fonction qui retourne succ(m) où m est le minimum s’il existe, et 0 sinon :
n+2 n+2
f0 ≜ rec(kn0 , if(πn+2 , πn+2 , × ◦ (R ◦ (π1n+2 , . . . , πn+1
n+2 n+2
), succ ◦πn+1 )))

On définit alors µB R simplement par p ◦ f0 , où p est la fonction précédesseur définie plus


haut.

Avec les outils présents, on peut montrer que la bijection de Cantor introduite dans la
définition 13.2.1.10 est une fonction RP.
Proposition 14.1.1.22. La bijection de Cantor α : N × N → N est une fonction RP. Les
deux fonctions π1′ , π2′ : N → N telles que (π1′ (α(n, m)), π2′ (α(n, m))) = (n, m) sont elles
aussi RP.
Pk
Démonstration. On sait que la fonction f1 : k 7→ i=1 i est RP. On peut alors définir α :

α ≜ + ◦ (f1 ◦ +, π22 )

Ainsi α est bien une fonction RP.


Comme la situation est symétrique entre π1′ et π2′ , on montre seulement que π1′ est
RP. Soit n, m ∈ N et a = α(n, m). Le prédicat k = π1′ (a) revient à ∃p ≤ a, α(k, p) = a car
p ≤ α(p, i) pour tout i ∈ N. De plus, pour tout a ∈ N, il existe effectivemnet n, m tels que
a = α(n, m), donc {k ≤ a | ∃p ≤ a, α(k, p) = a} contient exactement un élément, que l’on
peut récupérer par minimisation. On en déduit donc

π1′ ≜ µB (∃(△ ◦ (α ◦ (π23 , π33 ), π13 ))) ◦ (π11 , π11 )

Donc π1′ est une fonction RP.

Exercice 14.1.1.23. Montrer que chaque αn est aussi une fonction RP, et que chaque
projection ϖin telle que ϖin (αn (x1 , . . . , xn )) = xi , est une fonction RP.
Avec ces données, on se rend compte que le fait d’avoir des fonctions Nn → N n’apporte
pas réellement plus d’expressivité que d’avoir simplement des fonctions N → N, puisque
toutes les fonctions RP f : Nk → N peuvent se réécrire en une composée de fonctions
f
n 7→ (ϖ1p (n), . . . , ϖpp (n)) 7→ f (n1 , . . . , np ) elle aussi RP. Bien sûr, il est toujours nécessaire
de définir les fonctions avec plusieurs coordonnées de par la définition même des fonctions
RP (puisqu’en particulier la récursion primitive utilise un appel sur une seule coordonnée
en laissant les autres statiques).
290 Chapitre 14. Fonctions récursives, machines de Turing

14.1.2 Codages primitifs récursifs


Dans cette sous-section, on va définir une notion généralisée de fonctions primitives
récursives, où les fonctions ont comme domaine et codomaine d’autres ensembles que N.
Comme on peut voir N comme le monoïde libre à un élément, {∗}⋆ , on peut généraliser les
définitions facilement en remplaçant N par Σ⋆ pour un ensemble fini Σ.
Les définitions et propositions données dans cette sous-section sont l’œuvre des auteurs
de ce livre, d’où l’absence de références bibliographiques. L’intérêt de ces constructions est
avant tout de faciliter des notions de codage, en remplaçant de futures preuves fastidieuses
en 3 résultats principaux :
• généraliser les fonctions récursives primitives sur des alphabets différents ne change
pas la classe des fonctions RP de la forme Nn → N,
• les langages algébriques sont primitifs récursifs,
• les fonctions définies par induction par la proposition 13.2.1.8 sont compatibles avec
la classe des fonctions RP.
Le deuxième résultat est déjà plus élégant que si l’on se restreignait aux fonctions Nn → N,
étant donné que l’exprimer uniquement avec cette classe de fonctions demanderait de définir
des codages préalables. Ne pas passer par des codages supplémentaires pour exprimer ces
résultats donne un aspect plus intrinsèque à notre notion de fonctions PR : les langages
que cette notion engendrent sont effectivement plus fort que les langages algébriques.
Cependant, le réel atout de cette généralisation est de permettre de considérer des
opérations « syntaxiques » sur des langages algébriques en restant dans une classe plus
restreinte que ce que nous verrons dans la suite du chapitre. De plus, grâce au premier
des trois résultats, on pourra montrer que toutes ces opérations peuvent se traduire en
des opérations sur Nn → N modulo un codage prélable, sans avoir à prouver à nouveau
que de telles opérations sont bien des fonctions RP. On le verra dans le CHAPITRE
HIERARCHIE ARITHMETIQUE, mais ces résultats donneront en corollaire beaucoup de
résultats techniques.
Définition 14.1.2.1 (Fonctions récursives primitives généralisées). On définit la
classe des fonctions récursives primitives généralisées (RPG) comme la plus petite classe
de fonctions (Σ1 )⋆ × · · · × (Σn )⋆ → Σ⋆ où Σ1 , . . . , Σn , Σ sont des ensembles finis, telle que :
• chaque fonction
n
!
Y
πkn : (Σi )⋆ −→ (Σk )⋆
i=1
(u1 , . . . , un ) 7−→ uk
est une fonction RPG.
• pour tout Σ et a ∈ Σ, la fonction
consa : Σ⋆ −→ Σ⋆
u 7−→ u ⋆ a
est une fonction RPG.
• pour tous Σ1 , . . . , Σn , Σ, la fonction
n
!
Y
knε : (Σi )⋆ −→ Σ⋆
i=1
(u1 , . . . , un ) 7−→ ε
est une fonction RPG.
14.1. Fonctions primitives récursives 291

• si fk : ni=1 (Σi )⋆ → (Γk )⋆ est une fonction RPG pour chaque k = 1, . . . , p, et


Q

g : pi=1 (Γi )⋆ → Σ est une fonction RPG, alors


Q

n
!
Y

g ◦ (f1 , . . . , fn ) : (Σi ) −→ Σ
i=1
(u1 , . . . , un ) 7−→ g(f1 (u1 , . . . , un ), . . . , fp (u1 , . . . , un ))
est une fonction RPG.
• si f : pi=1 (Σi )⋆ → Σ⋆ est une fonction RPG, Γ est un ensemble fini et, pour tout
Q

a ∈ Γ, ! p
Y
ga : (Σi )⋆ × Γ⋆ × Σ⋆ → Σ⋆
i=1
est une fonction RPG, alors la fonction
p
Y
!

rec(f, (ga )a∈Γ ) : (Σi ) × Γ⋆ −→ Σ⋆
i=1

vérifiant les équations


rec(f, (ga )a∈Γ )(u1 , . . . , up , ε) = f (u1 , . . . , up )
rec(f, (ga )a∈Γ )(u1 , . . . , up , a ⋆ u) = ga (u1 , . . . , up , u, rec(f, (ga )a∈Γ )(u1 , . . . , up , u))
est une fonction RPG.
Remarque 14.1.2.2. On parle ici de tous les ensembles finis, ce qui est trop grand pour
obtenir un ensemble, et donc définir un prédicat inductif « être une fonction RPG » en
utilisant le théorème de Knaster-Tarski. Pour régler ce problème, on utilise en réalité
comme seuls alphabets les ensembles n ∈ ω, qui représentent déjà tous les ensembles finis
à bijection près.
On peut ensuite considérer la version adaptée à tout ensemble fini en disant qu’une
fonction f : Σ⋆ → Γ⋆ est RPG lorsque, pour toutes bijections σ : Σ → {0, . . . , n} et
τ : Γ → {0, . . . , k}, τ ◦ f ◦ σ −1 est une fonction RPG. Nous ne considérerons cependant ici
que des ensemble de la forme n ∈ ω, car la généralisation des fonctions RPG ajoute déjà
de nombreuses lourdeurs, et posséder comme alphabet uniquement les ordinaux finis suffit
à ce que l’on souhaite faire pour des codages.
Les fonctions RP sont naturellement un sous-ensemble des fonctions RPG, en assimilant
N à {0}⋆ . On va considérer pour cette sous-section que {0}⋆ est exactement l’ensemble N
qu’on manipule dans le cas des fonctions RP/RPG.
Une question naturelle à se poser est si cette notion de fonctions RPG est strictement
plus forte que celle de fonctions RP : ça n’est pas le cas, et c’est ce que nous allons montrer
dans un premier temps. Pour montrer cela, on va construire une notion de traduction
entre chaque Σ⋆ et N. La traduction fΣ : Σ⋆ ∼ = N sera choisie RPG, et de telle sorte que
pour toute fonction f RPG, la fonction associée en utilisant les traductions pour avoir une
fonction fˆ : Nn → N est RP.
Définition 14.1.2.3 (Traduction RPG canonique). Soit Σ un ensemble fini. Il existe
une fonction fΣ : Σ⋆ → N telle que :

fΣ est bijective


f ∈ RPG
Σ

f −1 ∈ RPG

Σ

et telle que f{0} = idN .


292 Chapitre 14. Fonctions récursives, machines de Turing

Démonstration. Sans perte de généralité, on considère que Σ = {0, . . . , n − 1} pour un


certain n ∈ N. L’encodage de la suite u = ap · · · a1 va être donné par
p−1
X
fΣ ≜ (ai + 1)ni
i=0

Tout d’abord, on voit que dans le cas où n = 1, c’est-à-dire le cas du singleton {0}, cela
nous donne
n−1
X
n
f{0} (0 ) = 1i = n
i=0
donc f{0} = idN .
On souhaite donc montrer que fΣ est une fonction RPG. Pour cela, on va définir pour
k ∈ {0, . . . , n − 1} la fonction

gk : Σ⋆ × N → N
gk (u, m) ≜ m × n + (k + 1)

Alors on peut définir


fΣ ≜ rec(0, (gk )k∈{0,...,n−1} )
Pp−1
On voit alors que fΣ (ε) = 0 et que si fΣ (ap · · · a1 ) = i=1 (ai + 1)ni−1 alors

fΣ (ap · · · a0 ) = n × fΣ (ap · · · a1 ) + (a0 + 1)


 
p−1
X
=n× (ai + 1)ni−1  + (a0 + 1)
i=1
 
p−1
X
= (ai + 1)ni  + (a0 + 1)
i=1
p−1
X
= (ai + 1)ni
i=0

D’où le résultat souhaité par induction sur Σ⋆ .


On va donner un candidat à la fonction fΣ−1 et montrer que ce candidat est RPG. Pour
cela, on montre d’abord qu’il est possible de construire la décomposition en base n sur p
chiffres d’un nombre m donné en tant que fonction RPG N → {0, . . . , n − 1}⋆ .
Pour commencer, il nous faut construre une première fonction : étant donné un nombre
k ∈ N, on souhaite montrer que la fonction

consk%n : Σ⋆ −→ Σ⋆
u 7−→ u ⋆ (k%n)

et RPG, où k%n désigne le reste de la division euclidienne de k par n. En réalité, comme


n est un nombre fini, il nous suffit d’imbriquer des conditions d’égalité de k%n à chaque
nombre dans i ∈ {0, . . . , n − 1} et, dans chaque cas, d’utiliser la fonction consi .
On définit alors la fonction
fn : N2 −→ Σ⋆
(k, 0) 7−→ ε
(k, d + 1) 7−→ consk%n (fn (k//n, d))
14.1. Fonctions primitives récursives 293

où k//n est le quotient de la division euclidienne de k par n. Il est clair que cette fonction est
RPG, en utilisant une récursion primitive. On souhaite maintenant montrer par récurrence
sur d que fn (k, d) est la suite des d chiffres de poids le plus faible de la décomposition en
base n de k :
• le cas pour d = 0, donc fn (k, d) = ε, est automatique
• pour l’hérédité, on remarque d’abord que la décomposition en base n de k est
la décomposition en base n de k//n suivie de k%n. Ainsi, si fn (k//n, d) est la
suite des d chiffres de poids le plus faible de la décomposition en base n de k//n,
alors fn (k//n, d) ⋆ k%n est la suite des d + 1 chiffres de poids le plus faible de la
décomposition en base n de k.
Donc la décomposition en base n sur d chiffres est bien une fonction RPG.
On peut maintenant définir la fonction d : N → N telle que d(m) est le plus petit entier
d tel que
d
X
m< ni
i=0
Cette fonction est RPG puisqu’il s’agit d’une minimisation, dont une borne est donnée par m
Pd(m)−1 i
lui-même étant donné que m < m i ′
i=0 n . On construit ensuite l’entier m = m −
P
i=0 n
(comme d(m) est choisi minimal, la valeur de droite est bien positive) puis le mot sur
{0, . . . , n − 1}⋆ donné par la décomposition de m′ sur d chiffres. On sait donc que cette
fonction est RPG.
Montrons maintenant que les deux fonctions sont réciproques l’une de l’autre. Tout
d’abord, si on a un entier m, d le plus petit entier d tel que m < di=0 ni et ad−1 · · · a0 la
P

décomposition en base n sur d chiffres de m − d−1 i


P
i=0 n , alors

d−1
X
m= (ai + 1)ni
i=0

donc fΣ ◦ fΣ−1 = idN .


Réciproquement, si ad · · · a0 ∈ Σ⋆ , alors en notant m = fΣ (ad · · · a0 ), d(m) = d + 1
puisque
d
X d
X d+1
X
ni ≤ m ≤ (n − 1)ni = nd+1 − 1 < ni
i=0 i=0 i=1
Pd Pd
On voit alors que m − i=0 ni = i=0 ai ni , donc la décomposition en base n sur d + 1
chiffres nous donne ad · · · a0 .
Ainsi fΣ est une fonction RPG bijective de réciproque RPG.

On peut alors associer à une fonction RPG f une fonction RPG ne prenant en argument
et ne retournant que des entiers.

Définition 14.1.2.4 (Fonction RP associée à une fonction RPG). Soit


n
!
Y

f: (Σi ) −→ Σ⋆
i=1

une fonction RPG. On appelle sa fonction RP associée la fonction RPG

fˆ : Nn → N
fˆ ≜ fΣ ◦ f ◦ (f −1 , . . . , f −1 )
Σ1 Σn
294 Chapitre 14. Fonctions récursives, machines de Turing

L’objectif est donc de montrer que pour toute fonction RPG f , la fonction fˆ est une
focntion RP. La preuve se faisant par induction sur la définition des fonctions RPG, donnons
donc une étude sommaire des cas les plus évidents :
• dans le cas des projections, la fonction associée est fΣk ◦ fΣ−1
k
= id.
• dans le cas de consa : Σ → Σ, pour Σ = {0, . . . , n − 1} et tout a ∈ Σ, la fonction
fΣ ◦ consa ◦fΣ−1 est simplement la fonction k 7→ n × k + a + 1. Cette fonction est RP
en utilisant les résultats précédents.
• pour la fonction kε , la fonction associée est directement k0 .
• si g et (hi )i∈{1,...,p} sont des fonctions RPG, alors on peut simplement remarque que
l’égalité g \
◦ (hi )i = ĝ ◦ (ĥi )i est vérifiée :

◦ h = fΣ ◦ (g ◦ (hi )) ◦ (fΣ−1
g[ 1
, . . . , fΣ−1
n
)
= fΣ ◦ g ◦ (fΓ−1
i
◦ fΓi ◦ hi ◦ (fΣ−1
1
, . . . , fΣ−1
n
))i
= fΣ ◦ g ◦ (fΓ−1
1
, . . . , fΓ−1
p
) ◦ (fΓi ◦ hi ◦ (fΣ−1
1
, . . . , fΣ−1
n
))i
= fˆ ◦ (gˆi )i

la stabilité des fonctions RP par composition et l’hypothèse d’induction permettent


donc de conclure.
On voit donc que le point réellement important de cette preuve est le cas de la récursion
primitive.

Lemme 14.1.2.5. Soit f une fonction RPG, alors fˆ est une fonction RP.

Démonstration. On procède par induction sur les fonctions RPG. On a prouvé juste avant
les cas directs, on s’intéresse donc au cas de la récursion primitive.
Soient des ensembles finis Σ1 , . . . , Σp , Γ, Σ et
p
Y
! p
Y
!
⋆ ⋆ ⋆
f: (Σi ) →Σ ∀a ∈ Γ, ga : (Σi ) × Γ⋆ × Σ⋆ → Σ⋆
i=1 i=1

des fonctions RPG. On souhaite montrer que rec(f,\ (ga )) est une fonction RP sachant que
ˆ
f, (gˆa )a∈Γ sont des fonctions RP. On suppose que Σ = {0, . . . , n − 1}.
On a vu comment extraire un élément de Σ⋆ à partir d’un entier. L’objectif dans cette
construction va être d’adapter cette extraction pour l’appliquer directement à la récursion.
Dans un premier temps, avec le même argument que dans celui pour construire fΣ , on
peut définir une fonction ĝ telle que

ĝ(x1 , . . . , xp , y, z) = g[
z%n (x1 , . . . , xp , y//n, z)

en imbricant des instructions conditionnelles.


On définit alors la fonction

h(x1 , . . . , xp , x) ≜ ⟨π1′ (x)//n, ĝ(x1 , . . . , xp , π1′ (x), π2′ (x))⟩

On rappelle que la fonction d, définie dans une preuve précédente, associe à m la taille de
fΣ−1 (m). On remarque l’identité suivante, pour tous x1 , . . . , xp , y, z ∈ N, u ∈ Γ⋆ , a ∈ Γ :

h(x1 , . . . , xp , y, ⟨fΓ (u ⋆ a), z⟩) = ⟨fΓ (u), ga (x1 , . . . , xp , u, z)⟩


14.1. Fonctions primitives récursives 295

On définit alors la fonction F à p + 2 arguments suivante :


p+1
F ≜ rec(α ◦ (πp+1 , f ◦ (π1p+1 , . . . , πp+1
p+1
)), h ◦ (π1p+3 , . . . , πpp+3 , πp+3
p+3
))

Cette fonction va retourner des codes de couples. L’intérêt est de pouvoir utiliser l’appel
récursif pour faire réduire l’argument autrement que d’un seul cran par un seul cran en
stockant l’argument dans l’appel récursif, avec la valeur retournée. On montre donc d’abord
par récurrence sur k que pour tout u = u1 · · · uN ∈ Γ⋆ ,

\
F (x1 , . . . , xp , fΓ (u), k) = ⟨fΓ (u1 · · · uN −k ), rec(f, (ga ))(x1 , . . . , xp , fΓ (uN · · · uN −k+1 ))⟩

• dans le cas où k = 0, les deux membres de l’équation sont effectivement égaux à


⟨fΓ (u1 · · · uN ), fˆ(x1 , . . . , xp )⟩.
• supposons que l’égalité est vraie pour k, alors

F (x1 , . . . , xp , fΓ (u), k + 1) = h(x1 , . . . , xp , F (x1 , . . . , xp , fΓ (u), k))


= h(x1 , . . . , xp , ⟨fΓ (u1 · · · uN −k ),
\
rec(f, (ga ))(x1 , . . . , xp , fΓ (uN · · · uN −k+1 ))⟩)
= ⟨fΓ (u1 · · · uN −k−1 ),
\
guN −k (rec(f, (ga ))(x1 , . . . , xp , fΓ (uN · · · uN −k+1 )))
= ⟨fΓ (u1 · · · uN −k−1 ),
\
rec(f, (ga ))(x1 , . . . , xp , fΓ (uN · · · uN −k ))

D’où le résultat par récurrence.


On laisse en exercice le soin de vérifier qu’il est possible de transformer fΓ (uN · · · u1 )
en fΓ (u1 · · · uN ) par une fonction RP. En utilisant cette fonction, qu’on notera simplement
a 7→ a, on construit la fonction :

G(x1 , . . . , xp , m) ≜ π2′ (F (x1 , . . . , xp , m, d(m)))

En utilisant l’identité précédente, on sait que

\
G(x1 , . . . , xp , fΓ (u)) = rec(f, (ga ))(x1 , . . . , xp , fΓ (u))

d’où le résultat.
\
Ainsi rec(f, (ga )a ) est aussi une fonction RP, donc par induction sur les fonction RPG,
pour toute fonction RPG f la fonction fˆ associée est RP.

Exercice 14.1.2.6. Vérifier que la fonction a 7→ a est effectivement une fonction RP.

Théorème 14.1.2.7. Soit une fonction f : Nn → N. Cette fonction est RPG si et seulement
si elle est RP.

Démonstration. Il est clair que si f est RP alors elle est RPG. Dans le sens réciproque, on
sait que fˆ est RP, donc
id ◦f ◦ (id, . . . , id) ∈ RP

ce qui revient à dire que f ∈ RP, d’où le résultat.


296 Chapitre 14. Fonctions récursives, machines de Turing

Ainsi, les fonctions RPG n’apportent pas plus de puissance de calcul, puisque les
fonctions sur les entiers restent les mêmes. De plus, comme on possède un codage bijectif
bi-RPG entre chaque Σ⋆ et N, on en conclut que le pouvoir expressif de N est suffisant.
L’utilité des fonctions RPG est de permettre de facilement passer de fonctions sur des
langages algébriques à leur codage. Donnons d’abord un premier résultat important : un
langage algébrique est une partie RPG.

Proposition 14.1.2.8. Soit Σ un alphabet et G une grammaire hors contexte. Alors LG


est une partie de Σ⋆ dont l’indicatrice est une fonction RPG (à valeurs dans 2).

Démonstration. A FAIRE

Cette proposition permet de donner du sens à la définition suivante.

Définition 14.1.2.9 (Fonction RPG de langage). Soit Σ, Γ deux alphabets et L ⊆ Σ⋆


un langage RPG sur Σ. Une fonction f : L → Γ⋆ est dite RPG s’il existe une fonction RPG
f˜ : Σ⋆ → Γ⋆ qui coïncide avec f sur L.

Remarque 14.1.2.10. Nous décidons de contraindre L à être lui-même RPG car sinon,
notre fonction f˜ n’aurait pas de raison de définir une fonction dont le domaine est L :
appeler f˜ sur une valeur ne nous permet pas de savoir si l’application de la fonction était
autorisée. Au contraire, s’il est possible d’avoir un processus préalable nous disant quelles
valeurs peuvent être effectivement appelées, alors la fonction définie sur L est calculable
par des fonctions RPG dans tous ses aspects.

Un exemple essentiel de fonction RPG de langage est celui des fonctions définies par
inductions à partir de fonctions RPG.

Proposition 14.1.2.11. Soit Σ, Γ deux alphabets et G une grammaire non ambigüe sur
Σ. On suppose que pour toute règle A → u dans G, on dispose d’une fonction RPG
gA,u : (Γ⋆ )n → Γ⋆ où n est le nombre de non terminaux apparaissant dans u. Alors la
fonction g : LG → Γ⋆ donnée par la proposition 13.2.1.8 est une fonction RPG.

Démonstration. A FAIRE

Remarque 14.1.2.12. De la même manière qu’on peut généraliser la proposition 13.2.1.8


à des cas où les ensembles associés à chaque non terminal peuvent différer, cette proposition
s’étend aussi à ces cas.

Ces résultats nous permettent donc de voir les langages algébriques comme une sous-
classe des langages RPG. On voit aussi que des opérations syntaxiques simples sont RPG.
Par exemple, étant donnée une signature du premier ordre ∆, un terme t sur ∆, une
variable du premier ordre xn avec n ∈ N et une formule φ sur ∆, il est possible de définir
la substitution φ[t/xn ] par induction sur la grammaire des formules sur ∆ :
• on définit d’abord la substitution pour un terme t′ . Si t′ = xm où m ̸= n, alors
t′ [t/xn ] = t′ ; si t′ = xn alors t′ [t/xn ] = t et si t′ = f (t1 , . . . , tp ) alors t′ [t/xn ] =
f (t1 [t/xn ], . . . , tp [t/xn ]).
• si φ = R(t1 , . . . , tp ), alors φ[t/xn ] = R(t1 [t/xn ], . . . , tp [t/xn ]).
• le cas de ⊤ et ⊥ est simple : la substitution ne fait rien.
• dans le cas de ∨, ∧, →, on applique simplement la substitution récursivement aux
sous-formules.
14.1. Fonctions primitives récursives 297

• si φ = ∃x, ψ (respectivement φ = ∀x, ψ), alors φ[t/xn ] = ∃x, ψ[t/xn ] (respectivement


φ[t/xn ] = ∀x, ψ[t/xn ]).
En réalité, le cas des quantificateurs est un peu particulier. On peut se demander
comment est représentée une variable liée telle que le x dans ∃x, ψ. La façon la plus simple
de faire est de considérer que cette quantification lie x0 , et donc que la variable libre x0
dans ∃x, ψ est la variable libre xs (x0 ) dans ψ. Dans ce cas, la définition récursive reste
simple : φ[t/xn ] = ∃x, ψ[t/xn+1 ].
Malheureusement, toutes les fonctions qui peuvent s’exprimer par un algorithme ne
sont pas des fonctions RP. Comme on l’a dit au début, une fonction RP peut se voir comme
un programme impératif n’utilisant que la boucle for. La boucle while, elle, permet de
faire des itérations arbitrairement grandes, sans savoir a priori si on aura un nombre fini
d’itérations. Cependant, dans l’autre sens, il est possible de définir la boucle while à partir
de la boucle for, dans les cas où la première boucle converge. Si l’on décide d’écrire

while φ(x) do f ; x := x + 1 done

par exemple, pour appliquer une procédure f pour tous les x tels que φ(x), on peut tout
aussi bien écrire, en fait,
for i = 0 to µ(¬φ) do f done
Ainsi, la minimisation non bornée nous permet de simuler les boucles arbitrairement
grandes.
Nous définissons donc une classe de fonctions plus générales, les fonctions récursives
(et récursives généralisées) en ajoutant cet opérateur. Plutôt que de le présenter par
minimisation d’un prédicat, on va le présenter à partir d’une fonction, en considérant le
prédicat « la fonction s’annule en ce point » qui ne fait pas perdre de généralité (puisqu’un
prédicat RP est déjà une fonction valant 0 ou 1).
Définition 14.1.2.13 (Fonction récursive, récursive généralisée). On définit la classe
Rec des fonctions récursives comme la plus petite classe de fonctions partielles contenant
la classe RP et telle que si f : Nn+1 → N est une fonction récursive, alors c’est aussi le cas
de la fonction
µ(f ) : Nn −→ N
(x1 , . . . , xn ) 7−→ min{y ∈ N | f (x1 , . . . , xn , y) = 0}

où la fonction µ(f ) est indéfinie là où l’ensemble dont on prend le minimum est infini.
La classe RecG des fonctions récursives généralisées est la plus petite classe de fonctions
partielles contenant la classe RPG et telle que si
n
!
Y

f: (Σi ) × N → Σ⋆
i=1

est une fonction récursive généralisée, alors


n
Y
µ(f ) : (Σi )⋆ −→ N
i=1
(u1 , . . . , un ) 7−→ min{y ∈ N | f (u1 , . . . , un , y) = ε}

est aussi une fonction récursive généralisée.


Exercice 14.1.2.14. Montrer que pour les fonctions f : Nn → N, appartenir à Rec est
équivalent à appartenir à RecG.
298 Chapitre 14. Fonctions récursives, machines de Turing

La classe Rec est en fait la classe des fonctions calculables, au sens des fonctions que l’on
peut écrire comme des programmes informatiques. Dans la section qui suit, on s’intéresse à
un autre formalisme : celui des machines de Turing. Nous reviendrons à la classe Rec dans
la dernière sous-section de la section suivante, pour prouver son équivalence avec la classe
que l’on définira grâce aux machines de Turing.

14.2 Machines de Turing


Les machines de Turing, introduites dans [Tur36], sont un formalisme très proche de
celui des automates. La différence principale est qu’au lieu de lire linéairement un mot,
comme dans le cas d’un automate fini ou d’un automate à pile, une machine de Turing
va agir sur un ruban de données. Cette action permet d’avoir des calculs arbitrairement
longs, et le ruban de données est infiniment grand pour permettre d’effectuer des calculs
aussi grands que souhaité. L’action sur le ruban, elle, sera déterminée par une structure
quasiment identique à celle d’un automate : à chaque instant, une tête de lecture indique à
quelle place sur le ruban on effectue l’action, et l’action dépend de la lettre lue et de l’état
de la machine. La différence principale est que la machine peut alors décider de continuer
la lecture (vers la droite) ou bien de revenir en arrière (vers la gauche). Ce formalisme est
un prototype de langage impératif, qui agit sur une bande de mémoire selon un programme
écrit à l’avance.
Dans cette section, on définit le formalisme élémentaire pour traiter des machines de
Turing. Nous montrons ensuite que différents choix sont possibles pour définir les machines
de Turing : utiliser plusieurs rubans, considérer des états acceptant/rejetant, utiliser des
machines non déterministes. . . Enfin, nous montrons que les fonctions calculables au sens
des machines de Turing sont équivalentes aux fonctions récursives.

14.2.1 Premiers pas dans le formalisme des machines de Turing


Donnons d’abord une définition simple de machine de Turing, permettant de plus
rapidement travailler avec.

Définition 14.2.1.1 (Machine de Turing). Soit Σ un alphabet. Une machine de Turing


M sur Σ est la donnée de :
• un ensemble fini Q d’états
• un état initial q0
• un ensemble d’états d’arrêt F
• un alphabet Γ de travail, tel que Σ ⊆ Γ
• un symbole blanc □ ∈ Γ
• une fonction de transition partielle

δ : Q × Γ −→ Q × Γ × {, }

On note TM(Σ) (pour Turing machine) l’ensemble des machines de Turing sur Σ.

Décrivons le fonctionnement d’une machine de Turing à partir de ses composantes :


• la machine de Turing va agir sur un ruban qui est une suite de symboles de Γ de la
forme u□∞ , c’est-à-dire ayant un nombre fini d’élément différents de □. A chaque
étape, la machine pointe à un certain indice du ruban, lit le symbole à cet indice et
agit en conséquence.
14.2. Machines de Turing 299

• au début de l’exécution, la machine point à l’incide 0 et est dans l’état q0 .


• à chaque étape lors de l’exécution, en supposant que le ruban est de la forme uav□∞
et que la machine pointe sur le symbole a, la machine étant en un état q, on regarde
δ(q, a) = q ′ , b, m : le symbole a est remplacé par le symbole b, la machine entre dans
l’état b et elle décale sa tête de lecture d’une case vers la gauche si m = , vers la
droite si m = .
• lorsque la machine entre dans un état q ∈ F , l’exécution s’arrête.
A FAIRE : SCHEMA DE LA SITUATION EN TIKZ
Rendons maintenant ce fonctionnement formel. On définit d’abord la notion de configu-
ration, qui est un objet permettant de retenir simultanément l’état d’une machine, de son
ruban et l’emplacement de sa tête de lecture.

Définition 14.2.1.2 (Configuration d’une machine sur un ruban). Soit une machine
de Turing M sur un alphabet Σ. Une configuration pour M est une suite u ∈ (Γ ∪ Q)N
telle que :
• toutes les valeurs de u sauf un nombre fini sont □
• il existe exactement un indice i tel que ui ∈ Q.
Etant donnée une configuration u, on appel état de M en u l’unique valeur q ∈ Q prise
par u.

Notation 14.2.1.3. On notera une configuration uqv□∞ pour indiquer que u ∈ Γ⋆ , v ∈ Γ⋆


et q ∈ Q.

Il faut lire la configuration uqv□∞ comme le fait que la tête de lecture de la machine
se trouve à la première lettre de v, dans l’état q, et que tous les symboles différents de □
sont contenus dans uv.
Une machine de Turing agit alors naturellement sur les configurations grâce à sa fonction
de transition.

Définition 14.2.1.4 (Action d’une machine sur une configuration). Soit M une
machine de Turing sur un alphabet Σ et uqav□∞ une configuration pour M (où u, v ∈
Γ⋆ , a ∈ Γ et q ∈ Q). Soit q ′ , b, m ≜ δ(q, a), on définit l’action de M en un pas sur uqbv□∞ ,
par 
u q a bv□ si m =  et si u = u ⋆ a
 ′ ′ ′ ∞ ′ ′

M · uqav□∞ ≜ ubq ′ v□∞ si m = 


indéfini sinon

Remarque 14.2.1.5. Si δ n’est pas définie en un certain couple a, q, l’action n’est pas
définie non plus, comme l’indique l’impossibilité de décomposer δ(q, a).

Cette action sur les configurations représente ce qu’il se déroule lors de l’exécution de
M pendant une seule unité de temps de calcul. Il nous faut ensuite, bien sûr, itérer cette
action pour créer un vrai calcul de la part de M . Comme dans le cas des automates, on va
appeler trace d’un calcul la suite des configurations parcourues.

Définition 14.2.1.6 (Trace d’une exécution d’une machine de Turing). Soit une
machine de Turing M sur un alphabet Σ et uqv□∞ une configuration pour M . On appelle
trace de l’exécution de M sur uqv□∞ la plus grande suite finie ou infinie de configurations
p0 , . . . , pi , . . . telle que
• p0 = uqv□∞
300 Chapitre 14. Fonctions récursives, machines de Turing

• pour tout i, pi+1 = M · pi


• s’il existe pi tel que l’état de M en pi appartient à F , alors la trace n’est pas définie
pour j > i
Pour tout mot u ∈ Σ⋆ , on appelle trace de l’exécution de M la trace de l’exécution de
M sur q0 u□∞ .
L’exécution d’une machine sur un mot u peut ainsi mener à plusieurs cas :
• la trace est infinie, ce qui correspond à un calcul qui ne se termine pas, tel un
programme exécutant une boucle de la forme while true ;
• la trace est finie mais ne contient pas d’état d’arrêt, ce qui correspond à une dernière
configuration pour laquelle l’action de M est indéfinie ;
• la trace est finie et contient un état d’arrêt, ce qui correspond à un calcul qui s’exécute
correctement et s’arrête : le ruban dans la configuration finale est alors de la forme
vw□∞ où v ∈ Σ⋆ et w ∈ Γ⋆ (v peut être vide, et w contient potentiellement des
lettres dans Σ). On a alors associé à u ∈ Σ⋆ un mot v ∈ Σ⋆ . On notera dans la suite
M (u) ce mot v.
Une machine de Turing définit donc une fonction partielle Σ⋆ ⇀ Σ⋆ : on dira que cette
fonction est calculée par la machine de Turing considérée, ce qui nous mène à la notion de
fonction calculable.
Définition 14.2.1.7 (Fonction calculée par une machine de Turing). Soit M une
machine de Turing sur un alphabet Σ. On définit la fonction partielle calculée par M
comme :
fM : Σ⋆ −→ Σ⋆
u 7−→ M (u)
où M (u) est indéfini si la trace de l’exécution de M sur u est infinie ou ne se termine pas
sur un état d’arrêt.
On définit la classe des fonctions calculables sur Σ comme

Calc(Σ) ≜ {fM | M ∈ TM(Σ)}

14.2.2 Équivalence de machines de Turing


14.2.3 Équivalence avec les fonctions récursives
Pour montrer que les fonctions calculables sont équivalentes aux fonctions récursives
généralisées, deux sens sont à faire : montrer qu’il est possible d’écrire une machine de
Turing qui calcule une fonction RecG, et montrer qu’il est possible de simuler l’exécution
d’une machine de Turing par une fonction RecG.
Le premier sens demande de raisonner par induction : on montre que les constructions
définissant la classe RecG peuvent se faire avec des machines de Turing. Le sens réciproque,
lui, va se faire en deux temps. Tout d’abord, on prouve qu’il existe deux fonctions T, U ∈
RPG qui, étant donnés un code e donnant la description d’une machine de Turing M , une
entrée x et un temps t, retourne respectivement si la machine de Turing s’est arrêtée en
moins de t étapes de calcul sur l’entrée x et l’état du ruban après l’exécution de M sur x
pendant t étapes de calcul. En utilisant alors la minimisation non bornée, on obtient une
simulation des machines de Turing par les fonctions RecG, et on remarque alors qu’une
fonction RecG ne nécessite qu’une utilisation de la minimisation non bornée par rapport à
une fonctions RPG.
On montre d’abord le sens direct.
14.2. Machines de Turing 301

Lemme 14.2.3.1. Pour toute fonction récursive généralisée f , il existe une machine de
Turing telle que fM = f .

Démonstration. A FAIRE

Pour montrer le sens réciproque, on doit d’abord décider d’une façon de coder une
machine de Turing M sur un alphabet Σ par un mot. Comme le nom des états d’une
machine ne sont pas en eux-mêmes importants, on peut remplacer l’ensemble Q par un
entier n indiquant le nombre d’états. Quitte à n’avoir qu’un état initial et qu’un état
d’arrêt, on peut considérer que Q = {0, . . . , n − 1}, que 0 est l’état initial et n − 1 est
l’état final. Pour l’alphabet de bande, on peut construire un nouvel alphabet de bande
en considérant deux symboles α, β ∈ / Σ. Si Γ = Σ ⊔ {□} ⊔ Σ′ et Σ′ = {a1 , . . . , am }, alors
on peut coder ai par αi β et □ par β. Ainsi, on peut retenir uniquement l’entier m et
travailler sur l’alphabet Σ ∪ {α, β}. La fonction de transition, elle, va s’encoder de façon
plus technique. On a ainsi un codage d’une machine de Turing sur Σ. Le mot associé doit
pouvoir exprimer les symboles de Γ, donc s’écrire au moins sur Σ ∪ {α, β}. Il doit aussi
permettre d’écrire des nombres pour exprimer n et m. On comptera n et m par αn et αm
respectivement, en mettant un symbole β pour séparer ces deux nombres.

Définition 14.2.3.2 (Codage d’une fonction de transition). Soit Σ un alphabet,


α, β ∈
/ Σ, δ la fonction de transition d’une machine de Turing sur Σ à n états et d’alphabet
de bande Γ = Σ ⊔ {□} ⊔ {a1 , . . . , ap }. On définit le code de sa fonction de transition
⟨δ⟩ ∈ (Σ ∪ {α, β})⋆ par
⟨δ⟩ ≜

Définition 14.2.3.3 (Codage d’une machine de Turing). Soit Σ un alphabet, et


α, β ∈
/ Σ. On définit le code d’une machine de Turing M = (Q, q0 , qa , Γ, □, δ) comme le
mot sur Σ ∪ {α, β} suivant :
⟨M ⟩ ≜ α|Q| βα|Γ\Σ| β
302 Chapitre 14. Fonctions récursives, machines de Turing
Cinquième partie

Théorie de la démonstration

303
Chapitre 15
Théorème de complétude méta et calcul des
séquents

B la

305
306 Chapitre 15. Calcul des séquents
Bibliographie

[Ale24] P. Alexandroff. « Über die Metrisation der im Kleinen kompakten topo-


logischen Räume ». In : Mathematische Annalen 92 (1924), p. 294-301. url :
http://eudml.org/doc/159072 (cf. p. 222).
[AC98] Roberto M. Amadio et Pierre-Louis Curien. Domains and lambda-calculi.
T. 46. Cambridge tracts in theoretical computer science. Cambridge University
Press, 1998. isbn : 978-0-521-62277-6 (cf. pp. xiii, 131).
[BMV16] I. Belghiti, R. Mansuy et J.J. Vie. Les clefs pour l’info. Im-et-Ker. Calvage
& Mounet, 2016. isbn : 9782916352657. url : https://books.google.fr/
books?id=-9EAMQAACAAJ (cf. pp. 24, 26).
[Bou07] N. Bourbaki. Théorie des ensembles. Bourbaki, Nicolas. Springer Berlin Hei-
delberg, 2007. isbn : 9783540340355. url : https://books.google.fr/books?
id=VDGifaOQogcC (cf. p. xiii).
[Bou71] N. Bourbaki. Topologie générale : Chapitres 1 à 4. Eléments de mathématique
vol. 1. Diffusion C.C.L.S., 1971. url : https://books.google.fr/books?id=
x3y3AQAACAAJ (cf. pp. xiii, 71).
[Bur97] Cesare Burali-Forti. « Una questione sui numeri transfiniti ». In : Rendiconti
del Circolo Matematico di Palermo 11 (1897). Auf Englisch nachgedruckt in
GlossarWiki :Heijenoort :2002, p. 154-164. issn : 0009-725X. url : http :
//gdz.sub.uni-goettingen.de/dms/load/img/?PPN=PPN599472057_0011&
DMDID=DMDLOG_0011 (cf. p. 142).
[Can87] G. Cantor. Mitteilungen zur Lehre vom Transfiniten. vol. 1. Pfeffer, 1887.
url : https://books.google.fr/books?id=L7IhnQEACAAJ (cf. p. 156).
[Can91] G. Cantor. « Ueber eine elementare Frage der Mannigfaltigketislehre. » In :
Jahresbericht der Deutschen Mathematiker-Vereinigung 1 (1891), p. 72-78. url :
http://eudml.org/doc/144383 (cf. p. 162).
[Car] Olivier Carton. Langages formels, calculabilité et complexité. T. 28 (cf. pp. xv,
272, 273).
[Coh63] Paul J. Cohen. « THE INDEPENDENCE OF THE CONTINUUM HYPO-
THESIS ». In : Proceedings of the National Academy of Sciences 50.6 (1963),
p. 1143-1148. doi : 10.1073/pnas.50.6.1143. eprint : https://www.pnas.
org/doi/pdf/10.1073/pnas.50.6.1143. url : https://www.pnas.org/doi/
abs/10.1073/pnas.50.6.1143 (cf. p. 212).

307
308 Bibliographie

[CL93] R. Cori et D. Lascar. Logique mathématique : Fonctions récursives, théorème


de Gödel, théorie des ensembles, théorie des modèles. Axiomes (Paris). Masson,
1993. isbn : 9782225840807. url : https://books.google.fr/books?id=wN_
uAAAAMAAJ (cf. p. x).
[CLK03] R. Cori, D. Lascar et J.L. Krivine. Logique mathématique : cours et exercices
corrigés. Licence . Master vol. 1. Dunod, 2003. isbn : 9782100054527 (cf. pp. x,
xii, 6).
[Ded72] Richard Dedekind. Continuity and irrational numbers. Open Court, 1872 (cf.
p. 131).
[Deh17] P. Dehornoy. La théorie des ensembles : Introduction à une théorie de l’in-
fini et des grands cardinaux. Tableau noir. Calvage et Mounet, 2017. isbn :
9782916352404. url : https://books.google.fr/books?id=ku1TswEACAAJ
(cf. p. xiii).
[Dei04] O. Deiser. Einführung in Die Mengenlehre : Die Mengenlehre Georg Cantors
und Ihre Axiomatisierung Durch Ernst Zermelo. Springer-Lehrbuch. Springer,
2004. isbn : 9783540204015. url : https://books.google.fr/books?id=
94jSPGG1UHkC (cf. p. 156).
[Eas70] William B. Easton. « Powers of regular cardinals ». In : Annals of Mathematical
Logic 1.2 (1970), p. 139-178. issn : 0003-4843. doi : https://doi.org/10.
1016/0003- 4843(70)90012- 4. url : https://www.sciencedirect.com/
science/article/pii/0003484370900124 (cf. p. 169).
[Fod56] G. Fodor. « Eine Bemerkung zur Theorie der regressiven Funktionen ». German.
In : Acta Sci. Math. 17 (1956), p. 139-142. issn : 0001-6969 (cf. p. 181).
[Göd38] K. Gödel. « The consistency of the axiom of choice and of the generalized
continuum-hypothesis ». In : Proceedings of the National Academy of Sciences
of the United States of America 24 (1938) (cf. p. 199).
[Göd31] K. Gödel. « Über Formal Unentscheidbare Sätze der Principia Mathematica
Und Verwandter Systeme I ». In : Monatshefte für Mathematik 38.1 (1931),
p. 173-198 (cf. p. 282).
[Göd29] Kurt Gödel. Über die Vollständigkeit des Logikkalküls. ger. 1929 (cf. pp. 47,
52).
[Grä11] George Grätzer. Lattice Theory : Foundation. Jan. 2011. isbn : 978-3-0348-
0017-4. doi : 10.1007/978-3-0348-0018-1 (cf. pp. xii, 70).
[Hal66] Paul R. Halmos. « Lectures on Boolean Algebras ». In : Journal of Symbolic
Logic 31.2 (1966), p. 253-254. doi : 10.2307/2269816 (cf. p. 67).
[Har15] F. Hartogs. « Über das Problem der Wohlordnung. » In : Mathematische
Annalen 76 (1915), p. 438-443. url : http://eudml.org/doc/158701 (cf.
p. 153).
[Has21] N.E.H. Hassan. Topologie générale et espaces normés - 2e éd. : Cours et
exercices corrigés. Dunod, 2021. isbn : 9782100835362. url : https://books.
google.fr/books?id=YTZKEAAAQBAJ (cf. p. xiii).
[Hei67] J. van Heijenoort. From Frege to Godel : A Source Book in Mathematical
Logic, 1879-1931. Source books in the history of the sciences. Harvard U.P.,
1967. url : https://books.google.fr/books?id=e1pbwgEACAAJ (cf. p. 282).
Bibliographie 309

[Hen49] Leon Henkin. « The Completeness of the First-Order Functional Calculus ».


In : The Journal of Symbolic Logic 14.3 (1949), p. 159-166. issn : 00224812.
url : http://www.jstor.org/stable/2267044 (visité le 17/08/2024) (cf.
p. 47).
[Hes06] G. Hessenberg. Grundbegriffe der Mengenlehre. Abhandlungen der Fries’schen
Schule. Vandenhoeck & Ruprecht, 1906. url : https://books.google.fr/
books?id=m2RaAAAAcAAJ (cf. p. 160).
[Jac99] B. Jacobs. Categorical Logic and Type Theory. Studies in Logic and the
Foundations of Mathematics 141. Amsterdam : North Holland, 1999 (cf. pp. 4,
6, 43).
[Kle79] Stephen C. Kleene. « Origins of recursive function theory ». In : 20th Annual
Symposium on Foundations of Computer Science (sfcs 1979). 1979, p. 371-382.
doi : 10.1109/SFCS.1979.33 (cf. p. xv).
[Kna28] Bronisław Knaster. « Un théorème sur les fonctions d’ensembles ». In : Annales
de la Société Polonaise de Mathématiques 6 (1928), p. 133-134 (cf. p. 11).
[Kön04] J. König. « Zum Kontinuum-Problem ». In : Verhandlungen des dritten Inter-
nationalen Mathematiker-Kongresses in Heidelberg (1904) (cf. p. 168).
[Kri98] J.L. Krivine. Théorie des ensembles. Nouvelle bibliothèque mathématique.
Cassini, 1998. isbn : 9782842250140 (cf. pp. xiii, 91).
[Kun83] Kenneth Kunen. Set theory - an introduction to independence proofs. T. 102.
Studies in logic and the foundations of mathematics. North-Holland, 1983. isbn :
978-0-444-86839-8 (cf. p. xiii).
[Lev65] A. Levy. A hierarchy of formulas in set theory. English. T. 57. Mem. Am.
Math. Soc. Providence, RI : American Mathematical Society (AMS), 1965. doi :
10.1090/memo/0057 (cf. p. 200).
[Löw15] L. Löwenheim. « Über Möglichkeiten im Relativkalkül ». In : Mathematische
Annalen 76 (1915), p. 447-470. url : http://eudml.org/doc/158703 (cf.
p. 54).
[MP22] B. Monin et L. Patey. Calculabilité : Aléatoire, Mathématiques à Rebours et
hypercalculabilité. Calvage & Mounet, 2022 (cf. p. xv).
[Moo12] G.H. Moore. Zermelo’s Axiom of Choice : Its Origins, Development, and
Influence. Dover books on mathematics. Dover Publications, 2012. isbn :
9780486488417. url : https://books.google.fr/books?id=3RLGKcEjVIoC
(cf. p. 190).
[Mos49] Andrzej Mostowski. « An undecidable arithmetical statement ». In : Funda-
menta mathetnaticae 19.36 (1949), p. 118-119 (cf. p. 120).
[RDN04] Christophe Raffalli, René David et Karim Nour. Introduction à la Logique,
Théorie de la démonstration (2nd édition). Sciences Sup. Dunod, 2004, p. 368.
url : https://hal.science/hal-00396917 (cf. p. xii).
[Rut67] D. E. Rutherford. « Introduction to Lattice Theory ». In : Journal of Symbolic
Logic 32.4 (1967), p. 542-542. doi : 10.2307/2270233 (cf. p. xii).
[Sil+81] Jack Silver, Fred Galvin, Keith J. Devlin et R. B. Jensen. « On the Singular
Cardinals Problem ». In : Journal of Symbolic Logic 46.4 (1981), p. 864-866.
doi : 10.2307/2273234 (cf. p. 185).
310 Bibliographie

[Sko20] T.A. Skolem. Logisch-kombinatorische Untersuchungen über die Erfüllbarkeit


oder Beweisbarkeit mathematischer Sätze nebst einem Theoreme ber dichte
Mengen. Skrifter utgitt av Videnskapsselskapet i Kristiania : Matematisk-
naturvidenskabelig Klasse. 1920. url : https://books.google.fr/books?
id=9arWPQAACAAJ (cf. p. 54).
[Sto36] M. H. Stone. « The Theory of Representation for Boolean Algebras ». In :
Transactions of the American Mathematical Society 40.1 (1936), p. 37-111. issn :
00029947, 10886850. url : http://www.jstor.org/stable/1989664 (visité le
17/08/2024) (cf. pp. xiii, 91, 97).
[Tar55] Alfred Tarski. « A lattice-theoretical fixpoint theorem and its applications. »
In : Pacific Journal of Mathematics 5.2 (1955), p. 285-309 (cf. p. 69).
[TC83] Alfred Tarski et John Corcoran, éd. Logic, Semantics, Metamathematics :
Papers From 1923 to 1938. New York, NY, USA : Hackett Publishing Company,
1983 (cf. p. 56).
[Tik35] Andrey Nikolayevich Tikhonov. « Über einen Funktionraum ». In : Mathema-
tische Annalen (1935) (cf. p. 91).
[Tro73] Anne S. Troelstra. Metamathematical Investigation of Intuitionistic Arith-
metic and Analysis. New York, Springer, 1973 (cf. p. 117).
[TUK40] JOHN W. TUKEY. Convergence and Uniformity in Topology. (AM-2). Prince-
ton University Press, 1940. isbn : 9780691095684. url : http://www.jstor.
org/stable/j.ctt1b9x2d2 (visité le 17/08/2024) (cf. p. 60).
[Tur36] Alan M. Turing. « On Computable Numbers, with an Application to the
Entscheidungsproblem ». In : Proceedings of the London Mathematical Society
2.42 (1936), p. 230-265. url : http://www.cs.helsinki.fi/u/gionis/cc05/
OnComputableNumbers.pdf (cf. pp. xv, 298).
[Ula30] S. Ulam. « Zur Masstheorie in der allgemeinen Mengenlehre ». ger. In : Funda-
menta Mathematicae 16.1 (1930), p. 140-150. url : http://eudml.org/doc/
212487 (cf. p. 179).
[WIN96] G. WINSKELL. The Formal Semantics of Programming Languages : An
Introduction. MIT Press, 1996. url : https://books.google.fr/books?id=
YpIoygAACAAJ (cf. pp. xii, 7, 8, 12).
[Wol01] P. Wolper. Introduction à la calculabilité : cours et exercices corrigés. Sciences
SUP. : Mathématiques. Dunod, 2001. isbn : 9782100048533. url : https :
//books.google.fr/books?id=MH2yPAAACAAJ (cf. p. xv).
[Zer04] E. Zermelo. « Beweis, daß jede Menge wohlgeordnet werden kann. (Aus einem
an Herrn Hilbert gerichteten Briefe) ». In : Mathematische Annalen 59 (1904),
p. 514-516. url : http://eudml.org/doc/158167 (cf. p. 157).
[Zer30] E. Zermelo. « Über Grenzzahlen und Mengenbereiche ». ger. In : Fundamenta
Mathematicae 16.1 (1930), p. 29-47. url : http://eudml.org/doc/212506 (cf.
p. 190).
[Zor35] Max Zorn. « A remark on method in transfinite algebra ». In : Bulletin of the
American Mathematical Society 41.10 (1935), p. 667-670 (cf. pp. 59, 60, 154).
Bibliographie 311

Vous aimerez peut-être aussi