David Madore's WebLog: Introduction aux mathématiques constructives : 2. entiers naturels et principes d'omniscience

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #2798 [older| permalink|newer] / ↓Entrée #2798 [précédente| permalien|suivante] ↓

(vendredi)

Introduction aux mathématiques constructives : 2. entiers naturels et principes d'omniscience

Je continue ma série d'introduction aux mathématiques constructives en parlant d'entiers naturels, de suites et de « principes d'omniscience ». Ce billet est la continuation de celui-ci, qu'il n'est pas forcément nécessaire d'avoir intégralement lu mais auquel je renvoie au moins pour l'avant-propos expliquant de quoi il est question (je renvoie aussi à ce billet plus ancien pour une explication générale et historique à ce que sont les maths constructives).

Table des matières

L'ensemble ℕ des entiers naturels, et diverses formes de récurrence

Comme en maths classiques, il y a plusieurs approches fondationnelles pour faire apparaître l'ensemble des entiers naturels, mais il faut forcément postuler quelque chose (au moins l'existence d'une sorte d'ensemble infini) ; si on aime le point de vue ensembliste, pourra identifier, comme proposé par von Neumann, 0 avec ∅, 1 avec {0}={∅}, 2 avec {0,1}={∅,{∅}}, 3 avec {0,1,2}, etc., mais il est sans doute préférable de traiter les entiers naturels comme « atomiques » : je n'ai pas envie de rentrer dans ces considérations-là. Toujours est-il que, d'une manière ou d'une autre, on va vouloir postuler ou démontrer que :

Il existe un ensemble noté ℕ et appelé ensemble des entiers naturels, muni d'un élément 0∈ℕ (appelé zéro) et d'une fonction S:ℕ→ℕ (la fonction successeur), vérifiant le principe de récurrence :

‣ Si E est un ensemble quelconque, eE un élément et f:EE une fonction, alors il existe une unique u:ℕ→E telle que u(0) = e et uS = fu (c'est-à-dire u(S(n)) = f(u(n)) pour tout n∈ℕ).

On dit alors que u est construite par récurrence par itération de f à partir de la valeur initiale e. (Concrètement, u(0)=e, u(1)=f(e), u(2)=f(f(e)) et ainsi de suite.)

Comme en maths classiques, il existe toutes sortes de variations autour de ce principe de récurrence. Celui que je viens d'énoncer est un principe de récurrence « catégorique » ou « universel » (parce qu'on peut le décrire de façon savante en théorie des catégories) ; mais on peut en déduire d'autres principes peut-être plus familiers, comme les suivants (ce que je raconte ci-dessous n'est pas spécialement liée aux maths constructives, mais comme je me suis un peu gratté la tête pour retrouver comment les obtenir, autant prendre la peine d'écrire ces preuves explicitement) :

  • Récurrence avec paramètre : si E est un ensemble quelconque, eE un élément et g:ℕ×EE une fonction, alors il existe une unique u:ℕ→E telle que u(0) = e et u(S(n)) = g(n,u(n)) pour tout n∈ℕ.

    Autrement dit, dans une définition par récurrence, on a le droit d'utiliser l'indice n du terme défini et pas juste la valeur du terme précédent.

    (Pour le démontrer à partir du principe de récurrence tel que je l'ai énoncé plus haut, il suffit d'appliquer ce dernier à l'ensemble ℕ×E avec la valeur initiale (0,e) et f(n,v) = (S(n),g(n,v)) : la première coordonnée du U:ℕ→ℕ×E ainsi obtenu est forcément l'identité d'après l'unicité dans le principe de récurrence sans paramètres, et la condition sur la seconde coordonnée est exactement la condition de la récurrence avec paramètre. ∎)

  • Récurrence sur les propriétés : si P⊆ℕ est une partie de ℕ telle que 0∈P et ∀n∈ℕ.(nPS(n)∈P), alors en fait P=ℕ.

    Autrement dit, si une propriété est vraie en 0 et est vraie en S(n) à chaque fois qu'elle est vraie en n, alors elle est vraie en tout n∈ℕ.

    Démonstration à partir des points précédents : Déjà, on peut déjà remplacer P⊆ℕ par sa fonction indicatrice p:ℕ→Ω, qui vérifie du coup p(0)=⊤ et ∀n∈ℕ.(p(n) ⇒ p(S(n))), et le but est de montrer que p vaut constamment ⊤.

    Si à la place de ∀n∈ℕ.(p(n) ⇒ p(S(n))) on avait fait l'hypothèse ∀n∈ℕ.(p(n) ⇔ p(S(n))), c'est-à-dire ∀n∈ℕ.(p(S(n))=p(n)) ce serait facile puisque c'est une relation de récurrence sur la fonction p qui est aussi vérifiée par la fonction constamment égale à ⊤, donc l'unicité dans le principe de récurrence, appliqué à E=Ω, e=⊤ et f=idΩ montre que p(n)=⊤ pour tout n.

    Mais comme on a seulement fait l'hypothèse ∀n∈ℕ.(p(n) ⇒ p(S(n))), il faut s'y ramener. Voici une possibilité (il y a peut-être plus simple, je ne sais pas) : on définit q:ℕ→Ω par récurrence par q(0)=⊤ et q(S(n)) = p(n)∧q(n) (ceci utilise la récurrence avec paramètre : E=Ω, e=⊤ et g(n,v) = p(n)∧v dans la notation du point précédent), et on définit aussi r(n) = p(n)∧q(n). Alors r(n) = p(n)∧q(n) = q(S(n)) par définition, et comme p(n) implique p(S(n)) (c'est notre hypothèse), on voit que r(n) implique p(S(n))∧q(S(n)), c'est-à-dire précisément r(S(n)) ; or réciproquement, r(S(n)) signifie p(S(n))∧q(S(n)), ce qui implique notamment q(S(n)), qui est égal à r(n) ; bref, on a montré ∀n∈ℕ.(r(n) ⇔ r(S(n))). Par ce qui vient d'être dit (paragraphe précédent), on voit que r(n) est vrai pour tout n, c'est-à-dire que p(n)∧q(n) l'est, et notamment p(n) est vrai pour tout n. ∎

On peut alors démontrer la proposition fondamentale suivante :

Proposition : tout entier naturel n est soit égal à 0 soit est le successeur d'un entier naturel m (c'est-à-dire n=S(m)) ; de plus, ces deux cas sont exclusifs (c'est-à-dire que zéro n'est pas le successeur d'un entier naturel) et le m dans le deuxième cas est unique (c'est-à-dire que la fonction S est injective).

Démonstration : On va observer successivement les points suivants :

‣ ① Tout entier naturel est soit 0 soit de la forme S(m) (autrement dit, ∀n∈ℕ.(n=0 ∨ ∃m∈ℕ.(n=S(m)))).

Ce point ① se démontre par une récurrence triviale sur n : la propriété que je viens de dire est trivialement vraie en 0 et trivialement vraie en S(m) si elle l'est en m (on n'a même pas besoin d'utiliser l'hypothèse de récurrence !).

Il reste à expliquer que la disjonction est exclusive et que le m est unique.

À cet effet, notons ℕ⊎{⬥} la réunion disjointe de ℕ et d'un singleton dont l'élément sera noté ‘⬥’.

Alors il existe une (unique) fonction D : ℕ → ℕ⊎{⬥} telle que D(0)=⬥ et D(S(n))=n pour tout n∈ℕ. En effet, je viens d'en donner une définition par récurrence avec paramètres (et j'ai expliqué plus haut pourquoi une telle définition est légitime).

Considérons dans l'autre sens la fonction S′ : ℕ⊎{⬥} → ℕ définie par S′(⬥)=0 et S′(n)=S(n) si n∈ℕ : cette définition est légitime par les propriétés générales des unions disjointes (définir une fonction sur XY revient à la définir sur X et sur Y séparément).

‣ ② Les fonctions D : ℕ → ℕ⊎{⬥} et S′ : ℕ⊎{⬥} → ℕ qui viennent d'être définies sont des bijections réciproques entre ℕ et ℕ⊎{⬥}.

En effet le fait que DS′=idℕ⊎{⬥} est immédiat sur les définitions, et le fait que S′∘D=id se vérifie séparément pour 0 et pour S(m), ce qui, d'après le point ①, suffit à conclure.

‣ ③ La fonction S est injective : ∀m₁∈ℕ.∀m₂∈ℕ.((S(m₁)=S(m₂))⇒(m₁=m₂)).

Ceci découle du point ② : si S(m₁)=S(m₂) alors D(S(m₁))=D(S(m₂)), c'est-à-dire m₁=m₂. (On, si on préfère : S est la restriction à ℕ de la fonction S′ qui est bijective donc injective, donc S elle-même est injective.)

‣ ④ L'élément 0 de ℕ n'est pas de la forme S(m) (i.e., ¬∃m∈ℕ.(0=S(m)), donc la disjonction au point ① est exclusive).

En effet, si S(m)=0 alors D(S(m))=D(0), c'est-à-dire m=⬥, contredisant le fait que la réunion ℕ⊎{⬥} a été prise disjointe.

Ceci conclut tout ce qui devait être démontré. ∎

