David Madore's WebLog: Comment un mathématicien ouvre une infinité de boîtes

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

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

(vendredi)

Comment un mathématicien ouvre une infinité de boîtes

Les remarques faites en commentaire sur mon entrée récente me semblent mériter quelques précisions d'ordre mathématique, auxquelles je vais consacrer cette entrée. Les deux parties suivantes, et même leurs différentes sous-parties, sont indépendantes (et au moins formellement indépendantes de l'entrée précédente). Vue la longueur de ce post, ce n'est pas une mauvaise chose, d'ailleurs.

Sur la calculabilité, et l'utilisation de l'axiome du choix

Plutôt que discuter sur le problème d'origine, je vais utiliser celui-ci, qui est légèrement plus simple :

Le cruel Docteur No a capturé une infinité dénombrable de mathématiciens pour les soumettre à une épreuve pernicieuse. Il a créé des chapeaux de plusieurs couleurs différentes. Après avoir permis aux mathématiciens de se concerter, il va les soumettre à son épreuve dont il leur communique les termes : il empêchera toute communication entre eux, puis rangera les mathématiciens en file indienne dans un certain ordre (indexé par les entiers naturels), et mettra sur la tête de chacun un chapeau d'une certaine couleur (les couleurs possibles sont connues à l'avance), de sorte que chaque mathématicien puisse voir les couleurs des chapeaux de tous ceux situés devant lui (une infinité), mais pas de ceux (en nombre fini) situés derrière lui ni du sien propre. Chaque mathématicien devra noter sur un papier (et toujours sans aucune communication avec les autres) ce qu'il croit être la couleur de son chapeau. Le Docteur No tolérera un nombre fini d'erreurs, mais pas plus : si une infinité de mathématiciens s'est trompée en annonçant la couleur de leur chapeau, tous seront tués avec des tortures particulièrement raffinées — à l'inverse, si tous sauf un nombre fini avaient raison, ils seront tous libérés. Comment les mathématiciens se tirent-ils de ce mauvais pas (de façon certaine) ?

De façon mathématique, on demande de construire une fonction φ:XX (où X est l'ensemble des couleurs et ℕ l'ensemble des naturels) qui à une suite de couleurs de chapeau associe la suite des réponses des mathématiciens, telle que si u et v ne diffèrent que sur les n premiers termes alors φ(u) et φ(v) ne diffèrent que sur les n−1 premiers termes (car, pour tout n, seuls les n−1 premiers mathématiciens peuvent pas voir certains des n premiers chapeaux), et telle que pour tout u les suites u et φ(u) coïncident sauf en un nombre fini de termes (seuls un nombre fini des mathématiciens a le droit d'avoir tort). Dispensons-nous des généralités vaseuses et mettons que X={0,1} (il n'y a que deux couleurs de chapeau : noir et blanc).

Peut-on avoir une stratégie calculable ?

Supposons un instant que nos mathématiciens soient, en fait, des informaticiens : ils ne peuvent calculer que les fonctions calculables effectivement par une machine de Turing ; plus exactement, il doit exister une machine de Turing T qui, quand on l'exécute en lui fournissant un entier naturel n et un oracle u (dont elle peut interroger librement les valeurs mais seulement celles qui sont au moins égales à n+1) doit terminer et renvoyer φ(u)(n). (On souligne qu'une machine de Turing ne peut évidemment, au cours de son exécution, interroger qu'un nombre fini de valeurs de l'oracle.) Or, dans ces conditions, les informaticiens ne peuvent pas être certains d'être libérés : en effet, si le Docteur No a connaissance[#] de la machine de Turing T qui sera utilisée par les informaticiens, il peut lancer l'exécution de T sur le nombre n0=0 en fixant arbitrairement la valeur de u(k) lorsque la machine T interroge l'oracle en k (forcément différent de 0 par hypothèse), puis choisir une couleur de chapeau u(0) pour l'informaticien 0 qui soit différente de la valeur retournée par T pour ce calcul (qui se fait en temps fini puisque T est censée toujours terminer) ; puis il lance l'exécution de T sur le premier nombre n1 pour lequel la valeur de u n'a pas encore été fixée, et de nouveau, à chaque fois que la machine T interroge l'oracle sur une valeur non encore déterminée de u, elle est fixée arbitrairement, et à la fin u(n1) est choisi différent du nombre renvoyé par T. Et ainsi de suite : alors les informaticiens n0, n1, n2, etc., se tromperont tous, donc le Docteur No aura réussi son plan diabolique.

