Logique
Logique
Printemps 2024
Version compilée le 29 juin 2025 à 21 h 05 min 15 s
Nanos gigantum umeris insidentes
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
v
vi Table des matières
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
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
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.
Préliminaires
1
Chapitre 1
Induction
’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.
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 :
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
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
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.
f α(c)
X α(c) Y α(c)
c fc
f
X Y
∀n ∈ N, ∃!f : Xn → Y, ∀c ∈ C,
∀(x1 , . . . , xp ) ∈ (Xn )α(c) , f ((c, x1 , . . . , xp )) = fc (fn (x1 ), . . . , fn (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
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.
x1 ∈ P et x2 ∈ P et . . . et xp ∈ P =⇒ c(x1 , . . . , xp ) ∈ P
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.
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
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. 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
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.
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
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).
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 .
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.
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 )
Remarque 1.2.1.11. On définira dorénavant des relations inductives seulement par des
règles.
pair(ℓ)
pair(nil)
pair(cons(a, cons(b, ℓ)))
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
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
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.
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
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.
P, Q ::= x | ⊤ | ⊥ | ¬P | P ∨ Q | P ∧ Q | P → Q
15
16 Chapitre 2. Logique propositionnelle
(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).
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.
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.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
ρ |= 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.
∀ρ ∈ E, (∀Q ∈ P, ρ |= Q) =⇒ ρ |= P
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é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
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 Γ ⊕ ∆.
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
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
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.
⊢, 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 à
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
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
• ⊤ : 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
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
si l’on suppose que Valρ ( (Γ, P, Q)) ≤ Valρ ( ∆), on en déduit directement que
V W
Q = Q, que P ⊢ Q =⇒ P ⊨ Q.
V W
On en déduit donc, comme P = P et
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.
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 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
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
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.
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.
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é.
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.
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 :
où a ∈ Atom(Σ) et x ∈ Var.
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.
• 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(ρ)
ρ(t[u/x]) = ρ(t)[ρ(u)/x]
32 Chapitre 3. Calcul des prédicats
∀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 ρ.
−M
ρ : Term(Σ) −→ |M|
• 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.
(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 φ = ¬ψ, 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
= min (Valρ[y7→m][x7→uM
ρ ]
(ψ))
m∈|M|
= min (Valρ[x7→uM
ρ ][y7→m]
(ψ))
m∈|M|
= Valρ[x7→uM
ρ ]
(∀y, ψ)
= max (Valρ[y7→m][x7→uM
ρ ]
(ψ))
m∈|M|
= max (Valρ[x7→uM
ρ ][y7→m]
(ψ))
m∈|M|
= Valρ[x7→uM
ρ ]
(∃y, ψ)
M, ρ |= φ ≜ Valρ (φ) = 1
∀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.
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.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}
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 ̸⊨ ⊥.
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.
φ : |M| −→ |N |
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.
tM N
ρ = tφ◦ρ
38 Chapitre 3. Calcul des prédicats
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.
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
M, ρ |= ¬B ⇐⇒ M, ρ ̸|= B ⇐⇒ N , φ ◦ ρ ̸|= B ⇐⇒ N , φ ◦ ρ |= ¬B
M, ρ |= B ∨ C ⇐⇒ (M, ρ |= B) ∨ (M, ρ |= C)
⇐⇒ (N , φ ◦ ρ |= B) ∨ (N , φ ◦ ρ |= C)
⇐⇒ N , φ ◦ ρ |= B ∨ C
3.2. Bases de théorie des modèles 39
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
A∈Γ ⊤ Γ, ¬A ⊢ ⊥
Ax Γ⊢⊤ ⊥c
Γ⊢A Γ⊢A
Γ, A ⊢ ⊥ Γ ⊢ ¬A Γ ⊢ A ¬e
¬i
Γ ⊢ ¬A Γ⊢⊥
Γ, A ⊢ B Γ⊢A→B Γ ⊢ A →e
→i
Γ⊢A→B Γ⊢B
Γ ⊢ A[v/x] † Γ ⊢ ∀x, A
∀ ∀e
Γ ⊢ ∀x, A i Γ ⊢ A[t/x]
=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 → ⊥.
Γ, 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 ».
les variables, et donc d’introduire des environnements en plus. Nous allons donc utiliser la
proposition 3.2.1.5.
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 ⊨⊆⊢.
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
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
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.
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]
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 ⊢ ⊥
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
puis
p
^
!
A1 , . . . , A n ⊢ ¬ ∃yi , (∃x, F ) → 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 ′ ⊬ ⊥.
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.
t≡u≜T′⊢t=u
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.
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.
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.
T′≜T ∪
[
(ca ̸= cb )
a,b∈κ
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.
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
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.
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.
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
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
Exercice 4.1.4.7. Montrer que l’ordre défini plus tôt est bien un ordre bien fondé.
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}
f : P(X) → Y
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.
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.
x ≤∨ y ≜ x · y = y
x ≤∧ y ≜ x · y = x
4.2. Treillis 63
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
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.
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.
x ∧ y = x ∧ (x ∨ y)
=x
x ∨ y = (x ∧ y) ∨ y
=y
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).
Exercice 4.2.2.4. Soit une signature Σ, montrer que L(Σ) 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
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
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
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.
Γ ⊢NJ ⊥
⊥
Γ ⊢NJ A i
68 Chapitre 4. Théorie des ensembles ordonnés
¬(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.
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.
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}
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.
fix(f ) ≜ {x ∈ X | f (x) = x}
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,
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 :
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
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.
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 ⊥).
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 ∪ 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
^ ^
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) = ⊥
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
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.
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(Σ)/ ⊣⊢
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 .
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.
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.
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.
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.
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.
χU : B −→ {⊥, ⊤}
(
⊤ si x ∈ U
x 7−→
⊥ si x ∈
/U
x ∧ y ∈ U ⇐⇒ x ∈ U et y ∈ U
x ∨ y ∈ U ⇐⇒ x ∈ U ou y ∈ U
Dans l’autre sens, étant donné un morphisme f : B → {⊥, ⊤}, on lui associe
Uf ≜ {x ∈ B | f (x) = ⊤}
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
79
80 Chapitre 5. Topologie
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
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
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
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
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).
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.
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.
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.
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
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 :
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
La notion de limite permet aussi de caractériser la continuité : une fonction est continue
quand la limite commute avec l’application par f .
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.
∃x ∈ X, ∀V ∈ Vx , ∃n ∈ N, ∀m ≥ n, um ∈ V
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
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
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
R ≜ {X \ A | A ∈ S}
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.
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
Ω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}
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
( )
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
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
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 ).
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).
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.
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.
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}
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.
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 ̸= ∅
(X, ΩX ) ∼
= (Spec(KΩX ), ΩSpec(KΩX ) )
φ : 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
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
K ′ = {x | K ∈ φ(x)}
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).
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) ≤ ε}
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.
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.
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.
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.
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.
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.
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
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.
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|).
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.
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 :
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é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.
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 :
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
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)
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
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
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→∞
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é
mais cette inégalité passe directement à la limite puisque, pour tout n, le fait que d
est une distance implique
• 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
ι : 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̂.
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
109
Chapitre 6
Formaliser les mathématiques
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.
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
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).
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
x × y ≜ {(a, b) | a ∈ x, b ∈ y}
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
Dom(R)(x) ≜ ∃y.R(x, y)
et la collection de l’image de R :
Im(R)(y) ≜ ∃x.R(x, y)
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.
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.
∃x, ∅ ∈ x ∧ ∀y, y ∈ x =⇒ S y ∈ x
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 }
x ∈ N =⇒ ∀Y, Y ⊆ X ∧ ∅ ∈ Y ∧ (∀a, a ∈ Y =⇒ S a ∈ Y ) =⇒ x ∈ Y
∀X, ∅ ̸= X ∧ ∅ ∈
/ X ∧ (∀x, y ∈ X, x ∩ y ̸= ∅ =⇒ x = y)
=⇒ ∃C, ∀x ∈ X, ∃y, C ∩ x = {y}
6.1. Axiomes de ZFC 117
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.
φ′ ≜ ∀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].
∀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))
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,
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.
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 ×.
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
choix.
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
∀X ⊆ M, ∃x ∈ X, R−1 [x] ∩ X = ∅
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 :
Et l’utilisation du théorème 4.1.4.9 permet de conclure que cette relation est bien
fonctionnelle.
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
n ≤ m ≜ ∃k ∈ N, m = n + k
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.
n + (r + q) = p + m + r
∀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 ′
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)
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.
x + (−x) = (n + m, m + n)
(n, m) × (p, q) = (n × p + m × q, m × p + n × q)
On montre qu’on peut injecter le demi-anneau (N, 0, +, 1, ×) dans l’anneau (Z, 0, +, 1, ×).
ι : N −→ Z
n 7−→ (n, 0)
• pour tous n, m ∈ N :
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.
(m, m′ ) ∼ (a, a′ ) ≜ ∃k ∈ M, m ⋆ a′ ⋆ k = m′ ⋆ a ⋆ k
m ⋆ (a ⋆ a′ ⋆ k ⋆ k ′ ) ⋆ b′ = m′ ⋆ (a ⋆ a′ ⋆ k ⋆ k ′ ) ⋆ b
(m ⋆ n) ⋆ (a′ ⋆ b′ ) ⋆ (k ⋆ k ′ ) = (m′ ⋆ n′ ) ⋆ (a ⋆ b) ⋆ (k ⋆ k ′ )
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é.
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
fˆ
ι
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.
(p, q) ∼ (p′ , q ′ ) ≜ p × q ′ = p′ × q
6.2. Construction des autres ensembles de nombres 129
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
Exercice 6.2.3.2. Montrer qu’on peut munir Z × (N \ {0}) d’une structure d’anneau en
définissant les opérations
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′ )
p × r × q ′ × s ′ = q × s × p′ × r ′
(p × s + q × r) × q ′ × s′ = (p′ × s′ + q ′ × r′ ) × q × s
p × q ′ × s × s′ + r × q × q ′ × s′ = p′ × q × s × s′ + r′ × q × q ′ × s
• 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
a × b × s′ × t′ = a′ × b′ × s × t
a≤b≜b−a∈N
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é.
p
Q+ ≜ | p, q ∈ N
q
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
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.
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
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.
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.
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
fˆ(Y ) =
_
f (x)
x∈Y
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.
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
Y + (Z + A) = {y + (z + a) | y ∈ Y, z ∈ Z, a ∈ A}
= {(y + z) + a | y ∈ Y, z ∈ Z, a ∈ A}
= (Y + Z) + A
Y + ι(0) = {y + 0 | y ∈ Y }
= {y | y ∈ Y }
=Y
−Y ≜ X \ {−y | y ∈ Y }
Y + Z = {y + z | y ∈ Y, z ∈ Z}
= {z + y | z ∈ Z, y ∈ Y }
=Z +Y
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.
Remarque 6.2.4.20. Ces constructions peuvent être définies grâce au fait que Q et Q⋆+
sont non majorés.
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
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.
(∀x ∈ α, x ∈
/ x) ∧ (∀x, y, z ∈ α, x ∈ y ∧ y ∈ z =⇒ x ∈ z)
∀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.
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é.
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.
La classe Ord est elle-même bien ordonnée pour ∈, ce que l’on prouve dans la proposition
suivante.
Notation 7.1.1.8. Comme les ordinaux appartiennent à une classe elle-même ordonnée,
on écrira souvent α < β ou α ≤ β plutôt que α ∈ β ou α ⊆ β.
x ∈ α, donc x ∈ X.
S
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. 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 :
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.
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
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 :
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.
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.
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 :
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.
α = 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.
β<λ
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
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.
• α × β = 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 γ ′
= (α + β) + γ
α × (β + γ) = α × S (β + γ ′ )
= α × (β + γ ′ ) + α
= α × β + α × γ′ + α
=α×β+α×γ
◦ si γ est limite et que l’équation est vérifiée pour tout δ < γ, alors
[
α × (β + γ) = α × ( β + δ)
δ<γ
[
= α × (β + δ)
δ<γ
[
= (α × β + α × δ)
δ<γ
[
=α×β+ α×δ
δ<γ
=α×β+α×γ
7.1. Ordinaux 151
α × (β × γ) = α × (β × γ ′ + β)
= α × (β × γ ′ ) + α × β
= (α × β) × γ ′ + α × β
= (α × β) × γ
◦ si γ est limite et que l’équation est vérifiée pour tout δ < γ, alors :
[
α × (β × γ) = α × ( β × δ)
δ<γ
[
= α × (β × δ)
δ<γ
[
= (α × β) × δ
δ<γ
= (α × β) × γ
1+α=1+S β
= S (1 + β)
=Sβ
=α
=ω∪α
=α
◦ si α = 0, alors 0 + 0 = 0.
◦ on suppose que 0 + α = α, alors
0 + S α = S (0 + α)
=Sα
=α
≤β+δ
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.
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 < η < α.
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
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.
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)
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.
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é.
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.
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 :
{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
• 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. 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.
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.
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
≤ ℵα
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 | ℵγ < κ}
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.
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).
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)
2Card(X) ≤ Card(X)Card(X)
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, ℶλ = ℶβ
β<λ
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.
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.
Définition 7.3.1.1 (Cofinalité). Soit α ∈ Ord, on dit qu’une partie X ⊆ α est cofinale si
∀β ∈ α, ∃γ ∈ X, β ≤ γ
Remarquons que, par définition, α est une partie cofinale dans lui-même, on a donc
l’inégalité cof(α) ≤ α.
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 ω.
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.
Lemme 7.3.1.4. Soit α un ordinal limite et X une partie cofinale dans α. Alors on a
l’égalité cof(α) = cof(type(X)).
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 α.
F ≜ {(0, γ) | γ ∈ β}
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
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.
ω ≤ 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(α) ≤ |α|.
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.
Proposition 7.3.2.1. Soient κ et µ deux cardinaux infinis. On peut trouver λ tel que
µ ≤ λ, cof(λ) = cof(κ), et même tel que ℵλ = λ.
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
∀α ∈ F, |α| < κ
F = κ, on en déduit le résultat.
S
Ainsi, comme
D’où le résultat.
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(κ) > κ.
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.
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
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 α.
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.
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.
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.
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 ∈ κ}
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.
Proposition 8.1.2.6. Une partie X est stationnaire si et seulement si elle intersecte tous
les clubs de κ.
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 .
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.
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.
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.
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α | α < λ}
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
encoreun 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 .
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 ({α}).
β(α)
(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
∀α ∈ 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.
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
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α }
α<κ α<β
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.
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
ω.
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.
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é
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.
Démonstration. Soit A ⊆ P(λ) tel que Card(A) = λ+ . On définit alors, pour tout X ∈ A :
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
∀β ∈ T, f (β) < ℵγ
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
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
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.
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
Le théorème central pour l’étude des modèles classes est que la cohérence est préservée
par ceux-ci.
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
∃.
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).
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
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.
Une conséquence première est que la hiérarchie est cumulative, ce qui signifie que les
ensembles sont de plus en plus grands.
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.
• 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.
• 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.
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.
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
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) = α.
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
= 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.
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)) < κ}
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<κ .
λ<κ
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.
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
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
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
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.
Proposition 9.2.2.4. Soit M une classe transitive. Alors toute formule φ ∈ ∆0 est absolue
pour M.
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.
• 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
∀x ∈ α, ∀y ∈ α, ∀z ∈ α, x ∈ y ∧ y ∈ z =⇒ x ∈ z
∀x ∈ α, ∀y ∈ α, x ̸= y =⇒ x ∈ y ∨ y ∈ x
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).
Si pour tout i ≤ k et n ∈ N, on a
Xn ≼Qi xi ,...,Qk xk ,ψ X
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 , ψ
∃x ∈ X, φX (a1 , . . . , ap ) ⇐⇒ ∃x ∈ X , φX (a1 , . . . , ap )
α∈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 ψ :
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
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.
Une première conséquence est un résultat assez peu surprenant, mais qu’il est intéressant
d’avoir.
ψ(y) ≜ x = y
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
φx (a) ≜ a ∈ x
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
Ln+1 = D(Ln )
= P(Ln )
= P(Vn )
= Vn+1
ψ(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α = α.
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.
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 .
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
est bien ∆0 , donc Y ∈ D(X) est un prédicat ∆0 . Maintenant, dire que Y = D(X) signifie
Proposition 9.3.1.11. V = L ∈ Π2 .
208 Chapitre 9. Modèles de ZFC
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
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
φ(b) ≜ ∃a ∈ x, f (x) = b
P ≜ {y ∈ M | y ⊆ x}
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
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.
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.
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
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 (β).
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 .
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κ .
Démonstration. Soit un cardinal infini λ, alors P(λ) ⊆ Hλ+ = Lλ+ , donc |P(λ)| ≤ λ+ .
212 Chapitre 9. Modèles de ZFC
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
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.
213
214 Chapitre 10. Théorie descriptive des ensembles
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+ρ
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
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
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
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
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
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}
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
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.
∃β < α, Yi ∈ Π0β
∀i ∈ N,[
Yi = Y
i∈N
Π0α ≜ {X \ Y | Y ∈ Σα0 }
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δ .
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
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
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
1 1
− ≤ 2−n−1
d(xp , Cn ) d(xq , Cn )
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.
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.
• 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
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.
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 Ω.
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
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
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
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
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
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.
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
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.
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.
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.
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
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
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
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.
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.
X1
X2
X0
..
.
Xn
X1
X0
X2
X2 ∪ · · · ∪ Xn
X3 ∪ · · · ∪ Xn
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.
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.
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).
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
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 .
f : NN −→ 2N
u 7−→ 1u0 01u1 . . .
234 Chapitre 10. Théorie descriptive des ensembles
Troisième partie
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
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
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.
∀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.
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.
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}
L0 ≜ {u ∈ Σ⋆ | u0 = 0}
Ldebut=fin ≜ {u ∈ Σ⋆ | u0 = u|u|−1 }
L ≜ {u ∈ Σ⋆ | u|u|−1 . . . u0 ∈ L}
Nous allons définir une nouvelle opération, fortement liée à la structure de Σ⋆ , qui nous
permettra de donner plus d’exemples de langages.
u0 ≜ ε ∀n ∈ N, un+1 = un ⋆ u
L ⋆ L′ ≜ {u ⋆ u′ | u ∈ L, u′ ∈ L′ }
• pour un langage L, le langage des mots dont toutes les concaténations sont encore
dans L :
Lstable⋆ ≜ {u ∈ Σ⋆ | ∀n ∈ N, un ∈ 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
Cε ≜ {L ⊆ Σ⋆ | ε ∈ L}
C⋆ ≜ {L ⊆ Σ⋆ | ∀u, v ∈ L, u ⋆ v ∈ L}
12.1. Alphabet, mot, langage 245
∀x ∈ M, x · e = e · x = x
∀x, y, z ∈ M, x · (y · z) = (x · y) · z
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.
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.
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
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.
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.
e, e′ ::= ∅ | a | e + e′ | ee′ | e⋆
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.
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.
a
start q0 q1
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.
LA ≜ {u ∈ Σ⋆ | A |= u}
• FP(A) ≜ {R ⊆ Q | R ∩ F ̸= ∅}
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.
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.
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.
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 }
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
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.
δ ⋆ (q0 , u) ∈ F ⇐⇒ δ ′⋆ (q0 , u) ∈ F
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.
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.
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.
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−→
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.
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
u ∈ L ⇐⇒ u ∈ Val(e)
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
∀p ∈ N, vwp s ∈ L
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
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.
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.
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 }
q1 0, 1
0
0, 1
start q0 start q0′ q1′ 0, 1
1
q2 0, 1
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).
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.
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
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
q ≡n+1 q ′ ⇐⇒ q ≡n q ′ ∧ ∀a ∈ Σ, δ ⋆ (q, a) ≡n δ ⋆ (q ′ , a)
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.
q ≡n q ′ ⇐⇒ q ≡n+1 q ′
|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.
∆Q ≜ {(q, q) | q ∈ Q}
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
h : Σ −→ MA
a 7−→ {(q, q ′ ) | δ(q, a) = q ′ }
et la partie
S ≜ {R ∈ MA | R ∩ ({q0 } × F ) ̸= ∅}
reconnaissent le langage L.
• 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
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
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.
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 ∪ {(, ), +, ×})⋆ .
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.
u = vAw u′ = vbw
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.
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∩Σ
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
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].
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.
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.
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.
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
′
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é.
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.
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)
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
T2
T1
T0
α v β w γ
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.
α : 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 )
⌜−⌝ : LG → N
282 Chapitre 13. Langages algébriques
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).
283
284 Chapitre 14. Fonctions récursives, machines de Turing
πkn : Nn −→ N
(x1 , . . . , xn ) 7−→ xk
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))
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.
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
Σ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
et Πp+1 par
Πp+1 ≜ × ◦ (Πp ◦ (π1p+1 , . . . , πpp+1 ), πp+1
p+1
)
Les deux fonctions sont donc RP.
Σ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.
− : 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 )
− ≜ 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
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
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 ))
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)
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.
∃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 )))
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 )
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
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
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)
consk%n : Σ⋆ −→ Σ⋆
u 7−→ u ⋆ (k%n)
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−1
X
m= (ai + 1)ni
i=0
On peut alors associer à une fonction RPG f une fonction RPG ne prenant en argument
et ne retournant que des entiers.
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
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)
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 ∈ Γ :
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 ))⟩
\
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
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.
Démonstration. A FAIRE
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
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
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
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.
δ : Q × Γ −→ Q × Γ × {, }
On note TM(Σ) (pour Turing machine) l’ensemble des machines de Turing sur Σ.
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.
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
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.
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
307
308 Bibliographie