Je répète que tout ceci n'a pas vraiment de rapport avec les maths constructives : il s'agissait ici de démontrer les axiomes de Peano (qui sont, en gros, les points ③ et ④ de la démonstration ci-dessus, ainsi que la récurrence sur les propriétés telles qu'énoncée plus haut) à partir du principe de récurrence « catégorique » que j'ai postulé. En arithmétique du premier ordre, ce sont ces axiomes de Peano qu'on va postuler, mais ici je travaille librement avec des ensembles, et c'est quand même important de savoir qu'on peut — et de façon complètement constructive — démontrer les axiomes de Peano dans le contexte où je me suis placé. Mais tout ce qui vient d'être écrit n'est quand même pas complètement hors sujet pour un billet sur les maths constructives, parce que j'ai notamment prouvé que pour tout entier naturel n on a n=0 ∨ ¬(n=0) (vu que j'ai prouvé n=0 ∨ ∃m∈ℕ.(n=S(m)) et que ¬(S(m) = 0)), ce qui est l'ingrédient essentiel pour pouvoir dire que ℕ est discret, cf. ci-dessous.

On peut ensuite dérouler les définitions et sorites habituels sur les entiers naturels. L'addition ℕ×ℕ→ℕ, (m,n)↦m+n est définie par récurrence sur n par m+0=m et m+S(n)=S(m+n) ; la multiplication ℕ×ℕ→ℕ, (m,n)↦m×n est définie par récurrence sur n par m×0=0 et m×(S(n))=(m×n)+m (et on pose 1:=S(0), ce qui ne doit pas causer de confusion avec la notation pour un singleton, avec lequel on peut d'ailleurs choisir d'identifier 1 si on travaille sur des fondements ensemblistes) ; l'exponentiation ℕ×ℕ→ℕ, (m,n)↦mn est définie par récurrence sur n par m↑0=1 et m↑(S(n))=(mnm ; et l'ordre large (≤) ⊆ ℕ×ℕ (qu'on peut préférer voir comme sa fonction indicatrice ℕ×ℕ→Ω) par mn ssi il existe k tel que n=m+k (et on définit nm comme synonyme de mn, et m<n ou n>m comme synonyme de S(m)≤n disons).

Comme je l'avais évoqué dans un bout d'une entrée précédente sur le sujet, « la plupart » des résultats arithmétiques du premier ordre (i.e., ne parlant que d'entiers naturels, pas de fonctions ou de parties des entiers naturels) valables en maths classiques restent valables en maths constructives. Par exemple :

  • l'addition est associative et commutative et 0 est neutre pour elle, la multiplication est associative et commutative et 1 est neutre pour elle, la multiplication est distributive sur l'addition, l'exponentiation vérifie les règles de calcul dont on a l'habitude ;
  • l'ordre est total et se comporte comme on s'y attend venant des maths classiques : si m,n∈ℕ alors mn ou mn, et en fait on a exactement une des trois affirmations m<n ou m=n ou m>n, on a mn si et seulement si m<n ou m=n, on a mn si et seulement si ¬(m<n), on a m<n si et seulement si ¬(mn) ;
  • l'ordre est compatible avec les opérations au sens où par exemple mn et m′≤n′ impliquent m+m′≤n+n′ et m×m′≤n×n′ ;
  • la division euclidienne, la définition des nombres premiers, l'existence et l'unicité de la décomposition en facteurs premiers, tout ça fonctionne essentiellement comme en maths classiques (je ne rentre pas dans les détails).

J'insiste notamment sur le fait que pour m,n entiers naturels, on a (m=n)∨¬(m=n) : c'est-à-dire que ℕ est discret comme défini précédemment. Il est donc légitime d'écrire mn pour ¬(m=n).

Il n'est donc pas abusé de dire que l'arithmétique du premier ordre voit « très peu de différences » entre les maths constructives et les maths classiques. Il y a la même ressemblance pour toute la théorie des structures finies (groupes finis, graphes finis, ce genre de choses), quand on définit fini comme en bijection avec {1,…,n} pour un certain n∈ℕ, ce que j'expliquerai après ; c'est-à-dire dès lors que la structure peut se « coder » comme entiers naturels et donc se représenter en arithmétique du premier ordre : intuitivement, l'explication est que les énoncés décidables par énumération de tous les cas ne peuvent pas se comporter différemment en maths constructives des maths classiques.

J'écris la plupart des résultats et très peu de différences entre guillemet, parce que même en arithmétique du premier ordre, il n'est pas correct que tout énoncé démontrable classiquement est démontrable constructivement. Le résultat technique précis, que j'avais déjà évoqué en passant dans un billet précédent, est que tout énoncé arithmétique Π₂ démontrable dans l'arithmétique de Heyting [la théorie donnée en logique intuitionniste par les axiomes de Peano du premier ordre usuels] est démontrable dans l'arithmétique de Peano : ici, Π₂ signifie qu'il est quantifié de la forme ∀∃, c'est-à-dire une succession de quantificateurs universels devant une succession de quantificateurs existentiels, tous portant sur des entiers naturels, devant un énoncé à quantificateurs bornés (donc, en pratique, finiment testable). Pour trouver des affirmations du premier ordre sur les entiers naturels intéressantes qui sont démontrables classiquement mais pas constructivement, il faut se gratter un peu la tête, mais c'est possible. Je pense que la plus simple est toute machine de Turing soit termine soit ne termine pas (ce qui est classiquement trivial mais pas démontrable en arithmétique de Heyting) ; bien sûr, formaliser ceci exige de définir au préalable (arithmétiquement au premier ordre) la notion de machine de Turing. J'avais plus ou moins expliqué ce fait dans ce billet passé. (On peut même donner des machines de Turing précises et explicites dont on ne peut pas montrer constructivement qu'elles terminent ou ne terminent pas, mais ceci exigerait d'être plus précis que je ne l'ai été sur les fondements que j'ai utilisés, parce qu'en gros il s'agira de la machine de Turing qui recherche une contradiction dans les fondements en question.)

Néanmoins, cette ressemblance entre maths classiques et maths constructives vaut pour l'arithmétique du premier ordre, i.e., tant qu'on ne parle (et surtout, ne quantifie sur) que des entiers naturels. Dès qu'il est question de suites (cf. plus bas) ou surtout d'ensembles d'entiers naturels, les différences entre maths classiques et constructives apparaissent clairement.

Pour illustrer ceci, considérons le fait suivant qui est valable constructivement, et qu'il faudrait ajouter à la liste plus haut (mais je n'ai pas pu le faire à ce moment-là, parce que j'ai besoin de la notion d'ordre ‘<’ sur ℕ pour l'énoncer) :

  • Récurrence « forte » sur les propriétés : si P⊆ℕ est une partie de ℕ telle que ∀n∈ℕ.((∀m∈ℕ.(m<nmP)) ⇒ nP), alors en fait ∀n∈ℕ.(nP) (c'est-à-dire P=ℕ).

    Autrement dit, pour montrer qu'une propriété P est vraie de tous les entiers naturels, on peut supposer, au moment de la montrer sur n, qu'elle est déjà connue pour tous les m<n.

    Démonstration : soit Q⊆ℕ l'ensemble des n tels que ∀m∈ℕ.(m<nmP), si bien que l'hypothèse faite sur P se reformule en disant que nQ implique nP. Trivialement, 0∈Q (car il n'existe pas de m tel que m<0). D'autre part, si nQ, alors S(n)∈Q : en effet, m<S(n) équivaut à mn, qui équivaut à m<n ou m=n (d'après les propriétés évoquées sur l'ordre) : dans le cas m<n, on a mP par la définition de Q (et l'hypothèse nQ), et dans le cas m=n, on a mP par l'hypothèse faite sur P (qui dit justement que nQ implique nP).

    La récurrence sur les propriétés montre que Q=ℕ, et on en conclut alors que P=ℕ (explicitement : si n∈ℕ, on a S(n)∈Q donc nP puisque n<S(n)). ∎

Cette forme de la récurrence est un peu difficile à lire à cause de tous les niveaux de quantification et d'implication (surtout écrite sous la forme (∀n∈ℕ.((∀m∈ℕ.(m<nmP)) ⇒ nP)) ⇒ (∀n∈ℕ.(nP))).

Classiquement, on a tendance à lui préférer la forme suivante : toute partie non vide de ℕ a un plus petit élément (l'équivalence classique avec l'affirmation de récurrence forte écrite ci-dessus est obtenue en passant au complémentaire : en gros, si P n'est pas ℕ, il y a un plus petit élément qui n'est pas dedans, et il viole l'hypothèse inductive) ; or cette reformulation ne peut pas être affirmée constructivement (même si on remplace non vide par habitée, ce qui est la moindre des choses) :

Proposition : l'affirmation toute partie habitée de ℕ a un plus petit élément implique la loi du tiers exclu.

Démonstration : On considère le contre-exemple brouwérien donné par la partie E := {0 : p} ∪ {1} = {n∈ℕ : ((n=0)∧p) ∨ (n=1)} de ℕ, où p∈Ω est une valeur de vérité quelconque. Noter que 0∈E si et seulement si p est vrai.

Cette partie E est habitée car elle contient 1. Si elle a un plus petit élément n, alors, d'après les propriétés de l'ordre sur les entiers naturels, on a soit n=0 soit n≥1.

Si n=0, alors 0 appartient à E donc p est vrai. Si n≥1 alors 0 n'appartient pas à E (s'il lui appartenait ce serait évidemment le plus petit élément), donc p est faux. On a donc prouvé que p est vrai ou bien p est faux : p∨¬p. Comme p était arbitraire, on a prouvé la loi du tiers exclu. ∎

En revanche, on peut illustrer l'utilité de la notion de partie « décidable » ainsi :

Proposition : toute partie habitée et décidable de ℕ (je rappelle qu'une partie EX est dite décidable ou complémentée lorsque ∀xX.(xE ∨ ¬xE)) a un plus petit élément.

Démonstration : Commençons par montrer par récurrence sur k que si E ⊆ {1,…,k} est décidable alors soit E=∅ soit E a un plus petit élément. Pour k=0, c'est trivial (par convention, {1,…,k} désigne l'ensemble ∅, donc E=∅). Supposons l'affirmation vraie pour k, et soit E ⊆ {1,…,k+1} décidable. Soit E′ := E ∩ {1,…,k}, qui est décidable (comme partie d'un ensemble décidable). Par hypothèse d'induction, soit E′ a un plus petit élément, soit il est vide. Dans le premier cas, ce plus petit élément est aussi celui de E. Dans le second cas, comme E est décidable soit k+1 ∈ E soit ¬(k+1 ∈ E). Dans le premier sous-cas, E={k+1} et son plus petit élément est k+1, tandis que dans le second sous-cas, E=∅.

Maintenant, si E⊆ℕ est décidable et habitée, soit kE ; d'après ce qu'on vient de voir, E′ := E ∩ {1,…,k} soit a un plus petit élément soit est vide : dans le premier cas, ce plus petit élément est aussi le plus petit élément de E, et dans le second cas, k est le plus petit élément de E. ∎

Variations autour des ensembles finis

Ensembles finis, finiment énumérés, etc.

Déjà en maths classiques sans l'axiome du choix (ZF), la notion d'ensemble fini admet un certain nombre de variations (cf. cette question que j'avais posée sur MathOverflow). On se doute bien qu'en maths constructives il va falloir faire encore plus attention !

La notion la plus standard d'ensemble fini est, il me semble, d'être en bijection avec {1,…,n} pour un certain entier naturel n (il vaut évidemment mieux utiliser {0,…,n−1} = {m∈ℕ : m<n} ; mais ça revient au même une fois faite la convention que {1,…,n} désigne l'ensemble vide pour n=0, et je vais préférer {1,…,n} pour ne pas avoir à écrire des −1 partout). C'est la définition que je vais prendre. Le n en question est alors unique (je ne vais pas le prouver mais c'est standard et pas différent des maths classiques) et on peut l'appeler le cardinal [fini] de l'ensemble en question. Les ensembles finis avec cette notion se comportent assez bien comme en maths classiques (mais déjà on va avoir des problèmes en voulant passer à une partie ou à un quotient, cf. ci-dessous). Néanmoins, chacune des quatre notions suivantes peut avoir un intérêt, donc je pense que je peux les donner toutes les quatre, en commençant par celle que je viens d'esquisser :

  • Un ensemble fini est, comme je viens de le dire, un ensemble X pour lequel il existe une bijection {1,…,n}→X. (Et je répète que, si n=0, l'ensemble {1,…,n} est vide par convention, i.e., un ensemble vide est fini.)

    On peut alors montrer que n est forcément unique (s'il y a une bijection entre {1,…,n} et {1,…,n′} alors n=n′). On l'appellera le cardinal de l'ensemble fini en question.

    On peut cependant définir cette notion d'ensemble fini sans référence aux entiers naturels, de la manière suivante : une partie finie d'un ensemble X quelconque est un élément du plus petit ensemble de parties de X qui contient ∅ et est stable par réunion disjointe avec un singleton ; et on peut alors définir un ensemble fini comme un ensemble qui est une partie finie de lui-même.

    Pour être parfaitement précis sur ce que signifie le paragraphe précédent, on appelle (temporairement) inductif par réunion disjointe avec un singleton (iprds) un ensemble ⊆𝒫(X) de parties de X tel que ∅∈, et tel que si A et bX vérifient ¬(bA) alors (A∪{b})∈. Une intersection quelconque d'ensembles iprds de parties de X a encore cette propriété (c'est clair). On définit alors l'ensemble des parties finies de X comme l'intersection := ⋂{ : est iprds} de tous les ensembles iprds de parties de X, c'est-à-dire, par ce que je viens de dire, comme le plus petit ensemble iprds de parties de X. Et X lui-même est dit fini lorsque X est dans ce .

    (Esquissons la démonstration de l'équivalence entre l'existence d'une bijection {1,…,n}→X et l'appartenance au plus petit ensemble iprds comme je viens de le dire : dans un sens, il est évident que la réunion d'une partie finie au sens d'être en bijection avec {1,…,n} et d'un singleton est encore une partie finie, donc que les parties finies sont un ensemble iprds, donc elles sont contiennent le plus petit ensemble iprds ; et dans l'autre sens, on montre par récurrence sur n que toute partie en bijection avec {1,…,n} appartient au plus petit ensemble iprds. ∎)

  • Un ensemble finiment énuméré ou Kuratowski-fini est un ensemble X pour lequel il existe une surjection {1,…,n}→X, ou, ce qui revient au même (en factorisant cette surjection), que X est en bijection avec un quotient de {1,…,n} (par une relation d'équivalence).

    Concrètement, c'est un ensemble qu'on peut exprimer sous la forme {x1,…,xn}, sans demander que les xi soient distincts (contrairement au cas d'un ensemble fini). On peut aussi définir un ensemble finiment énuméré comme (à bijection près) un quotient d'un ensemble fini par une relation d'équivalence.

    De nouveau, on peut également définir cette notion sans référence aux entiers naturels : une partie finiment énumérée d'un ensemble X quelconque est un élément du plus petit ensemble de parties de X qui contient ∅ et est stable par réunion (pas forcément disjointe cette fois) avec un singleton. On peut aussi les définir comme le plus petit ensemble de parties de X qui contient ∅ et les singletons et est stable par réunion binaire. Et X lui-même est finiment énuméré lorsqu'il est une partie finiment énumérée de lui-même.

  • Un ensemble sous-fini est un ensemble qui est (à bijection près) une partie d'un ensemble fini.

    Il revient au même dire que c'est un ensemble X pour lequel il existe une bijection DX avec D⊆{1,…,n}. Bref, c'est un ensemble en bijection avec un sous-ensemble de {1,…,n}.

  • Un ensemble sous-finiment énuméré est une partie d'un ensemble finiment énuméré, ou, ce qui revient au même, un ensemble X pour lequel il existe une surjection DX avec D⊆{1,…,n}.

    Dans ce que je viens de dire, il n'est pas tout à fait évident que les deux propriétés d'être une partie d'un ensemble finiment énuméré et d'être surjecté par une partie D de {1,…,n} sont équivalentes. Montrons donc cette équivalence. Un sens est facile : si h:{1,…,n}→X′ est surjective et si XX′, on peut appeler D l'image réciproque de X par h et on a alors h:DX surjective avec D⊆{1,…,n} ; donc « partie d'un ensemble finiment énuméré » implique « surjecté par une partie de {1,…,n} ». Dans l'autre sens, si on suppose l'existence d'une surjection h:DX avec D⊆{1,…,n}, on peut mettre sur {1,…,n} la relation d'équivalence définie par ij lorsque i=j ou iDjDh(i)=h(j), ce qui définit une surjection de {1,…,n} sur X′ := {1,…,n}/∼, donc X′ est finiment énuméré, et l'application de X vers X′ envoyant h(i) pour iD sur la classe d'équivalence de i modulo ∼ est bien définie et injective par définition de ∼. (Si on préfère, on doit aussi pouvoir utiliser la relation ≈ définie par ij lorsque h(D∩{i}) = h(D∩{j}), je ne sais pas ce qui est le plus simple.) ∎

    Bref, un ensemble sous-finiment énuméré est un ensemble en bijection avec un quotient d'un sous-ensemble de {1,…,n} ou (indifféremment) un sous-ensemble d'un quotient de {1,…,n}.

On peut résumer ces quatre définitions en disant que X est fini, resp. finiment énuméré, resp. sous-fini, resp. sous-finiment énuméré lorsqu'il existe une fonction partielle {1,…,n} ⇢ X qui soit totale bijective, resp. totale surjective, resp. une bijection depuis son domaine de définition, resp. une surjection depuis son domaine de définition.

Je pense que la terminologie que je viens de donner est raisonnablement standard, mais elle n'est nullement universelle. Il y a des gens qui appellent finis ceux que j'ai appelés finiment énumérés, quitte à appeler finis discrets (cf. ci-dessous) ceux que j'ai appelés finis. Il y a des gens qui utilisent le terme de sous-fini pour ceux que j'ai appelés finiment énumérés, parce qu'il faut reconnaître que le concept d'ensemble sous-fini tel que défini ci-dessus n'est pas terriblement intéressant.

On se doute bien que si j'ai pris la peine d'introduire ces quatre termes, c'est que la distinction est pertinente. Il y a donc de grosses surprises quand on vient des maths classiques. Avant de les énoncer, je fais deux remarques faciles (et classiquement triviales) :

Observation : un ensemble fini (ou même finiment énuméré) est soit vide soit habité.

Démonstration : l'hypothèse garantit l'existence d'une surjection h:{1,…,n}→X. Si n=0, rappelons que {1,…,n}=∅ par convention, alors X est vide car l'existence d'un élément dans X implique immédiatement une contradiction à la surjectivité de h. Si n≥1, alors l'image de 1 par h fournit un élément de X. ∎

Observation : un ensemble fini (ou même sous-fini) est discret (rappelons que X est dit discret lorsque ∀xX.∀yX.(x=y ∨ ¬(x=y))).

Démonstration : comme une bijection préserve la notion d'ensemble discret (puisque l'égalité et la négation de l'égalité sont préservées par bijection), il suffit de remarquer que {1,…,n} ou plus généralement une partie de {1,…,n}, sont discrets ; or ceci résulte du fait que ℕ est discret : on a vu que pour i,j∈ℕ on a (i=j ∨ ¬(i=j)). (Il est trivial qu'une partie d'un ensemble discret est encore discrète.) ∎

Quelques contre-exemples brouwériens

Je donne maintenant deux contre-exemples brouwériens qui sont importants non seulement pour comprendre pourquoi les notions de finitude que j'ai introduites diffèrent en général, mais aussi parce que ce sont des contre-exemples largement réutilisables (d'ailleurs le premier a déjà été évoqué) et qui aident à se faire une idée intuitive de comment peut se comporter un ensemble en maths constructives.

Première surprise : on ne peut pas affirmer qu'une partie d'un ensemble fini soit forcément finie, car :

Proposition : l'affirmation toute partie d'un ensemble fini est finie (i.e., tout ensemble sous-fini est fini) implique la loi du tiers exclu.

Démonstration : On considère le contre-exemple brouwérien donné par la partie {● : p} du singleton 1 = {●}, où p est une valeur de vérité.

Il s'agit bien d'une partie d'un ensemble fini 1 = {●}, donc l'affirmation toute partie d'un ensemble fini est finie implique que {● : p} est fini ; mais d'après une observation faite ci-dessus, ceci entraîne que {● : p} est habité ou bien vide, c'est-à-dire que p est vrai ou bien p est faux : p∨¬p. Comme p était arbitraire, on a prouvé la loi du tiers exclu. ∎

Deuxième surprise : on ne peut pas affirmer qu'un quotient d'un ensemble fini soit forcément fini :

Proposition : l'affirmation tout quotient d'un ensemble fini est fini (i.e., tout ensemble finiment énuméré est fini) implique la loi du tiers exclu.

Démonstration : On considère le contre-exemple brouwérien suivant. Soit p∈Ω une valeur de vérité. On définit une relation d'équivalence R sur {0,1} donnée par {(i,j)∈{0,1}² : (i=j) ∨ p} = {(0,0)} ∪ {(1,1)} ∪ {(0,1) : p} ∪ {(1,0) : p}. Il est facile de vérifier qu'il s'agit bien d'une relation d'équivalence (moralement, on prend deux éléments distincts, et on les identifie si p vaut). Le quotient de {0,1} par cette relation d'équivalence (qui, soit dit en passant, est en bijection avec l'ensemble {U,V} dans la preuve du théorème de Diaconescu donnée à la fin de la partie précédente) est finiment énuméré par définition.

Mais si cet ensemble {0,1}/R est fini, alors d'après une observation faite ci-dessus, il est discret, donc soit la R-classe de 0 et celle de 1 sont égales soit elles ne sont pas égales, ce qui, sur la relation R, implique que (0,1)∈R ou bien ¬((0,1)∈R), c'est-à-dire p∨¬p. Donc l'affirmation tout quotient d'un ensemble fini est fini entraîne le tiers exclu. ∎

Ces mêmes contre-exemples et ces mêmes preuves montrent d'ailleurs un peu plus généralement que si toute partie d'un ensemble fini est finiment énumérée alors le tiers exclu vaut, et que si tout quotient d'un ensemble fini est sous-fini alors le tiers exclu vaut. Donc si deux quelconques des quatre notions de finitude introduites plus haut coïncident, le tiers exclu vaut.

L'idée intuitive qu'il faut se faire, je pense, d'un ensemble fini est que c'est un ensemble dont on connaît tous les éléments et on sait décider si deux d'entre eux coïncident (on verra plus bas que fini équivaut à finiment énuméré et discret) ; un ensemble finiment énuméré est un ensemble dont on connaît tous les éléments, mais sans supposer qu'on sait décider s'ils coïncident ; pour les ensembles sous-finis et sous-finiment énumérés, il faut imaginer qu'on a plutôt des « éléments potentiels » (dont on ne sait pas décider s'ils sont vraiment dans l'ensemble). Et les deux contre-exemples brouwériens que je viens de donner sont vraiment les deux phénomènes à garder à l'esprit s'agissant d'un ensemble en maths constructives : en gros, on ne sait pas forcément décider si un élément potentiel est vraiment un élément, et on ne sait pas forcément décider si deux éléments coïncident.

Quelques propriétés de la finitude

Les ensembles finis sont stables par réunions disjointes binaires et par produits cartésiens binaires, c'est-à-dire que si F et F′ sont finis alors FF′ et F×F′ sont finis. En effet, il suffit de le montrer pour les ensembles {1,…,m}, et c'est essentiellement l'existence de l'addition et de la multiplication sur les entiers naturels. (En revanche, comme on l'a expliqué plus haut, mais ça vaut la peine de le redire encore une fois on ne peut pas affirmer qu'une partie ou un quotient d'un ensemble fini soit fini.)

La stabilité par réunions disjointes (resp. produits cartésiens) binaires entraîne aussi la stabilité par réunions disjointes (resp. produits cartésiens) finis, justement. C'est-à-dire que si F1,…,Fn sont finis, alors F1⊎⋯⊎Fn, et F1×⋯×Fn sont finis : ceci se démontre par récurrence immédiate sur n à partir du cas n=0 qui est évident et du cas successeur qui découle du cas binaire.

Bien sûr, on peut aussi reformuler les affirmations du paragraphe précédent en disant que si I est fini et que chacun des Fi l'est alors ⨄iI Fi est fini (cette réunion disjointe est, si on veut, l'ensemble des couples (i,x) avec x dans la réunion banale des Fi tels que iI et xFi). Et il en va de même du produit cartésien ∏iI Fi (qui est l'ensemble des fonctions de I dans la réunion banale des Fi qui prennent en chaque iI une valeur appartenant à Fi).

En revanche, si on parle non pas de réunions disjointes mais de réunions de parties d'un ensemble U ambiant, on ne peut pas affirmer que la réunion de deux ensembles finis soit finie (reprendre le contre-exemple brouwérien donné plus haut où la finitude du quotient {0,1}/R implique p∨¬p, et remarquer que {0,1}/R est trivialement la réunion de deux singletons).

Voici un résultat positif plutôt rassurant :

Proposition : Les parties finies d'un ensemble fini X sont les mêmes que ses parties finiment énumérées, et ce sont aussi exactement ses parties décidables (je rappelle qu'une partie EX est dite décidable ou complémentée lorsque ∀xX.(xE ∨ ¬xE)). De plus, elles forment elles-mêmes un ensemble fini ; précisément, l'ensemble des parties finies de {1,…,n} est en bijection avec {0,1}{1,…,n} via la fonction indicatrice : son cardinal est donc 2n si n est celui de X.

Démonstration : Il suffit de le montrer pour X={1,…,n}.

Dans un sens, on veut montrer qu'une partie finiment énumérée de {1,…,n} est décidable. Ceci revient à montrer que l'image de n'importe quelle fonction h : {1,…,m} → {1,…,n} est décidable. Pour cela, on procède par récurrence sur m. Le cas m=0 étant trivial, considérons une fonction h : {1,…,m+1} → {1,…,n}. Soit i ∈ {1,…,n}. Comme {1,…,n} est discret (c'est-à-dire que pour tous i,j de {1,…,n} on a (i=j ∨ ¬(i=j))), soit on a i=h(m) soit ¬(i=h(m)). Dans le premier cas, i est bien dans l'image de h. Dans le second cas, i est dans l'image de h si et seulement si i est dans l'image par h de {1,…,m}, et, par l'hypothèse de récurrence (qui assure que cette partie est décidable), ceci est soit vrai soit faux. Donc on a bien montré que tout i est dans l'image de h ou bien n'est pas dans l'image de h, c'est-à-dire que l'image de h est décidable. Ceci conclut la récurrence.

Dans l'autre sens, on veut montrer qu'une partie décidable E de {1,…,n} est finie. On procède par récurrence sur n. Le cas n=0 étant trivial, considérons une partie décidable E de {1,…,n+1}. La partie E′ := E ∩ {1,…,n} est décidable (comme partie d'un ensemble décidable), donc par l'hypothèse de récurrence elle est finie. Comme E est décidable, on a soit n+1 ∈ E soit ¬(n+1 ∈ E). Dans le premier cas, E = E′ ∪ {n+1}, et cette réunion est disjointe, si bien que E est finie. Dans le second cas, E = E′, et de nouveau E est finie. Ceci conclut la récurrence.

Enfin, le fait que les parties décidables de X soient en bijection avec les fonctions X→{0,1} a déjà été signalé. ∎

(Cette preuve aurait probablement été plus claire en utilisant la définition des parties finies de X comme le plus petit ensemble de parties de X contenant le vide et stable par réunion disjointe avec un singleton.)

L'idée intuitive à retenir est que la notion de partie générale d'un ensemble, en maths constructives, est une notion très difficile à gérer, même quand l'ensemble est supposé fini : il y a potentiellement « plein » de parties (d'ailleurs l'hypothèse, que j'ai faite, de l'existence des ensembles de parties, est une hypothèse hautement « imprédicative », qui n'est pas du tout anodine : on peut mettre en doute le fait qu'on ait le droit de collecter quelque chose d'aussi monstrueux pour former un ensemble) ; en revanche, si on se limite aux parties décidables, on a une situation beaucoup plus analogue aux maths classiques (mais évidemment, est-ce vraiment ce qu'on veut ? si on cherche les maths classiques, on sait où les trouver).

Les ensembles finiment énumérés, eux, sont stables par réunions disjointes finies, mais aussi par réunions finies dans un ensemble U ambiant, par quotients, et par produits cartésiens finis.

Si on veut, les ensembles finiment énumérés sont même stables par réunions (disjointes ou dans un ensemble ambiant) indicées par des ensembles eux-mêmes finiment énumérés : c'est-à-dire que si J est finiment énuméré et que chacun des Fi pour iJ est finiment énuméré, alors ⋃jJ Fj (dans un ensemble ambiant U) ou ⨄jJ Fj est finiment énuméré. Cette affirmation résulte juste du fait que si J est finiment énuméré, on peut trouver h:IJ surjective avec I fini, et alors ⋃jJ Fj = ⋃iI Fh(i), tandis que ⨄jJ Fj est un quotient de ⨄iI Fh(i) (par la relation d'équivalence qui identifie les éléments de Fh(i) et les éléments correspondants de Fh(i′) lorsque h(i)=h(i′)), donc on est ramené au cas fini.

En revanche, on ne peut pas affirmer qu'un produit cartésien indicé par un ensemble finiment énuméré d'ensembles finiment énumérés (ou même finis) est finiment énuméré. (Comme je me suis gratté la tête à ce sujet, et que la construction est intéressante pour comprendre les produits cartésiens indicés par des ensembles non supposés discrets, voici un contre-exemple brouwérien illustrant ce fait. Soit p une valeur de vérité, soit U := {x∈{0,1} : (x=0)∨p} et V := {x∈{0,1} : (x=1)∨p} comme dans la preuve du théorème de Diaconescu ; et soit Y = {U, V}, qu'on peut aussi considérer comme le quotient de {0,1} par la relation d'équivalence R = {(i,j)∈{0,1}² : (i=j) ∨ p}, puisque U est la classe de 0 et V celle de 1 pour cette relation d'équivalence. Donc bien sûr Y est finiment énuméré. Maintenant posons Fy={0,1} pour tout yY. Manifestement ils sont tous finis. Le produit cartésien ∏yY Fy, qui est simplement l'ensemble {0,1}Y des fonctions Y→{0,1}, peut s'identifier (en relevant de Y à {0,1}) à la partie de ∏i∈{0,1} Fi = {0,1}{0,1} formée des fonctions h:{0,1}→{0,1} telles que p ⇒ (h(0)=h(1)). Si cet ensemble est finiment énuméré, en vertu de la proposition vue ci-dessus, il c'est une partie décidable de {0,1}{0,1}. En regardant notamment la fonction identité {0,1}→{0,1}, la décidabilité de p ⇒ (h(0)=h(1)) est celle de ¬p. Autrement dit, on a ¬p∨¬¬p. Donc l'affirmation un produit cartésien indicé par un ensemble finiment énuméré d'ensembles finis est finiment énuméré implique la loi faible du tiers exclu. ∎) Néanmoins, ce produit cartésien est au moins sous-finiment énuméré (car si h:IJ surjective avec I fini alors ∏jJ Fj est une partie de ∏iI Fh(i)).

Proposition : l'ensemble des parties finiment énumérées d'un ensemble finiment énuméré est lui-même finiment énuméré.

Démonstration : si h:XY est surjective, le principe de choix fini (qui, on le rappelle, est un théorème, démontré par récurrence) assure que toute partie finiment énumérée de Y est l'image par h d'une partie finiment énumérée de X (en effet, donnés des éléments y(1),…,y(n) de Y, on peut trouver x(1),…,x(n) de X qui aient ceux-ci pour image par h). Ceci montre que l'ensemble des parties finiment énumérées de Y est l'image de l'ensemble des parties finiment énumérées de X par l'application image par h sur les parties. Maintenant, si Y est finiment énuméré, il existe X fini qui le surjecte, et l'ensemble des parties finiment énumérées de X est fini comme on l'a vu plus haut, donc l'ensemble des parties finiment énumérées de Y est finiment énuméré comme image d'un ensemble fini. ∎

Proposition : un ensemble est fini si et seulement si il est à la fois finiment énuméré et discret (rappelons une fois de plus que X est dit discret lorsque ∀xX.∀yX.(x=y ∨ ¬(x=y))).

Démonstration : Un ensemble fini est trivialement finiment énuméré, et on a déjà observé plus haut qu'il était discret. Il s'agit donc de démontrer la réciproque : que tout ensemble finiment énuméré et discret est fini.

Si h:{1,…,n}→X est surjective, dire que X est discret équivaut à dire que la relation d'équivalence ∼ sur {1,…,n} définie par h(i)=h(j) est décidable (c'est-à-dire soit ij soit ¬(ij)). Bref, il s'agit de montrer que le quotient d'un ensemble fini — ou disons précisément de {1,…,n} — par une relation d'équivalence décidable est fini.

Mais si ∼ est une relation d'équivalence décidable sur {1,…,n}, chacune des classes d'équivalence est décidable (puisque la relation d'équivalence l'est), et elle est habitée (puisque c'est une classe d'équivalence). On a vu plus haut qu'une partie décidable habitée de ℕ a un plus petit élément. On peut donc choisir donc comme représentant de chaque classe d'équivalence ce plus petit élément.

L'application {1,…,n} → {1,…,n} qui à chaque élément de {1,…,n} associe le plus petit élément de sa classe d'équivalence est, comme on vient de le voir, bien définie, et son image Y est en bijection avec le quotient X = {1,…,n}/∼. Cette image Y est finiment énumérée par construction, mais on a vu qu'une partie finiment énumérée d'un ensemble fini était finie, donc Y est fini, donc X l'est aussi. ∎

En particulier, comme on a déjà observé plus haut que les ensembles sous-finis sont discrets, un ensemble à la fois finiment énuméré et sous-fini est fini (ouf !).

Les ensembles sous-finis sont sans doute moins intéressants et importants que les ensembles finis et les ensembles finiment énumérés. Les ensembles sous-finis sont stables par réunions disjointes finies, ou même sous-finies, et par produits cartésiens finis, ou même indicés par un ensemble finiment énuméré il me semble (mais je vérifie tout ça un peu rapidement et il se peut que je me trompe). Attention, cependant, même si tout ensemble sous-fini est par définition en bijection avec une partie d'un ensemble fini, on ne peut pas affirmer qu'une partie sous-finie d'un ensemble X est forcément une partie d'une partie finie de X (penser au cas où X = p = {● : p} avec p∈Ω : alors X est lui-même une partie sous-finie de X, s'il est une partie d'une partie finie de X, cette partie doit être vide ou habitée, donc p∨¬p).

Je devrais peut-être à ce sujet rappeler la notion d'ensemble sous-terminal : c'est un ensemble dont tous les éléments sont égaux.

Proposition : un ensemble sous-terminal est sous-fini.

Démonstration : soit X un ensemble sous-terminal, et on veut montrer qu'il est sous-fini. Considérons la partie D := {0 : X est habité} = {i∈{0} : ∃xX.(⊤)} de {0} (autrement dit, on met l'élément 0 dans D lorsque X est habité, et c'est tout). Maintenant, considérons la fonction h:DX définie ainsi : si iD, alors X est habité, donc il existe xX et on peut définir h(i)=x, ce qui a bien un sens parce que tous les éléments de X sont égaux. (Si on préfère, le graphe de h est… l'ensemble D×X tout entier.) Cette fonction h est injective car tous les éléments de D sont égaux, et elle est surjective car si xX alors 0∈D et h(0)=x. Donc on a bien établi une bijection entre une partie de {0} et X, ce qui montre que X est sous-fini. ∎

Tant que j'y suis, et pour dissiper une autre fausse idée qu'on pourrait avoir : on ne peut pas affirmer que toute partie sous-terminale, de {0,1}, est une partie d'un singleton de {0,1} (l'ensemble {0,1} n'est pas forcément « flasque »). (Contre-exemple brouwérien : si c'est le cas, soit p une valeur de vérité et considérons la partie {0 : p} ∪ {1 : ¬p} ; il est évident qu'elle est sous-terminale ; néanmoins, si c'est une partie de {0} alors on a ¬¬p, et si c'est une partie de {1} alors on a ¬p, donc si c'est une partie d'un singleton de {0,1} on a ¬p∨¬¬p. Donc l'affirmation que toute partie sous-terminale de {0,1} est une partie d'un singleton de {0,1} implique la loi faible du tiers exclu. ∎)

Quant aux ensembles sous-finiment énumérés, ils sont stables par réunions finies, ou même indicées par un ensemble sous-finiment énuméré, et par produits cartésiens finis, ou ou même indicés par un ensemble finiment énuméré. Je ne sais pas si on peut dire plus.

Bien sûr, les quatre notions discutées ci-dessus ne sont pas les seules notions de finitude qu'on peut introduire qui soient assez naturelles et qui se réduisent à fini dans le cadre de ZFC. Par exemple, on peut définir la notion d'ensemble Dedekind-fini :

  • Un ensemble Dedekind-fini est un ensemble X pour lequel toute injection XX est automatiquement une bijection.

  • Un ensemble dual-Dedekind-fini est un ensemble X pour lequel toute surjection XX est automatiquement une bijection.

J'ai démontré que les ensembles sous-finiment énumérés (et a fortiori les finis, les finiment énumérés et les sous-finis) sont Dedekind-finis. Mais cette notion n'est pas très agréable : on ne peut pas affirmer qu'un quotient ni une partie d'un ensemble Dedekind-fini est Dedekind-finie (cette fois je n'ai pas de contre-exemple brouwérien à proposer, mais des contre-exemples utilisant des topos sont donnés dans cet article). La principale raison de s'intéresser à la Dedekind-finitude est que l'ensemble Ω des valeurs de vérité est Dedekind-fini (en raison du théorème de l'involution de Higgs, démontré ci-dessus, qui affirme que toute injection Ω→Ω est involutive, et en particulier, est bijective).

Je ne sais essentiellement rien sur la notion d'ensemble dual-Dedekind-fini, à part qu'elle est impliquée par « fini » et n'est pas équivalente à celle d'être Dedekind-fini.

On peut bien sûr multiplier les définitions. Mon propos ici n'est pas tellement de le faire mais d'illustrer la manière dont une seule notion en maths classiques peut facilement déboucher sur un labyrinthe de notions en maths constructives : on peut voir ça comme un défaut (la plupart de ces notions sont sans grand intérêt et peuvent être classées comme de simples curiosités académiques), ou comme un avantage (après tout, ce sont plein de problèmes intellectuellement intéressants), mais cela peut être aussi une façon de sélectionner la « bonne » façon de définir la finitude (celle qui marche le mieux même dans un contexte constructif) pour tel ou tel type de problème.

Suites et principes d'omniscience

Suites, ensembles de Cantor et de Baire

Une suite à valeurs dans un ensemble X est simplement une fonction ℕ→X (i.e., un élément de X). On note généralement, par la notation des familles, (un)n∈ℕ une suite, et un son n-ième terme.

La sorte la plus simple de suite sont les suites binaires, c'est-à-dire les suites à valeur dans 2 := {0,1} (ensemble fini à deux éléments que je noterai ‘0’ et ‘1’). L'ensemble 2 des suites binaires s'appelle souvent l'ensemble de Cantor (parce qu'on peut l'identifier assez naturellement à l'ensemble des nombres réels de [0,1] ayant une écriture ternaire formée uniquement des chiffres 0 et 2, ou ensemble triadique de Cantor, mais pour l'instant je n'ai pas dit ce qu'est un nombre réel). On peut aussi l'identifier à l'ensemble des parties décidables (i.e., complémentées) de ℕ, via la fonction indicatrice (la partie étant l'ensemble des points où la suite binaire vaut 1, et la suite étant définie comme valant 1 sur la partie et 0 sur son complémentaire, ce qui définit bien une suite justement parce que la partie est supposée décidable).

Un petit peu plus compliqué que les suites binaires on a les suites d'entiers naturels : l'ensemble ℕ de ces suites est souvent appelé l'espace de Baire.

Deux suites sont égales, bien sûr, lorsque chacun de leurs termes sont égaux : u=v signifie ∀n∈ℕ.(un=vn). Maintenant, si on parle de suites binaires ou de suites d'entiers naturels, deux termes donnés de la suite sont égaux ou ne sont pas égaux ({0,1}=:2 et ℕ sont des ensembles discrets) : on peut écrire unvn (un symbole que je réserve pour les ensembles discrets, justement) ou unvn (le symbole d'une relation de discernement, un concept expliqué plus haut) pour ¬(un=vn). Il est alors tentant de définir :

Définition : On dit que deux suites binaires, ou d'entiers naturels, sont discernées, et on note uv lorsqu'il existe un terme où ces suites diffèrent : ∃n∈ℕ.(unvn). La relation ‘⋕’ ainsi définie sur l'ensemble de Cantor ou l'espace de Baire est appelée sa relation de discernement standard (et c'est celle qu'on utilise par défaut quand on parle de discernement sur ces espaces).

(Je rappelle que j'utilise le terme de discerné et de discernement pour rendre ce qui se dit en anglais par apart et apartness. Je rappelle aussi que certains auteurs utilisent le symbole ‘≠’ pour ce que je note ‘⋕’, ce que je n'accepte de faire que pour un ensemble discret.)

Il est facile de vérifier qu'il s'agit bien d'une relation de discernement, c'est-à-dire irréflexive, symétrique et cotransitive : les deux premières propriétés sont triviales, et pour la troisième il s'agit de montrer que si u,v,w sont trois suites (à valeurs dans {0,1} ou ℕ ou plus généralement un ensemble discret) et qu'on a uw, alors soit uv soit vw : or l'hypothèse uw assure l'existence d'un n tel que unwn, et pour ce n précis, puisque ‘≠’ est elle-même un discernement (sur l'ensemble discret où les suites prennent leurs valeurs), on a soit unvn soit vnwn, ce qui donne la conclusion annoncée.

Classiquement, bien sûr, uv signifie simplement ¬(u=v), et classiquement on a soit u=v soit uv. Mais constructivement, que faut-il penser du rapport entre les énoncés uv et u=v (et leurs négations) ?

La première chose qu'on peut remarquer, c'est que le discernement standard ‘⋕’ qu'on vient de définir est un discernement serré, c'est-à-dire que ¬(uv) signifie exactement u=v (la partie intéressante est le implique, parce que l'implication réciproque est juste l'irréflexivité du discernement). En effet, ¬∃n∈ℕ.(unvn) signifie ∀n∈ℕ.¬(unvn) par pure logique, et ¬(unvn) est synonyme de un=vn car on est à valeurs dans un ensemble discret (en particulier, (¬¬)-séparé si on veut utiliser cette terminologie), bref, on tombe sur ∀n∈ℕ.(un=vn) comme annoncé, et ¬(uv) signifie bien u=v.

Donc, sur l'ensemble de Cantor ou l'espace de Baire, la négation de uv équivaut à u=v. Mais dans l'autre sens ? Quel est le rapport entre uv et la négation de u=v ?

Divers principes d'omniscience

C'est là qu'interviennent les postulats standards au nom assez ridicule de principes d'omniscience. Je les énonce pour une une suite binaire et pour la comparaison la suite identiquement nulle (notée 0), mais il y a toutes sortes de reformulations évidentes avec l'ensemble ℕ des suites d'entiers à la place de celui 2 des suites binaires (il s'agit essentiellement juste de remplacer =1 par ≠0 partout), et/ou en comparant deux suites entre elles au lieu d'une suite à zéro :

  • Le principe limité d'omniscience ou LPO (limited principle of omniscience) affirme qu'une suite binaire est soit nulle soit a un terme non-nul : ∀u∈2.(u=0u0), c'est-à-dire ∀u∈2.((∀n∈ℕ.(un=0)) ∨ (∃n∈ℕ.(un=1))).

    Ce principe LPO équivaut trivialement à la conjonction des deux principes qui suivent.

  • Le principe limité faible d'omniscience ou WLPO (weak limited principle of omniscience) affirme qu'une suite binaire est soit nulle soit n'est pas nulle : ∀u∈2.(u=0 ∨ ¬(u=0)), c'est-à-dire ∀u∈2.((∀n∈ℕ.(un=0)) ∨ ¬(∀n∈ℕ.(un=0))).

    Cela revient à affirmer que l'ensemble de Cantor (ou l'espace de Baire, c'est équivalent) est un ensemble discret (au sens où deux éléments sont soit égaux soit non-égaux).

  • Le principe de Markov ou MP (Markov's principle, nommé d'après Andrej Markov fils) affirme qu'une suite binaire qui n'est pas nulle a un terme non-nul : ∀u∈2.((¬(u=0)) ⇒ (u0)), c'est-à-dire ∀u∈2.((¬(∀n∈ℕ.(un=0))) ⇒ (∃n∈ℕ.(un=1))).

    Cela revient à affirmer que le discernement standard ‘⋕’ sur l'ensemble de Cantor (ou l'espace de Baire, c'est équivalent) est la négation de l'égalité.

Le principe limité d'omniscience est juste (équivalent à) la conjonction du principe limité faible d'omniscience et du principe de Markov. Mais comme il est sans doute plus important que chacun des deux séparément, il est utile d'avoir un nom pour lui.

(Pour ceux qui se posent la question, le principe d'omniscience tout court serait la loi du tiers exclu, mais ce terme n'est plus utilisé : on écrit LEM pour law of excluded middle et pas PO. Le terme d'omniscience vient du fait que, pour Brouwer, l'affirmation que P est vrai ou P est faux se comprenait comme on sait que P est vrai ou on sait que P est faux, et affirmer ça pour tout P est une forme d'omniscience, tandis que l'affirmer pour tout P de la forme la suite <machin> prend une valeur non-nulle est une forme limitée d'omniscience. Mais on n'est — heureusement ! — pas obligé d'adhérer à la confusion malencontreusement entretenue par Brouwer entre P est vrai et on sait que P est vrai pour faire des mathématiques constructives ou pour s'y intéresser !)

Aucun de ces principes n'est valable constructivement au sens où il serait démontrable (dans le cadre dans lequel je me suis placé), ni admissible au sens où il serait « souhaitable » d'en faire un axiome : ce sont des tabous constructifs et ils sont très importants parce qu'ils servent à jauger la non-constructivité de différents énoncés et à produire des contre-exemples brouwériens comme je vais l'expliquer.

Le principe de Markov est « moins tabou » que les autres, si j'ose dire, et il a été admis par l'école russe du constructivisme (que Bridges & Richman appellent RUSS) qui avait pour intérêt l'étude de calculabilité à travers la logique intuitionniste. L'explication intuitive de pourquoi le principe de Markov fait sens dans ce contexte (mais je répète qu'il ne s'agit pas d'une preuve, il n'y en a pas, simplement d'une justification de pourquoi on pourrait vouloir admettre le principe de Markov dans le cadre d'une étude de la calculabilité) est que si on a un dispositif qui produit une suite de 0 et de 1 et qu'on sait qu'il est impossible qu'il ne produise que des 0, il y a un moyen « effectif » de trouver un 1 qui consiste simplement à… attendre qu'un 1 soit produit. Je renvoie à l'excellent article très pédagogique d'Andrej Bauer, First Steps in Synthetic Computability Theory (2006) pour une introduction à la calculabilité synthétique (dans un cadre dans lequel le principe de Markov est pris pour axiome, 3.18 dans l'article cité). (Le principe de Markov semble avoir un rapport fort avec l'opérateur μ de Kleene permettant des recherches non bornées en calculabilité classique ; mais j'avoue que le rapport exact m'échappe ; néanmoins, je peux signaler que le principe de Markov est valable dans le topos effectif, essentiellement pour la raison que je viens d'esquisser.)

Le principle limité d'omniscience, et même le principe limité faible d'omniscience, sont en tout cas des tabous en mathématiques constructives. Pourquoi leur donner un nom, alors ? Essentiellement parce qu'ils permettent des contre-exemples brouwériens : si on découvre qu'un certain énoncé P implique LPO (ce qui est une situation assez courante), on saura qu'on ne doit pas chercher à démontrer P constructivement. La situation est la même qu'avec la loi du tiers exclu (principe d'omniscience tout court), mais le principe limité d'omniscience est, comme son nom l'indique, plus limité (et a fortiori le principe limité faible d'omniscience), donc il y a plus de P qu'on pourra rejeter constructivement au motif qu'ils impliquent un principe inadmissible.

(Bien sûr, pour que ce raisonnement permette de conclure que P est effectivement indémontrable, il faut avoir préalablement vérifié que le principe limité, même faible, d'omniscience, n'est pas démontrable constructivement, ce que Brouwer n'avait pas fait et n'avait pas les moyens de faire ; cela se fait aisément en construisant un topos approprié mais je ne vais pas en parler ici. La situation est analogue à la situation dans ZF classique des variantes plus faibles de l'axiome du choix avant qu'on sache que l'axiome du choix n'est pas démontrable : le fait qu'un énoncé implique une variante faible de l'axiome du choix suggérait au moins que cet énoncé n'était pas démontrable sans choix.)

On peut évoquer dans ce contexte le terme de mathématiques constructives “à rebours” (pour une introduction, voir par exemple ce texte, qui a cependant l'inconvénient d'admettre l'axiome du choix dépendant ; ou bien celui-ci, qui fait sans mais est plus limité dans son étude). L'idée général est de chercher à dégager les implications précises entre différents principes de référence constructivement inadmissibles (mais plus faibles que la loi du tiers exclu), et voir quels énoncés sont équivalents à quels principes de référence. Par exemple, j'ai montré plus haut dans ce texte que divers énoncés (comme une partie d'une ensemble fini est finie) sont équivalents à la loi du tiers exclu : on peut dire qu'il s'agit d'une forme de mathématiques à rebours.

Outre LPO, WLPO et MP, on peut aussi mentionner les principes suivants, également importants en mathématiques constructives « à rebours » et occasionnellement utiles pour s'assurer qu'un énoncé n'est pas démontrable constructivement : je les énonce avec deux suites u et v mais on peut préférer le faire avec les termes pairs et impairs d'une même suite :

  • Le moindre principe limité d'omniscience ou LLPO (lesser limited principle of omniscience) affirme à propos de deux suites d'entiers que s'il n'est pas vrai que toutes les deux ont un terme non-nul, alors l'une des deux est nulle : ∀u∈2.∀v∈2.((¬((u0) ∧ (v0))) ⇒ (u=0) ∨ (v=0)) (on rappelle à toutes fins utiles que ¬(u0) équivaut à u=0), c'est-à-dire ∀u∈2.∀v∈2.((¬((∃n∈ℕ.(un=1)) ∧ (∃n∈ℕ.(vn=1)))) ⇒ (∀n∈ℕ.(un=0)) ∨ (∀n∈ℕ.(vn=0))).

  • Le moindre principe limité faible d'omniscience ou WLLPO (weak lesser limited principle of omniscience — terme moins standard, on trouve aussi ce principe sous le nom de lesser limited principle of existence, LLPE, ou bien de disjunctive Markov principle, MP) affirme à propos de deux suites d'entiers que s'il n'est pas vrai que toutes les deux sont nulles, alors l'une des deux n'est pas nulle : ∀u∈2.∀v∈2.((¬((u=0) ∧ (v=0))) ⇒ ((¬(u=0)) ∨ (¬(v=0)))), c'est-à-dire ∀u∈2.∀v∈2.((¬((∀n∈ℕ.(un=0)) ∧ (∀n∈ℕ.(vn=0)))) ⇒ ((¬(∀n∈ℕ.(un=0))) ∨ (¬(∀n∈ℕ.(vn=0))))).

(Avec les termes pairs et impairs d'une même suite, WLLPO s'énonce sous la forme : si une suite binaire [ou d'entiers] n'est pas nulle, alors soit la suite de ses termes pairs n'est pas nulle soit la suite de ses termes impairs n'est pas nulle, ce qui est peut-être plus parlant. Mais pour LLPO il faut modifier un peu les choses : si une suite binaire a au plus un 1 [au sens où si deux termes valent 1 alors leurs indices sont égaux] alors soit la suite de ses termes pairs est nulle soit la suite de ses termes impairs est nulle.)

Ces principes admettent de nombreuses reformulations ou affirmations équivalentes. Par exemple :

Observation : WLLPO équivaut à l'affirmation que la non-égalité est cotransitive (ou ce qui revient au même, est un discernement) : ∀x∈2.∀y∈2.∀z∈2.((¬(x=z)) ⇒ ((¬(x=y)) ∨ (¬(y=z)))).

Démonstration : pour démontrer que WLLPO implique (¬(x=z)) ⇒ ((¬(x=y)) ∨ (¬(y=z))), on peut supposer sans perte de généralité que y=0 (quitte à ajouter modulo 2 la suite y aux suites x et z) ; or si on a ¬(x=z), on a certainement ¬((x=0) ∧ (z=0)), qui d'après WLLPO entraîne la conclusion souhaitée (¬(x=0)) ∨ (¬(z=0)).

Réciproquement, en supposant la cotransitivité de la non-égalité, si on a (¬((u=0)∧(v=0))), cela revient simplement à ¬(w=0) où w(n)=max(u(n),v(n)), et la cotransitivité permet d'affirmer que soit ¬(u=0) soit ¬(w=u) et ce dernier entraîne ¬(v=0) puisque w=u lorsque v=0. ∎

Pour ce qui est des implications entre les principes que j'ai évoqués, on a :

LEM (le tiers exclu) ⇒ LPOWLPOLLPOWLLPO ⇒ ⊤ (énoncé tautologiquement vrai),
et LPOMPWLLPO,

et aucune de ces implications n'est réversible (au sens où l'implication réciproque serait prouvable ; j'ai mis ⇒⊤ à la fin pour que l'affirmation aucune de ces implications n'est réversible inclue notamment l'affirmation que même WLLPO n'est pas constructivement prouvable). Je ne peux pas montrer l'indémontrabilité des réciproques (ceci nécessite de construire des modèles parfois assez subtils), mais les implications elles-mêmes ne sont pas très difficiles (quoique pas forcément complètement évidentes non plus). Montrons les plus intéressantes :

Proposition : WLPO implique LLPO.

Démonstration : supposons WLPO vrai : le but est de montrer LLPO. Pour cela, supposons que u et v soient deux suites binaires telles que ¬((u0) ∧ (v0)) (i.e., il n'est pas vrai que toutes les deux ont un terme non nul), et on cherche à montrer que (u=0) ∨ (v=0) (i.e., l'une des deux est nulle).

D'après WLPO appliqué à u, on a soit u=0 soit ¬(u=0) ; et de même pour v on a soit v=0 soit ¬(v=0). Dans trois des quatre cas, on a la conclusion (u=0) ∨ (v=0) souhaitée.

Reste le cas où ¬(u=0) ∧ ¬(v=0), c'est-à-dire ¬¬(u0) ∧ ¬¬(v0), ce qui est pareil que ¬¬((u0) ∧ (v0)), et ce qui contredit l'hypothèse ¬((u0) ∧ (v0)) qu'on a faite : ce cas est donc exclu, et on a bien prouvé (u=0) ∨ (v=0). ∎

Proposition : LLPO implique WLLPO.

Démonstration : supposons LLPO vrai : le but est de montrer WLLPO. Pour cela, supposons que u et v soient deux suites binaires telles que ¬((u=0) ∧ (v=0)) (i.e., il n'est pas vrai que toutes les deux sont nulles), et on cherche à montrer que (¬(u=0)) ∨ (¬(v=0)) (i.e., l'une des deux n'est pas nulle).

Appelons a la suite binaire dont le n-ième terme vaut 1 lorsque u(n)=1 et v(n)=0, et que pour tout k<n on a u(k)=0 et v(k)=0, et 0 sinon : ceci définit bien une suite binaire (le sinon a un sens) car u(n)=1 ∧ v(n)=0 ∧ ∀k<n.(u(k)=0) ∧ ∀k<n.(v(k)=0) est une valeur de vérité décidable (soit elle est vraie soit sa négation l'est) car chaque terme de la conjonction l'est (pour pour les ∀k<n cela résulte d'une récurrence sur n).

Appelons symétriquement b la suite binaire dont le n-ième terme vaut 1 lorsque u(n)=0 et v(n)=1 et que pour tout k<n on a u(k)=0 et v(k)=0, et 0 sinon.

Il est clair sur la définition que si a(n)=1 alors b est identiquement nulle, et si b(n)=1 alors a est identiquement nulle : on a donc ¬((a0) ∧ (b0)) (i.e., il n'est pas vrai que a et b toutes les deux ont un terme non nul).

Alors LLPO permet de conclure que (a=0) ∨ (b=0). Dans le cas où a=0, si on suppose v=0 on a aussi u=0 (par récurrence), ce qui contredit l'hypothèse faite que ¬((u=0) ∧ (v=0)) : c'est une absurdité, et ceci montre que ¬(v=0) (toujours dans le cas où a=0). De même, dans le cas où b=0, on a ¬(u=0). Ainsi, on a (¬(u=0)) ∨ (¬(v=0)), ce qu'on voulait. ∎

Comme autre principe dans le même genre, je pourrais aussi mentionner le principe de Markov faible ou WMP (weak Markov principle) qui affirme que si u est une suite binaire telle que pour toute suite binaire w on ait soit ¬(w=0) soit ¬(w=u), alors en fait on a u0. Autrement dit, ∀u∈2.((∀w∈2.((¬(w=0)) ∨ (¬(w=u)))) ⇒ (u0)) c'est-à-dire ∀u∈2.((∀w∈2.((¬∀n∈ℕ.(wn=0)) ∨ (¬∀n∈ℕ.(wn=un)))) ⇒ (∃n∈ℕ.(un=1))). Lui non plus n'est pas prouvable constructivement. On peut vérifier que MP est équivalent à la conjonction de WLLPO et de WMP.

L'ensemble ℕ

L'ensemble très important dont il va être question ici est classiquement égal à ℕ⊎{∞}, la réunion disjointe de ℕ et d'un singleton : on peut bien sûr former cette réunion disjointe ℕ⊎{∞} constructivement, mais l'ensemble ℕ qu'on va définir ci-dessous (qui la contient mais dont on ne peut pas affirmer qu'ils coïncident) est souvent beaucoup plus utile. Je ne sais pas si ℕ a un nom standard : on pourrait l'appeler compactifié d'Alexandrov des entiers naturels (mais ceci suggère une structure d'espace topologique alors que je parle ici simplement de l'ensemble sous-jacent) ou bien le désigner par une des méthodes que je vais donner pour le construire / définir (mais c'est dommage parce qu'on peut vouloir faire abstraction de la construction).

De quoi s'agit-il ? En voici trois définitions possibles :

  • l'ensemble des suites binaires u croissantes en leur paramètre, c'est-à-dire telles que ∀m∈ℕ.∀n∈ℕ.(mnumun),
  • l'ensemble des suites binaires v dont au plus un terme est non-nul au sens où ∀m∈ℕ.∀n∈ℕ.((vm=1 ∧ vn=1) ⇒ (m=n)),
  • l'ensemble des parties E décidables de ℕ dont tous les éléments sont égaux (i.e., l'ensemble des parties décidables et sous-terminales de ℕ).

Il est facile de mettre ces choses en bijection : pour les deux dernières descriptions, c'est la fonction indicatrice qui fournit une bijection entre parties décidables sous-terminales et suites binaires dont au plus un terme est non-nul ; pour les deux premières, on associe à une suite binaire croissante u la suite v définie par v(n) = u(n) − u(n−1) avec la convention que u(−1)=0, et réciproquement, à une suite binaire v dont au plus un terme est non-nul on associe la suite croissante u définie par u(n) = v(0)+⋯+v(n). Appelons donc ℕ l'un quelconque de ces ensembles.

Bien sûr, ℕ admet quantité d'autres descriptions : il ne change rien, par exemple, de considérer les suites binaires décroissantes plutôt que les croissantes (la bijection était obtenue en composant par u ↦ 1−u), ce qui est peut-être plus logique, en fait, parce qu'on va essentiellement vouloir « sommer » la suite pour l'identifier à un élément qui est peut-être un entier naturel ou peut-être ∞. De façon peut-être plus intéressante, et même si cela fait appel à des termes ou concepts que je n'ai pas définis, je peux mentionner encore d'autres descriptions de cet ensemble ℕ (à bijection près, ou même, comme espace topologique) qui seront peut-être utiles pour le visualiser :

  • il s'agit aussi de l'adhérence dans ℝ de l'ensemble {1/n : n≥1} (ou si on préfère, de l'ensemble {2n : n∈ℕ}, cela donne une adhérence différente, bien sûr, mais elles sont en bijection, et même homéomorphes ; à toutes fins utiles, je précise que l'adhérence de A⊆ℝ est l'ensemble des z∈ℝ tels que pour chaque ε>0 l'ensemble A ∩ ]zε, z+ε[ soit habité) ;
  • il s'agit encore de la sobrification de l'espace topologique formé de ℕ⊎{∞} muni de la topologie dont une base est donnée par les singletons de ℕ et les parties de la forme {i∈ℕ⊎{∞} : in} (i.e., les demi-droites), c'est-à-dire que les ouverts sont les réunions quelconques de ces choses-là.

✱ Si n∈ℕ, on peut lui associer un élément ι(n)∈ℕ défini ainsi : dans la première description de ℕ ce sera la suite 0n1* dont le m-ième terme vaut 0 si m<n et 1 si mn ; dans la deuxième description ce sera la suite dont le n-ième terme vaut 1 et tous les autres 0 ; ou dans la troisième description ce sera le singleton {n} de n dans ℕ. Ceci fournit une application ι : ℕ → ℕ, qui est injective (si ι(m)=ι(n) pour m,n∈ℕ, a m=n : c'est à peu près évident en considérant, par exemple, la valeur du n-ième terme de la suite dans la seconde description). On aura tendance à identifier un élément de ℕ avec son image par ι dans ℕ, c'est-à-dire à considérer que ℕ contient ℕ.

✱ Définissons aussi un élément ∞ (ou peut-être devrait-on le noter ι(∞)) de ℕ de la façon suivante : dans les deux premières descriptions, ce sera la suite valant constamment 0, et dans la troisième ce sera la partie vide ∅ de ℕ. Il est clair que ¬(ι(n)=∞) si n∈ℕ : l'élément ∞ que nous venons de définir n'est pas égal aux éléments de ℕ qu'on a identifiés aux entiers naturels.

‣ En mettant ensemble la fonction ι : ℕ → ℕ définie ci-dessus, et la fonction {∞} → ℕ, on fabrique (par les propriétés des réunions disjointes) une fonction, que je vais encore noter ι : ℕ⊎{∞} → ℕ. Cette fonction est toujours injective (par la dernière phrase du paragraphe précédent), donc on peut se permettre d'identifier ℕ⊎{∞} avec son image dans ℕ,

Classiquement, ι : ℕ⊎{∞} → ℕ est bijective (et donc on a juste défini ℕ comme réunion disjointe de ℕ et de ∞). Mais constructivement, comme je vais le dire ci-dessous, la surjectivité de ι : ℕ⊎{∞} → ℕ équivaut au principe limité d'omniscience (LPO), donc on ne peut pas identifier ces deux ensembles.

Pourquoi cet ensemble ℕ est-il intéressant ? En premier lieu, parce qu'il y a toutes sortes de phrases assez naturelles qui définissent un élément de ℕ.

Considérons par exemple la tournure la première occurrence de 42 fois le chiffre ‘7’ consécutivement dans l'écriture décimale de π : classiquement, on peut affirmer que soit il apparaît quelque part dans l'écriture décimale de π une occurrence de 42 chiffres ‘7’ consécutifs soit ce n'est pas le cas, et la tournure que je viens d'écrire désigne donc soit un entier naturel (si ces chiffres apparaissent bien) soit le symbole spécial ∞ (s'ils n'apparaissent jamais) ; constructivement, on ne peut pas affirmer cela (du moins en l'état actuel de nos connaissances : cela changerait, bien sûr, si un calcul faisait apparaître une occurrence telle que décrite, ou si on prouvait qu'il n'y en a pas). Néanmoins, l'affirmation la n-ième décimale de π commence une occurrence de 42 chiffres ‘7’ consécutifs, et aucun k<n n'en commence une, appelons-la P(n), est pour n'importe que n donné soit vraie soit fausse (je veux dire ∀n∈ℕ.(P(n)∨¬P(n))) car c'est une affirmation sur les entiers naturels qui est (en principe !) algorithmiquement testable pour n'importe quel n donné, et de plus, comme il est évident sur la définition de P(n), si on a P(m) et P(n) alors m=n, autrement dit, {n∈ℕ : P(n)} (c'est-à-dire l'ensemble des indices de la première occurrence de 42 chiffres ‘7’ consécutifs dans l'écriture décimale de π) est une partie décidable de ℕ dont tous les éléments sont égaux, i.e., un élément de ℕ. Il est raisonnable de convenir que la phrase la première occurrence de 42 fois le chiffre ‘7’ consécutivement dans l'écriture décimale de π désigne cet élément : comme classiquement, dire que cet élément vaut n∈ℕ (c'est-à-dire ι(n)) revient à dire que la n-ième décimale de π commence une occurrence de 42 chiffres ‘7’ consécutifs, et aucun k<n n'en commence une ; et comme classiquement, dire que cet élément vaut ∞ revient à dire que π ne comporte jamais 42 chiffres ‘7’ consécutifs, mais la différence avec la situation classique est qu'on ne peut pas affirmer (en l'état actuel de nos connaissances) que l'une de ces deux choses vaut.

J'ai donné ici l'exemple de la première occurrence de 42 fois le chiffre ‘7’ consécutivement dans l'écriture décimale de π, mais il y a toutes sortes de tournures qui, pour essentiellement les mêmes raisons, définissent un élément de ℕ. Par exemple le plus petit entier pair qui n'est pas la somme de deux nombres premiers (la conjecture de Goldbach est l'affirmation que cet élément vaut ∞) ou la plus petite longueur d'une contradiction dans ZFC ou encore le temps d'exécution de la machine de Turing <machin> définissent des éléments de ℕ dont il n'est, au moins, pas évident, d'affirmer qu'ils sont dans ℕ⊎{∞}.

Plus généralement, si v est une suite binaire ou d'entiers naturels (i.e., un élément de 2 ou ℕ), on peut définir μn.(v(n)≠0), ou peut-être plus simplement μ(v), à lire comme le plus petit n tel que v(n)≠0 (en français, l'indice du premier terme non nul de la suite v), qui est un élément de ℕ défini formellement comme l'ensemble des n tels que v(n)≠0 ∧ ∀k<n.(v(k)=0), lequel est une partie décidable de ℕ dont tous les éléments sont égaux, donc peut être vue comme un élément de ℕ : dire que μ(v)=n (enfin, =ι(n)) revient par définition à dire que la suite v est nulle jusqu'au n-ième terme qui est non nul, et dire que μ(v)=∞ revient à dire que la suite v est identiquement nulle. (Et, quitte à me répéter une fois de plus, constructivement, on ne peut pas affirmer que l'une de ces deux choses vaut.)

Bien sûr, comme ma suite est à valeurs dans {0,1}=:2 ou ℕ (ou en tout cas un ensemble discret), les choses sont symétriques entre ≠0 et =0, et je pourrais tout aussi bien définir μn.(v(n)=0), lire comme le plus petit n tel que v(n)=0, l'indice du premier terme nul de la suite v, mais l'avantage de la convention que j'ai proposée d'écrire μ(v) pour μn.(v(n)≠0) est que si on voit ℕ comme les suites binaires croissantes, ou bien celles dont au plus un terme est non-nul, alors μ(v)=v pour v un élément qui est déjà dans ℕ, ce qui peut être pratique.

Notons les choses suivantes, qui peuvent aider à dissiper des confusions :

  • Si n est un entier naturel, tout élément de ℕ est soit égal à n soit non égal à n (∀n∈ℕ.∀v∈ℕ.((v=ι(n)) ∨ ¬(v=ι(n)))) : en effet, si on voit ℕ comme les suites binaires dont au plus un terme est non-nul, alors v=ι(n) signifie simplement v(n)=1, et ceci est soit vrai soit faux.

    (Si on préfère le dire ainsi, le présent point affirme que les singletons des entiers naturels sont des parties décidables de ℕ, et plus généralement cela s'étend aux parties finies de ℕ.)

  • Si un élément de ℕ n'est pas dans ℕ (au sens où il n'est égal à ι(n) pour aucun n∈ℕ) alors cet élément est égal à ∞ ; autrement dit : ∀v∈ℕ.((∀n∈ℕ.¬(v=ι(n))) ⇒ v=∞). C'est de nouveau clair : si on voit ℕ comme les suites binaires v dont au plus un terme est non-nul, l'hypothèse que ¬(v=ι(n)) signifie simplement v(n)=0, et si ceci est vrai pour tout n, on a v=∞.

Si je conviens de noter XE (pour X un ensemble et EX) l'ensemble {xX : ¬(xE)} des éléments de X qui n'appartiennent pas à E, le second point nous dit que ℕ ∖ ℕ = {∞}. Mais évidemment, on ne peut pas en conclure que ℕ ∖ {∞} = ℕ. En fait, l'utilisation de l'ensemble ℕ permet de reformuler de façon peut-être plus claire les principes d'omniscience énoncés plus haut sur les suites binaires en général :

  • le principe limité d'omniscience (LPO) équivaut à l'énoncé que ℕ = ℕ ∪ {∞},
  • le principe limité faible d'omniscience (WLPO) équivaut à l'énoncé que ℕ = (ℕ ∖ {∞}) ∪ {∞},
  • le principe de Markov (MP) équivaut à l'énoncé que ℕ ∖ {∞} = ℕ,
  • le moindre principe limité d'omniscience (LLPO) équivaut à l'énoncé que ℕ = (2·ℕ) ∪ (2·ℕ+1), où les notations sont expliquées ci-desous,
  • le moindre principe limité faible d'omniscience (WLLPO) équivaut à l'énoncé que (ℕ ∖ {∞}) = ((2·ℕ) ∖ {∞}) ∪ ((2·ℕ+1) ∖ {∞}).

Ici, 2·ℕ et 2·ℕ+1 désignent respectivement l'image de l'injection ℕ → ℕ consistant (si ℕ est vu comme les suites binaires dont au plus un terme est non-nul) à intercaler la suite donnée sur les termes pairs avec des 0 sur les termes impairs, respectivement à intercaler la suite donnée sur les termes impairs avec des 0 sur les termes pairs (autrement dit, 2·ℕ est l'image de vww2n=vn et w2n+1=0, tandis que 2·ℕ+1 est l'image de vww2n=0 et w2n+1=vn ; manifestement, (2·ℕ) ∩ (2·ℕ+1) = {∞}).

On peut prendre ces versions pour des définitions des principes en question. L'équivalence avec la forme précédemment énoncée s'obtient, dans un sens, en appliquant le principe tel que précédemment énoncé à l'élément de ℕ vu comme une suite binaire dont au plus un terme est non-nul (et pour les principles limités, les suites des termes pairs et impairs séparément), et, dans l'autre sens, en appliquant la forme ci-dessus à μ(u) (l'indice du premier terme non nul de la suite binaire considérée, vu comme élément de ℕ comme je l'ai expliqué ; et pour les principles limités, on commence par intercaler les deux suites données comme les termes pairs et impairs d'une seule). Je passe sur les détails, mais il ne devrait pas y avoir de difficulté majeure.

Par ailleurs, je ne sais pas si je rends les choses plus claires ou plus confuses en mentionnant que ℕ hérite de 2 (dans l'une ou l'autre des deux premières descriptions que j'ai faites) une relation de discernement ‘⋕’, qui peut se réécrire sur ℕ comme uv ⇔ ∃n∈ℕ.(((u=ι(n)) ∧ ¬(v=ι(n))) ∨ ((v=ι(n)) ∧ ¬(u=ι(n)))), c'est-à-dire notamment que quand deux éléments de ℕ sont discernés, il y en forcément a un ou l'autre qui est dans ℕ. Avec cette relation, ℕ est l'ensemble des éléments de ℕ qui sont discernés de ∞.

Voici encore un point intéressant au sujet de l'ensemble ℕ qui illustre le fait qu'il est, sur certains aspects, parfois plus facile à manier que ℕ :

Omniscience de ℕ : si p:ℕ→2 (où 2={0,1}), alors soit p est identiquement nulle soit p prend la valeur 1 : ∀p∈2.((∀v∈ℕ.(p(v)=0)) ∨ (∃v∈ℕ.(p(v)=1))). Formulation équivalente : toute partie décidable de ℕ est soit vide soit habitée.

(Si on remplace ℕ par ℕ dans cet énoncé, c'est exactement le principe limité d'omniscience, qu'on pourrait appeler omniscience de ℕ, dont j'ai expliqué qu'il n'était pas valable constructivement ; mais avec ℕ, ce principe est valable, et je vais présentement le démontrer.)

Je vais essayer de procéder très méticuleusement ici, parce que je crois que cette preuve est assez instructive, et peut-être un peu plus subtile qu'on le croirait au premier abord (l'idée générale est de définir un élément d comme la première valeur non nulle de p, mais ce n'est pas complètement évident ensuite que ce d nous donne le résultat voulu) :

Démonstration : On va montrer que toute fonction p:ℕ→2 est soit identiquement nulle soit prend la valeur 1. (L'équivalence avec la formulation sur les parties décidables s'obtient par la fonction indicatrice, en se rappelant qu'une partie est décidable ssi sa fonction indicatrice est à valeurs dans {⊥,⊤} qu'on peut identifier à {0,1}.)

Dans toute cette démonstration, on va voir ℕ comme l'ensemble des suites binaires dont au plus un terme est non-nul (et on rappelle que dans cette présentation, ι(n) est la suite ayant un 1 en n-ième position, tandis que ∞ est la suite constamment nulle).

Soit donc p:ℕ→2. On définit un élément d∈ℕ en considérant la première valeur non nulle de p sur ℕ, c'est-à-dire μ(pι), ou, de façon moins cryptique, d est définie par d(n)=1 lorsque p(ι(n))=1 et p(ι(k))=0 pour tout k<n, et d(n)=0 sinon (comme je l'ai dit plusieurs fois déjà, le sinon a bien un sens car 2 est discret et qu'on examine un nombre fini de valeurs ; et manifestement, ce d a au plus un terme non-nul, c'est-à-dire qu'on a bien défini un d∈ℕ).

On a soit p(d)=0 soit p(d)=1 (car 2={0,1}) : dans le second cas, on a bien exhibé le fait que ∃v∈ℕ.(p(v)=1). Il reste donc simplement à montrer que dans le cas p(d)=0 on a ∀v∈ℕ.(p(v)=0).

Plaçons-nous donc dans le cas p(d)=0, et on veut montrer que p est identiquement nul sur ℕ.

Dans un premier temps, on va montrer que p est nul sur ℕ, c'est-à-dire ∀n∈ℕ.(p(ι(n))=0). Ceci se fait par récurrence (« forte ») sur n : on peut donc supposer connu le fait que p(ι(k))=0 pour k<n. Maintenant, on a soit p(ι(n))=0 soit p(ι(n))=1 (encore une fois car 2={0,1}). Dans le premier cas, on a la conclusion voulue. Dans le second (c'est-à-dire si p(ι(n))=1), comme par ailleurs p(ι(k))=0 pour k<n (hypothèse de récurrence), on a d(n)=1 par définition de d, c'est-à-dire d=ι(n) ; mais alors p(d)=1, ce qui contredit le fait que p(d)=0, bref, ce cas est exclu, la seule possibilité est p(ι(n))=0, et ceci conclut la récurrence.

Remarquons qu'à ce stade, la définition de d donne immédiatement d(n)=0 pour tout n, c'est-à-dire d=∞ (l'élément ∞ de ℕ étant la suite nulle) : on a donc à la fois p(ι(n))=0 et p(∞)=0. Il reste à voir que p(v)=0 pour tout v∈ℕ.

Soit v∈ℕ quelconque. On veut montrer p(v)=0. On a soit p(v)=0 soit p(v)=1 (encore et toujours car 2={0,1}) : dans le premier cas, on a la conclusion voulue, il s'agit donc simplement d'éliminer le second cas. Supposons donc p(v)=1. On va montrer v=∞, c'est-à-dire ∀n∈ℕ.(v(n)=0). Ceci se fait par récurrence (« forte ») sur n : on peut donc supposer connu le fait que v(k)=0 pour k<n ; on a soit v(n)=0 soit v(n)=1 (car 2={0,1}) : dans le premier cas, on a la conclusion voulue, et dans le second (c'est-à-dire si v(n)=1) on a v=ι(n) (par définition de ι(n)) ; mais alors p(ι(n))=1, ce qui contredit le fait que p(ι(n))=0, bref, ce cas est exclu, la seule possibilité est v(n)=0, et ceci conclut la récurrence. On a donc prouvé v=∞, mais de nouveau, le fait que p(v)=1 contredit le fait vu plus haut que p(∞)=0. Bref, le cas p(v)=1 est exclu, et ceci prouve que p(v)=0, comme annoncé. ∎

On peut peut-être simplifier quelque chose (a-t-on vraiment besoin de faire deux fois une récurrence ?), mais je ne suis pas sûr. Pour plus de contexte sur ce résultat et cette démonstration, et concernant la possibilité de construire d'autres ensembles du même style, voir cet article.

J'ai signalé plus haut que le principe limité d'omniscience (LPO) équivaut à l'affirmation que ℕ⊎{∞} = ℕ (via l'injection ι, i.e., l'affirmation que ι est bijective). Mais une conséquence du résultat que je viens de prouver est que LPO équivaut aussi à l'affirmation (a priori plus faible) qu'il existe une bijection entre ℕ⊎{∞} et ℕ. En effet, comme ℕ⊎{∞} et en bijection avec ℕ, si ℕ⊎{∞} et ℕ sont en bijection, alors ℕ et ℕ le sont, et le principe d'omniscience qu'on vient de montrer s'applique à ℕ : et c'est précisément LPO !

Voilà, comme expliqué dans l'avant-propos, il me reste encore (au moins) une troisième partie à publier, consacrée aux nombres réels, mais je ne sais pas combien de temps ça me prendra (ça dépend si je décide de publier tel quel le texte que j'ai écrit, et qui est assez inachevé, ou de le rendre un peu plus présentable).

↑Entry #2798 [older| permalink|newer] / ↑Entrée #2798 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]