La notion d'ensemble est centrale en mathématique. Zermelo propose en 1908 une théorie des ensembles. Nous nous proposons d'en rediscuter la génèse, de reformuler les différentes étapes et de développer d'éventuelles alternatives.
Zermelo propose décrire axiomatiquement le comportement des ensembles sans pour autant les construire. Et pour éviter les incohérences dues à l'absence de procédé de construction de tous les ensembles, Zermelo propose de n'utiliser que le langage logique du premier ordre, c'est à dire le langage formel du calcul des prédicats.
La théorie des ensembles décrit les propriétés de ce prédicat binaire `"∈"` et commence par 4 premiers axiomes, et par un shéma d'axiomes appelé « Schéma d'axiomes de séparation » :
Extensionalité : Deux ensembles ayant les mêmes éléments sont égaux. `AA A AA B,(AAx, x"∈"A<=> x "∈"B) <=> A"="B`
Paire : A partir de deux éléments quelconques, il existe un ensemble qui contient exactement ces deux éléments. `AAaAAbEEpAAx, x "∈"p<=> (x"="a "ou" x"="b)`
Réunion : Pour tout ensemble `E`, il existe un ensemble contenant tous les éléments de tous les ensembles appartenant à `E`. `AAE EE R AAx, x"∈"R<=> (EE p, x"∈"p "et" p"∈"E")`
Ensemble des parties : Pour tout ensemble `E`, il existe un ensemble de toutes les parties de `E`. `AAE EEP AAx, x"∈"P<=> (AAy, y"∈"x => y"∈"P)`
Schéma d'axiomes de séparation : Pour toute formule unaire `varphi(".")`, et pour tout ensemble `E`, il existe un ensemble qui contient exactement les éléments appartenants à `E` et satisfaisant `varphi"(.)"`. `AAE EE S AAx, x"∈"S<=> (x"∈"E "et" varphi(x))`
À ce stade, le langage de la théorie ne comprend qu'un seul prédicat binaire `"∈"` car on ne mentionne pas le prédicat d'égalité qui est spécifique à la logique du premier ordre.
Pour compléter la présentation, il convient de décrire toutes les formules qui peuvent être utilisées dans le shéma d'axiomes. On le fait en présentant une grammaire qui engendre toutes les formules :
Grammaire des formules : `sfQ ← {AA, EE}` # Quantificateurs `sfV← {x_1,x_2,x_3,...}` # Variables `sfL← {"⊤", sfV"="sfV, sfV"∈"sfV}` # Littéraux affirmatifs `sfF← {sfL,"¬"sfF, sfQsfV&sfF, sfF"⇔" sfF, sfF"⇒" sfF, sfF"∧" sfF, sfF"∨"sfF}` # Formules
`sfF` représente l'ensemble des formules, mais pas dans la théorie des ensembles de Zermelo, dans une autre théorie où les ensembles sont complètement construit par des grammaires. On note une formule quelconque de `sfF` ayant par exemple deux variables libres (c-à-d non quantifiées) par `varphi(x_1,x_2)`. Cette nomination corespond à la définition d'un prédicat définissable. C'est pourquoi `sfF` représente l'ensemble des prédicats définissables.
On a utilisé le perluéte `&` dans la grammaire pour désigner la virgule dans les formules. Ainsi le terme `sfQsfV&sfF` peut s'instentié par exemple en la formule `EEx,x"∈"x`. Cette virgule n'est à ce stade qu'une décoration pour augmenter la lisibilité.
C'est une grammaire qui construit des emboitements. Les parenthèses sont donc nécessaires autours de chaque composition. Mais la plus part d'entre-elles sont retirées à l'écrit grâce aux règles de priorité syntaxique qui devront donc être déclarées.
Les variables peuvent toujours être renommées de façon distincte. Cela ne change pas le sense logique des formules.
Les variables non-quantifiées sont dites libres et constituent des variables muettes servant de variables d'entrée. Leur présence dans une formule indique que c'est une fonction propositionnelle. Par exemple, la formule `AAa, varphi(a,b)` est une fonction propositionnelle que l'on peut noter fonctionnellement par : `x |-> AAa, varphi(a,x)` et qui correspond à la définition d'un prédicat `varphi(x)`
Ainsi, une formule est soit une proposition écrite dans le langage `{"∈"}` du premier ordre c'est à dire un prédicat définissable zéro-aire, ou soit une fonction propositionnelle à une ou plusieurs variables écrite dans le langage `{"∈"}` du premier ordre c'est à dire un prédicat définissable à une ou plusieurs variables.
Chaque quantification crée un espace de noms contenant le nom d'une nouvelle variable, et qui couvre la formule placée en argument de la quantification. Cet espace de noms peut venir masquer le nom d'une variable provenant de l'espace de nom de la formule parente ou d'une formule ascendante. Cette propriété est propre aux langages algébriques dits déclaratifs.
Lorsque plusieurs quantifications ont lieu d'affilée et peuvent se regrouper pour s'appliquer sur une seule formule, on omet la virgule séparateur, faisant que par exemple `AAx,EEy, x "∈" y` s'écrira `AAxEEy, x "∈" y`. Ainsi dans la formule `AAxEEy,varphi(x,y)`, les quantificateurs crée un espace de noms contenant les noms de variable `x` et `y` qui couvre la formule `varphi(x,y)`.
Autre simplification, on remplace `"¬"⊤` par `⊥`. On désigne ainsi, la proposition tautologique par le symbole `"⊤"` qui ressemble à la première lettre de Tautologie, et qui évoque le ciel, la plus haute valeur logique, le vrai. Tandis que sa négation est représentée par le symbole `"⊥"` qui évoque le sol, la plus basse valeur logique, le faux.
Ce choix de grammaire et de simplification d'écriture appelé sucre syntaxique, correspond à un compromis équilibré entre lisibilité et simplicité du formalisme.
Pour parfaire la présentation, il faut définir ce qu'est une démonstration formelle en logique des prédicats. Il faut décrire le langage des démonstrations. C'est l'objet de la discussion Logique du premier ordre.
Zermelo pose ici les premiers axiomes dans la logique du premier ordre, d'une théorie des ensembles, qui ouvre de multiple voix de développements et nous amène à de nombreuses interrogations.
Les premier axiomes étant posées, on remarque que la logique étant du premier ordre, il ne peut y avoir qu'un seul type d'élément, et que cet élément est donc nécessairement un ensemble. Ce n'est pas choquant en soit, car qu'est-ce qui différencie un élément d'un autre si ce n'est ses composantes.... parcequ'il est composé différemment par des sous-éléments. On pourrait faire une analogie avec la physique des particules où par exemple, un neutron se caractérise par le fait d'être composé de quarks qui le définissent.
Néanmoins, la construction d'une donnée par le choix d'éléments se fait sans perte d'information par la constitution d'une liste d'éléments et non d'un ensemble d'éléments, parceque nous ne savons pas faire plusieurs choix en même temps.... Mais, il s'agit là d'un biais ontologique. Soit les choix sont fait en même temps... et c'est un ensemble. Soit les choix sont fait les un après les autres... et c'est une liste.
La logique du premier ordre ne manipule qu'un seul type d'élément. Cela signifit que le prédicat d'égalité peut s'appliquer à chacun d'eux, et qu'il est donc toujours possible de supposer l'égalité entre deux éléments quelconques. Dans le cadre de sa théorie, Zermelo désigne le type des éléments vérifiants sa théorie des ensembles, par la lettre `ccB` qui représente ainsi intuitivement le domaine de tous les ensembles sans être lui-même un ensemble.
Considérons une théorie des ensembles alternatives. Si nous voulons faire cotoyer les deux théories des ensembles, il nous faut distinguer les éléments de l'une, des éléments de l'autre, par des types distincts `ccB_1` et `ccB_2`, qui doivent être refondu en un seul type. Chaque élément possède un type `ccB_1` s'il est présent dans la première théorie, et possède un type `ccB_2` s'il est présent dans la seconde théorie. Et donc, si par supposition, ils sont supposés égaux, il doivent alors pouvoir posséder les deux types à la fois. Pour permettre cela, il faut poser au départ une typologie non exclusive. Cela se fait en posant deux prédicats unaires `ccB_1(".")`, `ccB_2(".")` désignant les types possibles. Ainsi un élément `x` peut avoir les deux types en supposant la propriété `ccB_1(x) "et" ccB_2(x)`.
Etudier la théorie des ensembles de Zermelo consiste d'abords à étudier le calcul des prédicats, puis à l'étendre à la logique du premier ordre en considérant des théories pouvant contenir une énumération d'axiomes (le shéma d'axiomes de séparation par exemple), puis à constater que la négation d'une théorie n'est pas nécessairement une théorie c'est à dire n'est pas nécessairement axiomatisable.
Se pose alors la première question « Qu'est-ce qu'un prédicat » : Un prédicat nullaire est une valeur booléenne à laquelle on a donné un nom, formant ainsi une variable booléenne. Un tel prédicat `P` est définissable par l'une ou l'autre formule : `P <=>"⊤"` ou `P <=>"⊥"`. Un prédicat unaire `P(".")` est une fonction booléenne unaire. C'est une fonction qui associe à tout élément, une valeur booléenne. Et il y a trois cas à considérer :
Ainsi la qualité d'être définissable dans la logique du premier ordre est plus étroite que celle d'étre simplement calculable, car la calculabilité équivaut à une définissabilité dans une logique d'ordre superieur.
Se pose alors la seconde question « Qu'est-ce qu'un opérateur » : Un opérateur nullaire est un élément auquel on donne un nom. Un tel élément `e` est définissable s'il existe une proposition de la forme :
`EE!x, varphi(x)`
Où `varphi(".")` est une formule unaire. Et cela signifit exactement :
`(EEx, varphi(x)) "et" (AAxAAy, varphi(x) "et" varphi(y) => x"="y)`
Si la proposition est valide alors l'élément existant est parfaitement défini, et peut être désigné par un nouveau nom par exemple `e` en procédant à la définition suivante :
`e = (x "|" varphi(x))`
`e` est un élément définissable qui peut donc être ajouté au langage sans changer le sens de la théorie. Notez que si on remplace la formule unaire par une théorie unaire (contenant une énumération de formules unaires) alors `e` n'est plus définissable en logique du premier ordres, mais il est calculable.
---- 7 décembre 2025 ----
Et si on suprime l'unicité, cela nous oblige à choisir un élément au hasard et donc à enrichire entropiquement la théorie par ce choix. Cette dernière possibilité correspond à une extension élémentaire, et s'avère sémantiquement exacte si on admet l'axiome du choix (D'un ensemble infini d'ensembles non vides, on peut toujours choisir un ensemble qui comprend un élément dans chaque ensemble non-vide)
---- 7 décembre 2025 ----
L'opérateur définissable zéro-aire est un élément désigné par une formule de la forme `EE!x, varphi(x)`. L'opérateur indéfinissable zéro-aire est un élément désigné par une théorie non triviale de la forme `EE!x, Psi(x)`, où `Psi(".")` est une conjonction infini de formule unaire.