On voit même, d'ailleurs, que dans l'opération, le Docteur No peut lui-même être un informaticien, car j'ai présenté un programme effectif qui calcule la fonction u de couleur à donner aux chapeaux (pour mettre en défaut des informaticiens qui utiliseraient une machine de Turing T connue). Par ailleurs, je n'ai essentiellement rien utilisé sur les machines de Turing, donc ceci vaut encore si on les remplace par des machines plus puissantes, par exemple si les informaticiens et le Docteur No disposent d'un oracle de l'arrêt des machines de Turing (elles-mêmes sans oracle), ou de même pour tout degré de Turing : si on demande aux fonctions φ et u d'être arithmétiques (= définissables dans l'arithmétique de Peano, c'est-à-dire exactement appartenant au degré de Turing 0(ω)), on a donc la même conclusion (à ce stade-là, ce ne sont plus vraiment des informaticiens, ce sont plutôt des mathématiciens finitistes).

[#] Là, normalement, quelqu'un va protester que je n'ai pas mis dans mes hypothèses que le Docteur No connaît la stratégie des informaticiens ! Mais je cherche à prouver que les informaticiens n'ont pas de stratégie leur permettant d'être libérés à coup sûr : or s'ils en avaient une, utilisant la machine de Turing T, elle devrait fonctionner même si le Docteur No connaissait cette machine T — il peut, après tout, très bien avoir vu juste par hasard.

En revanche, si les informaticiens disposent d'un oracle de l'arrêt des machines de Turing et que le Docteur No n'en dispose pas (ou plus généralement si les mathématiciens ont un saut de Turing d'avance sur le Docteur No), alors les informaticiens ont de nouveau l'avantage. En effet, l'informaticien numéro i va considérer les i premières machines de Turing et, pour chaque couple de deux (T,T′) parmi elles, en utilisant l'oracle dont il dispose, déterminer s'il existe un j>i telles qu'elles calculent une valeur différente en j (ou au contraire si elles calculent systématiquement la même valeur en tout j>i) ; il fixe alors N>i suffisant pour garantir que si deux machines (T,T′) parmi les i premières calculent toujours les mêmes valeurs pour les j entre i+1 et N, alors elles calculent les mêmes valeurs pour tout j>i. En observant la couleur des chapeaux numérotés par j entre i+1 et N, il élimine les machines de Turing qui ne calculent pas des valeurs conformes à ces observations : si T est la première qui s'y conforme, alors il prédit pour son propre chapeau la couleur renvoyée par T (appliquée au nombre i). Dans ces conditions, si le Docteur No calcule les couleurs des chapeaux en utilisant une machine de Turing, et si Tk (la machine de Turing numérotée k) est la première qui calcule les couleurs des chapeaux ainsi choisis à partir d'un certain rang fini (disons n0), alors les informaticiens portant un numéro supérieur au max de k et de n0 vont tous répondre juste puisqu'ils utiliseront justement cette machine Tk pour déterminer la couleur de leur chapeau.

[Correction () : l'argument en question utilise deux niveaux d'oracle d'arrêt (pour décider si une fonction partielle récursive est totale, ou si deux fonctions partielles récursives prennent les mêmes valeurs à partir d'un certain rang, il faut avoir accès au degré de Turing 0″ et pas juste 0′). Voici une modification de la stratégie qui, je crois, doit marcher avec le seul oracle de l'arrêt. Soit f une fonction strictement croissante fixée qui croît plus vite que toute fonction calculable (il n'est pas difficile de fabriquer ça avec l'oracle de l'arrêt, par exemple la fonction « castor affairé »). L'informaticien numéro i va considérer les i premières machines de Turing, va calculer les valeurs prises par chacune d'elle sur les entrées comprises entre i+1 et f(i) (ceci demande l'oracle de l'arrêt pour savoir si les calculs terminent effectivement), va comparer les valeurs calculées avec les observations des chapeaux, et va retenir le plus petit indice pour lequel la machine prévoit les bonnes couleurs : il annonce alors la valeur renvoyée sur l'entrée i de la machine en question. Dans ces conditions, si le Docteur No calcule les couleurs des chapeaux en utilisant une machine de Turing, et si T:=Tk (la machine de Turing numérotée k) est la première qui calcule les couleurs des chapeaux ainsi choisis à partir d'un certain rang fini, alors pour toute machine T′ d'indice plus petit que k et calculant une fonction totale, comme il y a une infinité de différences entre T et T′ et que la fonction qui à n associe l'indice de la différence suivante est calculable, la fonction f la domine, donc au bout d'un certain rang les informaticiens calculent bien la couleur de leur chapeau avec T, et ils ont raison.]

Doit-on utiliser l'axiome du choix ?

Maintenant que les informaticiens qui n'ont pas d'oracle dans leur poche se sont fait impitoyablement trucider par le Docteur No, reprenons des mathématiciens.

Une stratégie φ:{0,1}→{0,1} des mathématiciens leur permettant de passer l'épreuve du cruel Docteur No est, on l'a dit, une fonction φ telle que pour u une suite quelconque φ(u) et u coïncident à partir d'un certain rang, et que si u et v coïncident à partir d'un rang n alors φ(u) et φ(v) coïncident à partir du rang n−1. Maintenant, imaginons qu'on à partir d'une suite u on itère la fonction φ (ou, si on veut, chaque mathématicien remplace son chapeau par celui qu'il croit avoir en fonction des mathématiciens devant lui — mais seul un nombre fini d'entre eux change de chapeau en ce faisant puisque la stratégie était bonne — et on itère le processus) : on voit facilement qu'on tombe ainsi en un nombre fini d'étapes sur un point fixe, que je vais appeler φ(u), lequel coïncide toujours avec u à partir d'un certain rang, et que si u et v coïncident à partir d'un certain rang, alors φ(u) et φ(v) sont exactement égales. Or en fait, la fonction φ convient tout aussi bien que la fonction φ (elle vérifie les propriétés supposées de cette dernière), donc rechercher une stratégie pour les mathématiciens revient exactement à chercher une telle fonction φ : il s'agit d'une section (un choix de représentants) pour la relation d'équivalence « coïncider à partir d'un certain rang », appelons-la ∼, sur les suites.

Visiblement le choix d'un élément dans chaque classe d'équivalence pour ∼ fait appel à l'axiome du choix. Évidemment, ça ne prouve pas qu'on ne puisse pas faire autrement : je vais donc esquisser une démonstration du fait qu'on ne peut pas démontrer l'existence de cette section dans ZF (s'il est consistant…) en l'absence de l'axiome du choix. Autrement dit, je veux montrer qu'il existe un modèle N de ZF dans lequel la surjection canonique 2ω↠2ω/∼ n'admet pas de section. Comme c'est un peu fastidieux (et plus fastidieux encore vu qu'il s'agit d'écrire ça en HTML, qui sera sans doute illisible pour tout le monde faute de polices Unicode assez complètes), et vu qu'environ 0.42 lecteurs vont lire le zblurgh qui suit (ceux qui peuvent le comprendre peuvent probablement l'inventer eux-mêmes), je vais être un peu elliptique. Mais il y a à la fin des choses que je ne sais pas démontrer concernant l'axiome du choix dépendant : voir plus bas.

On appelle (dans un modèle M de ZFC) P l'ensemble partiellement ordonné formé des fonctions définies sur un sous-ensemble fini de ω1×ω et à valeurs dans 2={0,1}, partiellement ordonné par l'inclusion réciproque (qp, i.e., q est plus fort que p, lorsque q prolonge p), et on appelle B l'algèbre de Boole complété de P, c'est-à-dire l'algèbre de Boole (complète) des ouverts réguliers sur l'espace topologique 2ω1×ω (muni de la topologie produit). Soit D un ultrafiltre B-générique (ou son nom canonique dans le modèle MB à valeurs dans B) : autrement dit, M[D] est le modèle qui ajoute ℵ1 réels génériques que je vais appeler xα (je vais expliquer plus loin pourquoi j'en utilise ℵ1 et pas simplement ℵ0). Pour chaque α∈ω1, soit xα:ω→{0,1} la réunion des p(α,·) pour p dans D ; soit cα la classe de xα modulo ∼.

Soit G ≅ ∏α∈ω1i∈ω (ℤ/2ℤ) le groupe (commutatif) des automorphismes σX de P (ou de B) où X⊆ω1×ω parcourt les ensembles tels que chaque X∩({α}×ω) (pour α∈ω1) soit fini, où σX agit sur pP en échangeant (entre 0 et 1) la valeur de p sur les couples (α,i) appartenant à X (et sur lesquels p est défini) : concrètement, G est donc constitué des automorphismes de P qui changent la valeur des pP(α,i) en un nombre fini de i pour chaque α. Soit F le filtre (normal) de sous-groupes de G engendré par les Fix(E) avec E⊆ω1 dénombrable, où par Fix(E) on désigne l'ensemble des σX pour lesquels XE×ω. Soit N le modèle symétrique associé à la situation, c'est-à-dire le modèle formé des éléments de M[D] qui ont un nom hériditairement symétrique (i.e., fixé par un Fix(E)). Manifestement, chaque xα est dans N, ainsi que chaque cα : mais même la fonction αcα elle-même est dans N (puisqu'elle — ou plutôt son nom évident — est fixée par tout σX). En revanche, il est assez clair, et on va le justifier dans un instant, que la fonction αxα, elle, n'est pas dans N (c'est une fonction de choix pour αcα). Ce N est un modèle de ZF ; on veut prouver que la fonction αcα n'a pas de fonction de choix (et en particulier 2ω↠2ω/∼ n'a pas de section).

Supposons donc pour cela que h1→2ω soit une fonction de choix pour αcα (ici comme ailleurs, par ω1 on entend ω1M, i.e., le ω1 du modèle initial — il se trouve qu'il est égal à ω1M[D], et donc ω1N, parce que P vérifie la condition de chaîne dénombrable, mais il me semble qu'on n'en aura pas besoin). On appelle aussi abusivement h un nom symétrique pour cette fonction ; mettons qu'il soit fixé par Fix(E) avec E dénombrable. Soit p dans D qui force (⊩) h à être une fonction ω1→2ω telle que h(α)∈cα pour tout α∈ω1. Soit γ supérieur à chaque élément de E. Soit qp et n0∈ω tel que qsi in alors h(γ,i)=xγ(i). Soit kn et tel que k soit supérieur à i pour tout (γ,i) dans le domaine de q. Soit π=σ{(γ,k)}. Alors π(q) et q sont égaux : alors (comme π(h)=h tandis que qπ(xγ)(k)=1−xγ(k)), on a qh(γ,k)=1−h(γ,k), une contradiction.

Ce qui précède montre qu'en l'absence de l'axiome du choix, on ne peut pas prouver que 2↠2/∼ a une section. Mais ce qui me chagrine fort, c'est que je n'arrive pas à tordre le cou à l'axiome du choix dépendant (abrégé en DC ci-après) : j'étais parti pour construire un modèle qui vérifie l'axiome du choix dépendant (c'est pour cette raison que j'ai rédigé avec ω1 et pas ω : comme l'axiome du choix dépendant implique l'axiome du choix dénombrable, on ne va pas arriver à avoir DC et à éviter d'avoir une fonction de choix pour les classes d'un nombre dénombrable de suites génériques), et j'ai lamentablement échoué. Dans le modèle que je viens de décrire, je ne sais pas si DC est vérifié, car bien que le filtre F permette de fixer un ensemble E dénombrable de α∈ω1, pour construire une suite de choix dépendants à partir d'une relation, j'aurais besoin de borner inférieurement une suite de conditions de forcing, et ce n'est visiblement pas possible ; ou alors je remplace P par l'ensemble, plus fin, des fonctions partielles à domaine au plus dénombrable dans ω1×ω (toujours à valeurs dans 2, évidemment), le reste étant inchangé : dans ce cas il est facile de voir que DC est vérifié dans le modèle symétrique, mais je ne sais plus montrer que αcα n'a pas de fonction de choix, car la phrase tel que k soit supérieur à i pour tout (γ,i) dans le domaine de q dans la démonstration ci-dessus n'est plus juste (en gros, le problème est que les réels xα sont beaucoup moins génériques avec cette condition de forcing plus fine — d'ailleurs, un nombre dénombrable d'entre eux peut très bien être dans M — du coup, on ne peut rien conclure avec un seul xα, et je n'arrive pas à en exploiter une infinité non dénombrable à la fois). Pourtant, je reste complètement persuadé que DC ne suffit pas à démontrer l'existence d'une section ; mais j'ai passé deux jours à m'y arracher les cheveux et à essayer toutes sortes de variantes sur mes conditions de forcing, en vain, alors je dois être vraiment mauvais sur ce coup, et je vais demander de l'aide à des gens plus savants que moi. Si par hasard un lecteur sait comment faire, qu'il m'explique.

Sur la façon d'ouvrir des boîtes

Un commentateur m'a fait remarquer, à juste titre, que si on a une infinité de boîtes à ouvrir pour en observer le contenu, une phrase comme [le mathématicien] pourra ouvrir les boîtes qu'il souhaite pour en examiner le contenu, y compris une infinité d'entre elles (en fonction éventuellement des nombres lus dans les boîtes déjà ouvertes) n'est pas terriblement claire. Comment formaliser, au juste, ce qui est autorisé ?

Par exemple, si j'ai une infinité dénombrable de boîtes indicées par les entiers naturels, ai-je le droit de les ouvrir « en commençant par la fin » ? C'est-à-dire, par exemple, de décréter qu'au temps t (un nombre réel) j'ai ouvert les boîtes numérotées par tous les naturels i tels que t≥1/i (donc j'ouvre la boîte 1 au bout de 1 seconde, la boîte 2 au bout de 1/2 seconde, la boîte 3 au bout de 1/3 de seconde, etc.) ? Après tout, on admet qu'il faut bien pouvoir ouvrir une infinité de boîtes en un temps fini, donc pourquoi pas de façon non bien ordonnée ? Pire encore : peut-on faire des choix, dans ce cas, en fonction des boîtes précédemment ouvertes ?

Posons le problème de façon encore plus vicieuse : imaginons que mon défi soit le suivant : j'ai une infinité dénombrable de boîtes (indicées par les entiers naturels), contenant chacune un nombre réel, on m'assure que la suite ainsi formée tend vers zéro, et mon but est d'ouvrir une infinité de boîtes ne contenant que des réels entre −1 et 1 (une telle infinité de boîtes existe forcément puisque la suite tend vers 0). Ai-je le droit de dire : j'ouvre les boîtes en partant de la fin (comme je viens de le dire : la boîte i serait ouverte après un temps 1/i), et à un moment où je constate avoir ouvert une infinité de boîtes contenant chacune des nombres entre −1 et 1, je m'arrête ? En apparence, j'ai respecté ma règle de ne tenir compte que des boîtes déjà ouvertes. Pourtant, on a fermement l'impression que c'est de la triche : une façon de s'en convaincre est que si je change la suite en modifiant le contenu de la dernière boîte que j'aie ouverte (celle numérotée par le plus petit indice) pour y mettre le nombre 42, ma règle ferait que magiquement je ne l'ouvrirais pas, mais si les deux suites ne diffèrent que par ce nombre, on voit mal comment je peux savoir que je ne dois pas l'ouvrir vu que, justement, je ne l'ouvre pas… Avec de tels super-pouvoirs, les mathématiciens de l'énigme de mon entrée précédente arrivent à avoir tous raison, pas seulement 99 sur 100.

La moindre des choses qu'on veut demander, donc, c'est que si on change le contenu d'une boîte que le mathématicien n'a pas ouverte, alors cela ne change rien aux opérations qu'il fait. Formellement, je définirai un schéma global d'ouverture comme une fonction h définie sur X (où X est l'ensemble des contenus possibles d'une boîte, peu importe ce que c'est) et qui à toute suite u dans cet ensemble associe un ensemble hO(u) de boîtes ouvertes ainsi que d'autres choses (par exemple une prédiction qui serait faite par le mathématicien sur une boîte non ouverte) et qui vérifie la propriété que si deux suites u et v coïncident sur l'ensemble hO(u), alors h(u)=h(v) (c'est-à-dire au moins que hO(u)=hO(v), et aussi que les autres choses associées à h coïncident).

On peut être sceptique quant au fait que la seule donnée de l'ensemble des boîtes finalement ouvertes suffise à certifier qu'il n'y ait pas de la poussière sous le tapis. Une définition a priori plus stricte serait la suivante, qui introduit l'ordre dans lequel on ouvre les boîtes : un schéma de déroulement d'ouvertures est une fonction S:XH×(…), où les points de suspension désignent d'autres données comme avant, et H est l'ensemble des parties de 𝒫(ℕ) (ensemble des parties de ℕ) totalement ordonnées par l'inclusion (moralement, S définit non seulement quelles boîtes on ouvre, mais aussi l'ordre dans lequel on les ouvre) et complètes (c'est-à-dire ayant un plus petit élément, un plus grand élément, et possédant des bornes inf et sup pour toutes ses parties ; en gros, on peut toujours s'y ramener en ajoutant les intersections et unions idoines), où on demande que S vérifie la condition suivante (si je note SH la composante de S sur H) : pour tous u et v dans X, si I est le plus petit élément de SH(u) tel que u et v ne coïncident pas identiquement sur I, alors SH(v) contient également I ainsi que tous les J plus petits (dans SH(u)), et si un tel élément n'existe pas (c'est-à-dire si u et v coïncident identiquement sur tout élément de SH(u)), alors S(u)=S(v). En clair : on doit ouvrir les boîtes dans un certain ordre, et le contenu d'une boîte ne peut affecter que les boîtes ouvertes ultérieurement. Visiblement, un schéma de déroulement d'ouvertures S, tel que je viens de le définir, détermine un schéma global d'ouvertures h comme défini précédemment (il suffit de prendre pour hO(u) le plus grand élément de SH(u), les autres données coïncidant). Je pense qu'il n'est pas vrai qu'un schéma global d'ouverture puisse toujours être défini par un schéma de déroulement d'ouvertures, mais je n'arrive pas non plus à trouver de contre-exemple (là aussi, je me trouve assez mauvais de ne pas arriver à trancher cette question !).

Est-ce encore suffisant ? Avec ces définition, un schéma d'ouverture légitime pour une suite de boîtes contenant des naturels serait : si toutes à partir d'un certain rang contiennent la même valeur i, alors j'ouvre toutes les boîtes à partir du rang i lui-même (en partant de la fin), sinon je les ouvre toutes à partir du rang 42 (visiblement, ceci vérifie bien la propriété demandée pour un schéma global d'ouverture : si je modifie le contenu d'une boîte non ouverte, alors effectivement j'ouvre encore exactement les mêmes boîtes ; et si on prend l'ensemble des intervalles de boîtes de k à l'infini, on voit facilement qu'on peu fabriquer un schéma de déroulement d'ouvertures comme défini ci-dessus). Pourtant, on a toujours l'impression que c'est de la triche : pour savoir si toutes les boîtes à partir d'un certain rang contenaient la valeur i, il a bien fallu que j'ouvrisse une boîte, mais je ne peux jamais prendre le risque d'ouvrir une boîte quelconque puisque si je le fais je risque d'avoir violé la contrainte. Bref, on voudrait pouvoir parler de la première boîte ouverte (ou en tout cas, des premières boîtes ouvertes), qui ne pourraient évidemment dépendre de rien du tout, puis des suivantes, etc.

Là, la définition qui s'impose, c'est celle d'un schéma bien-déroulé d'ouvertures : la définition serait la même que celle que j'ai donnée pour un schéma de déroulement d'ouvertures, mais en imposant que l'ensemble SH(u), pour chaque suite u, soit bien ordonné (en particulier, il doit avoir un plus petit élément I, et la propriété qu'on a imposée sur S fait que I doit être indépendant de u). En outre, l'intérêt d'un schéma bien-déroulé d'ouvertures est qu'on doit pouvoir le définir par induction (transfinie), l'ouverture de chaque lot de boîtes étant fait en fonction des contenus des lots précédemment ouverts. D'une certaine manière, ça montre comment le concept d'ensemble bien ordonné peut apparaître de façon assez naturelle en essayant de formaliser l'intuition qu'on peut avoir du déroulement d'un processus transfini automatique.

Je vais m'en tenir là, parce que mon poussinet en a assez de me voir réfléchir sur ces problèmes, mais si quelqu'un a des lumières sur une des questions que j'ai laissées en suspens, ces lumières seront les bienvenues.

↑Entry #1645 [older| permalink|newer] / ↑Entrée #1645 [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]