フォン・ノイマン＝ベルナイス＝ゲーデル集合論
補修号の公理より、 \forall u\,[u\in \complement A \iff \neg(u \in A)] となるクラス \complement A が存在する。しかし、 \complement A は n > 1 のとき n-組以外の元を含む。\complement_{V^n} A =\, \complement A \cap V^n =\,V^n \setminus A を用いて、この元を消去する。これはすべての n-組のクラス V^n の相対補集合であるBourbaki。すると、外延性の公理から \complement_{V^n} A は以下を満たすn-組の唯一のクラスである:
\begin{alignat}{2}
\quad&(x_1, \ldots, x_n) \in \complement_{V^n} A &&\iff \neg [(x_1, \ldots , x_n) \in A] \\
& &&\iff \neg \psi(x_1, \ldots, x_n, \vec{Y}) \\
& &&\iff \phi(x_1, \ldots, x_n, \vec{Y}).
\end{alignat}
Case 2: \phi(x_1, \ldots, x_n, \vec{Y}) = \psi_1(x_1, \ldots, x_n, \vec{Y}) \land \psi_2(x_1, \ldots, x_n, \vec{Y})のとき、 \psi_1 と \psi_2 はいずれも k 未満の個数の論理記号を含むため、帰納仮説は以下を満たすn-組のクラス A がただ一つ存在することを含意する:
\begin{align}
\quad&(x_1, \ldots , x_n) \in A_1 \iff \psi_1(x_1, \ldots, x_n, \vec{Y}). \\
&(x_1, \ldots , x_n) \in A_2 \iff \psi_2(x_1, \ldots, x_n, \vec{Y}).
\end{align}
共通部分および外延性の公理から、 A_1 \cap A_2 は以下を満たす n-組の唯一のクラスである:
\begin{alignat}{2}
\quad&(x_1, \ldots, x_n) \in A_1 \cap A_2 &&\iff (x_1, \ldots, x_n) \in A_1 \land (x_1, \ldots, x_n) \in A_2 \\
& &&\iff \psi_1(x_1, \ldots, x_n, \vec{Y}) \land \psi_2(x_1, \ldots, x_n, \vec{Y}) \\
& &&\iff  \phi(x_1, \ldots, x_n, \vec{Y}).
\end{alignat}
Case 3: \phi(x_1, \ldots, x_n, \vec{Y}) = \exists x_{n+1} \psi(x_1, \ldots, x_n, x_{n+1}, \vec{Y}) のとき、 \psi は \phi と比べると、量化子ネスト深さが 1 大きく、自由変数 x_{n+1} が多い。 \psi は k-1 個の論理記号を含むため、、帰納仮説は以下を満たすn-組のクラス A がただ一つ存在することを含意する:
\quad(x_1, \ldots, x_n, x_{n+1}) \in A \iff \psi(x_1, \ldots, x_n, x_{n+1}, \vec{Y}).
領域および外延性の公理から、 Dom(A) は以下を満たす n-組の唯一のクラスである:この証明には一部詳細部分が抜けている。\exist x\, \phi(x) が \exist x[\exist C (x \in C) \land \phi(x)] として定義されているので、ゲーデルの表記法が使われている。この論理式はクラス上で量化するため、等価な \exist x[x \in V \land \phi(x)] に置き換えなければならない。すると、証明中の \exist x_{n+1}[x_{n+1} \land \dots] の形の 3 つの論理式は \exist x_{n+1}[x_{n+1} \in V \land \dots] になり、有効な証明ができる。
\begin{alignat}{2}
\quad&(x_1, \ldots, x_n) \in Dom(A) &&\iff \exists x_{n+1}[((x_1, \ldots, x_n), x_{n+1}) \in A] \\
& &&\iff \exists x_{n+1}[(x_1, \ldots, x_n, x_{n+1}) \in A] \\
& &&\iff \exists x_{n+1}\,\psi(x_1, \ldots, x_n, x_{n+1}, \vec{Y}) \\
& &&\iff \phi(x_1, \ldots, x_n, \vec{Y}).
\end{alignat}
ゲーデルは、クラス存在定理は「メタ定理である。すなわち、システム(NBG)に関する定理であり、システム内の定理でではない…」と指摘した。  NBG 論理式の帰納によるメタ理論の中で証明されるため、クラス存在定理は NBG に関する定理である。また、その証明は、有限個の NBG 公理を持ち出す代わりに、与えられた論理式を満たすクラスを構築するためのNBG 公理の使い方を帰納的に表現する。すべての論理式に対して、こうした表現は NBG 内の存在の構成的証明に変えられる。したがって、このメタ理論で NBG のクラス存在定理の使い方を置き換えた NBG の証明を作ることができる。
再帰的なコンピュータプログラムで、与えられた論理式からクラスを簡単に構成することができる。このプログラムの定義はクラス存在定理の証明によらない。しかし、プログラムによって構成されるクラスが与えられた論理式を満たし、公理から構成されたかを確認するには、定理の証明が必要である。このプログラムのPascal形式のcase文を用いた擬似コードを以下に示す。擬似コードで書かれた再帰的プログラムは純粋数学でも用いられている。例えば、ハイネ・ボレルの被覆定理や他の解析学の定理を証明するのに用いられる。\begin{array}{l}
\mathbf{function} \;\text{Class}(\phi, \,n) \\
\quad\begin{array}{rl}
\mathbf{input}\!: \;\,&\phi \text{ is a transformed formula of the form } \phi(x_1, \ldots, x_n, Y_1, \ldots, Y_m); \\
&n \text{ specifies that a class of } n\text{-tuples is returned.} \\
\;\;\;\;\mathbf{output}\!: \;\,&\text{class } A \text{ of } n\text{-tuples satisfying } \\
&\,\forall x_1 \cdots \,\forall x_n [(x_1, \ldots , x_n) \in A \iff \phi(x_1, \ldots, x_n, Y_1, \ldots, Y_m)].
\end{array}
\\
\mathbf{begin} \\
\quad \mathbf{case} \;\phi \;\mathbf{of} \\
\qquad \begin{alignat}{2}
x_i \in x_j: \;\;&\mathbf{return} \;\,E_{i,j,n}; &&\text{// } E_{i,j,n} \;\,= \{(x_1, \dots, x_n): x_i \in x_j\} \\
x_i \in Y_k: \;\;&\mathbf{return} \;\,E_{i,Y_k,n}; &&\text{// } E_{i,Y_k,n} = \{(x_1, \dots, x_{n}): x_i \in Y_k\} \\
\neg\psi: \;\;&\mathbf{return} \;\,\complement_{V^n}\text{Class}(\psi, \,n);  &&\text{// } \complement_{V^n}\text{Class}(\psi, \,n) = V^n \setminus \text{Class}(\psi, \,n) \\
\psi_1 \land \psi_2: \;\;&\mathbf{return} \;\,\text{Class}(\psi_1, \,n) \cap \text{Class}(\psi_2, \,n);&& \\
\;\;\;\;\,\exists x_{n+1}(\psi): \;\;&\mathbf{return} \;\,Dom(\text{Class}(\psi, \,n+1));  &&\text{// } x_{n+1} \text{ is free in } \psi; \text{ Class}(\psi, \,n+1) \\
&\ &&\text{// returns a class of } (n+1)\text{-tuples}
\end{alignat} \\
\quad \mathbf{end} \\
\mathbf{end}
\end{array}
反転\phi を 例 2 の論理式とする。関数呼び出し A = Class(\phi, 1) でクラス A を作成するが、以下で \phi と比較する。クラス A の構成は、それを定義する論理式 \phi の構成を反転することがわかる。
\begin{alignat}{2}
&\phi \;&&=
\;\;\exists x_2\,(x_2 \!\in\! x_1 \land \;\;\neg\;\;\;\;\exists x_3\;(x_3 \!\in\! x_2)) \,\land \;\;\,\exists x_2\,(x_2 \!\in\! x_1 \land
\;\;\,\exists x_3\,(x_3 \!\in\! x_2 \,\land\;\;\neg\;\;\;\;\exists x_4\;(x_4 \!\in\! x_3))) \\
&A \;&&=
Dom\,(\;E_{2,1,2}\; \cap \;\complement_{V^2}\,Dom\,(\;E_{3,2,3}\;)) \,\cap\, Dom\,(\;E_{2,1,2}\;\cap \,
Dom\,(\;\,E_{3,2,3}\; \cap \;\complement_{V^3}\,Dom\,(\;E_{4,3,4}\;)))
\end{alignat}
ゲーデルはクラス存在定理を、クラスの関係(例えば Y_1 \subseteq Y_2 や単項関係 M(Y_1))、特別なクラス(例えば Ord )、演算(例えば (x_1, x_2) や x_1 \cap Y_1)を含む論理式 \phi に拡張した。 クラス存在定理を拡張するには、関係、特別なクラス、演算を定義する論理式が集合上で量化されていなければならない。すると \phi はクラス存在定理の仮説を満たす等価な論理式に変換される。
以下の定義は論理式での関係、特別なクラス、演算の定義方法を特定する。
関係 R を以下のように定義する: R(Z_1, \dots, Z_k) \iff \psi_R(Z_1, \dots, Z_k).
特別なクラス C を以下のように定義する: u \in C \iff \psi_C(u).
演算 P を以下のように定義する: u \in P(Z_1, \dots, Z_k) \iff \psi_P(u, Z_1, \dots, Z_k).
項(Term (logic))は以下のように定義される:
変数と特別なクラスは項である。
P が k 変数の演算でかつ \Gamma_1, \dots, \Gamma_k が項であるならば、 P(\Gamma_1, \dots, \Gamma_k)  は項である。
以下の変換規則は、関係、特別なクラス、演算を消去する。規則 2b, 3b, 4 をサブ論理式に適用する際は、 z_i が論理式中の他の変数と異なるように i を選ぶ。規則はサブ論理式に適用できなくなるまで適用を繰り返す。\, \Gamma_1, \dots, \Gamma_k, \Gamma, \Delta は項を表すものとする。
関係 R(Z_1, \dots, Z_k) を定義論理式 \psi_R(Z_1, \dots, Z_k) で置き換える。
\psi_C(u) を特別なクラス C の定義論理式とする。\Delta \in C を \psi_C(\Delta) で置き換える。
\psi_P(u, Z_1, \dots, Z_k) を演算 P(Z_1, \dots, Z_k) の定義論理式とする。\Delta \in P(\Gamma_1, \dots, \Gamma_k) を \psi_P(\Delta, \Gamma_1, \dots, \Gamma_k) で置き換える。
外延性の公理を用いて、 \Delta = \Gamma を \forall z_i(z_i \in \Delta \iff z_i \in \Gamma) に変換する。
(y, z) \land y \in A \land z \in B]\} を定義した。これは外延性の公理からただ一つ定まる。彼は A \times B を使って V^n を定義した。M3 で得られるクラスと V^n の共通部分を取って、与えられた論理式を満足するn-組の唯一のクラスを生成することで、定理 M3 から M4 が得られる。ゲーデルのアプローチ、特にM3 で A \times B を定義することで、ベルナイスの強い形の V の直積公理が不要になる。
クラス存在定理に必要だった対の公理と正則性公理は、上記の通り与えられている。NBG はほかに 4 つの集合公理を含む。このうち 3 つは集合に適用されるクラス演算として扱われる。
定義.thin以下が成り立てば F は関数であるF \subseteq V^2 \land \forall x\, \forall y\, \forall z\, [(x,y) \in F \,\land\, (x,z) \in F \implies y = z].集合論において、関数を定義する際に始域と終域を特定する必要はない(関数(集合論)を参照)。NBG の関数の定義では、 ZFC の定義のうち、順序類の集合を順序対のクラスに一般化したものになる。
ZFC における像、和集合、冪集合といった集合演算の定義もクラス演算に一般化される。 F によるクラス A の像はF[A] = \{y: \exists x(x \in A \,\land\, (x, y) \in F)\} である。 この定義は A \subseteq Dom(F) を必要としない。クラス A の和は \cup A = \{x: \exists y(x \in y\, \,\land\, y \in A)\} となる。クラス A の冪集合は \mathcal{P}(A) = \{x: x \subseteq A\} となる。クラス存在定理の拡張版はこれらのクラスの存在を含意する。置換、和集合、冪集合の各公理は、これらの操作が集合に適用したときに集合となることを含意する。
NBGの置換公理置換公理.thin F が関数で a が集合であるならば、  F による a の像 F[a] は集合である。
\forall F \,\forall a \,[F \text{ is a function}\implies \exists b \,\forall y\,(y \in b \iff \exists x(x \in a \,\land\, (x, y) \in F))].
F[A] の定義に必要条件 A \subseteq Dom(F) がなければ、以下の証明に用いる強い形の置換公理となる。
\{(x_1, x_2): x_1 \in B \land x_2 = x_1\}。I{\restriction_B} による a の像は B であるので、置換公理から B は集合であることが導かれる。a \subseteq Dom(I{\restriction_B}). ではなく Dom(I{\restriction_B}) = B \subseteq a であるため、この証明は a \subseteq Dom(F) を用いない像の定義に依存する。
和集合の公理.thin a が集合であるならば、 \cup a を含む集合が存在する。\forall a\, \exists b\, \forall x\,[\,\exists y(x \in y\, \,\land\, y \in a) \implies x \in b\,].
冪集合公理.thin a が集合であるならば、 \mathcal{P}(a) を含む集合が存在する。
\forall a\, \exists b\, \forall x\, (x \subseteq a \implies x \in b).ゲーデルはベルナイスの和集合・冪集合公理(和集合・冪集合の存在を主張する)を、和集合を含む集合と、冪集合を含む集合の存在を主張する上記の公理に弱めた。 ベルナイスはゲーデルのあとに自身の公理系を発表したが、その内容は1931年にゲーデルに送っていたものである。
a が集合であるならば、 \cup a と \mathcal{P}(a) は集合である。
無限公理.thin a のすべての元 x に対して、 x が y の真部分集合である a の元 y が存在するような、空でない集合 a が存在する。
無限公理と置換公理から空集合の存在が導かれる。クラス存在公理に関する議論において、空クラス \empty の存在は示されている。ここで \empty が集合であることを示そう。関数 F = \empty と、無限公理で与えられる集合 a を仮定する。置換公理より、 F による a の像は、 \empty と等しい集合である。
NBG の無限公理は ZFC の無限公理から含意される: \,\exists a\, [\empty \in a \,\land\, \forall x(x \in a \implies x \cup \{x\} \in a)]。 x \subset x \cup \{x\} であるため、 ZFC 公理の論理積の第1項、つまり \empty \in a が NBG 公理の論理積の第1項を含意する。ZFC 公理の論理積の第2項、すなわち \forall x(x \in a \implies x \cup \{x\} \in a) が NBG 公理の論理積の第2項を含意する。  NBG の無限公理から ZFC の無限公理を証明するには、ほかの NBG 公理が必要である(弱い選択公理を参照)。ZFCの公理は空集合の存在が必要であるため、空集合が不要である点がNBGの公理の長所である。メンデルソンの公理系はZFCの無限公理を用いており、空集合の公理も含む。
クラスの概念により、NBG では ZFC より強い選択公理が許容される。 選択関数は、空でない集合の集合 s 上の関数 f であり、 x \in s で f(x) \in x を満たすものとして定義される。ZFC の選択公理は、すべての空でない集合の集合に対する選択関数が存在することを述べる。 大域選択関数はすべての空でない集合のクラス上で定義された関数 G であり、すべての空でない集合 x に対して G(x) \in x を満たすものとして定義される。大域選択公理は大域選択関数が存在することを述べる。この公理は ZFC の選択公理を含意する。なぜならば空でない集合のすべての集合 s に対して、 G\vert_s ( G の s への制限)は s の選択関数となるからである。1964年、ウィリアム・B・イーストン (William B. Easton) は強制法を使い、選択公理と NBG の大域選択公理以外のすべての公理を満たすモデルを構築することによって、大域選択公理が選択公理よりも強いことを証明した。 ZFC の選択公理がどの集合も整列可能であることと等価であるのと同様に、大域選択公理はどのクラスも整列可能であることと等価である。整礎な V が大域選択公理を含意することはサイズ制限公理を参照。大域選択公理が任意のクラスの整列関係を含意することは を参照。
大域選択公理.thin すべての空でない集合から 1 つずつ元を選択できる関数が存在する。
\exists G\,[G \text{ is a function}\, \land \forall x(x \ne \empty \implies \exists y(y \in x \land (x,y) \in G))].
フォン・ノイマンは自身の公理系に関する入門的な論文を1925年に発行した。1928年、彼は公理系の詳細な説明を与えた。 フォン・ノイマンの公理系は、関数と引数という原始概念の 2 領域に基づく。これらの領域は重複する—両方の領域に属するものは引数関数と呼ばれる。関数が NBG におけるクラスに対応し、引数関数が集合に対応する。フォン・ノイマンの原始的演算は、a(x) ではなく [a, x] で表される関数適用である。ここで a は関数、 x は引数を表す。この演算から引数が生成される。フォン・ノイマンはクラスと集合を、A と B の2値の引数関数を使って定義した。また、 [a, x] ≠ A ならば x ∈ a であると定義した。
集合論におけるフォン・ノイマンの仕事はゲオルグ・カントールの論文やエルンスト・ツェルメロの1908年のツェルメロ集合論、アドルフ・フレンケルとトアルフ・スコーレムによって独立に発表された1922年のツェルメロ集合論への批評によって広められた。 フレンケルとスコーレムはいずれも、ツェルメロの公理は集合 {Z0, Z1, Z2, ...} の存在を証明できないと指摘していた。ここで、 Z0 は自然数の集合であり、 Zn+1 は Zn の冪集合である。そして彼らはそのような集合の存在を保証する置換公理を導入した。1917年、ディミトリー・ミリマノフは濃度の等価性に基づく形式の置換公理を発表した。 しかし、彼らはこの公理を適用しようとは思わなかった:フレンケルは「置換公理は『一般集合論』には強すぎる」とする一方、「スコーレムだけは置換公理を『導入できうる』と書いていた」と述べている。
フォン・ノイマンはツェルメロ集合論の問題点に対処し、解決策を与えた:
順序数の理論
問題点:ツェルメロ集合論に置換公理が不足しているため、カントールの順序数の理論をツェルメロ集合論内で展開できない。1928年、フォン・ノイマンは以下のように述べた。「私の理論に密接に関係する順序数の取り扱いをツェルメロは1916年に知っており、私は個人的なやり取りで教わった。言うまでもなく、各整列集合に対してそれに類似の順序数が存在するという基礎的な定理は、置換公理が知られていなかったので厳密に証明できなかった。」
解決策: フォン・ノイマンは ∈-で整列可能な集合を用いて順序数を定義することで、カントールの理論を復活させ、. フォン・ノイマンの定義は整列集合の理論でも使われている。のちに、彼の定義は現代的なものに簡略化された。つまり、順序数を ∈ で順序付けられた推移的集合とするものである。 そしてキーとなる定理、すなわちすべての順序付け可能な集合が順序数について順序同型であるような順序数に関する定理を、置換公理を用いて証明した。ordinaltheorem フレンケルとスコーレムとは対照的に、フォン・ノイマンは集合論における置換公理の重要性を強調していた:「実際、この公理なしに順序数の理論は不可能だと思う」
集合としては大きすぎるクラスを特定する基準
問題点:ツェルメロはそのような基準を示していなかった。ツェルメロ集合論では、パラドックスを引き起こす大きなクラスが排除されていたが、フレンケルとスコーレムが指摘したような、多くの集合が除外されていた。累積階層(cumulative hierarchichy)の導入後、フォン・ノイマンはツェルメロの公理が非可算無限個の継承可算集合を含む順序数 α ≥ ω + ω の存在を証明できないことを示していたかもしれない。この事実はスコーレムの Vω+ω がツェルメロの公理を満たすという結果と、 α ∈ Vβ が α < βを含意するという結果から従う。
解決策:フォン・ノイマンは基準を導入した:クラスが集合として大きすぎるのは、クラスからすべての集合のクラス V への全射が存在するときで、かつそのときに限る。フォン・ノイマンはこのような大きなクラスを元に持つ任意のクラスを許可しないことで、集合論的パラドックスを回避できることを知っていた。この制限と彼の基準を組み合わせることで、サイズ制限公理を得た: クラス C はどのクラスの元でもないのは、 C から V への全射が存在するとき、またそのときに限る。フォン・ノイマンは、自身の公理を等価な関数の形で述べている。
有限公理化
問題点:ツェルメロは彼の分出公理において、「定値命題関数」の不正確な概念を用いていた。
解決策:スコーレムはのちに ZFC で用いられる分離の公理型を導入し、フレンケルは等価な解決策を用いた。 しかし、ツェルメロは「彼自身の観点では、集合論の土台となる自然数の概念をも暗に巻き込む部分があるため」いずれの方法も拒否した。スコーレムのアプローチでは暗黙に自然数を使っている。なぜならば公理型の論理式が数学的帰納法を自然数に拡張した構造的帰納法によって構成されているからである。 フォン・ノイマンは「定値命題関数」の概念を有限個の公理から構築できる関数で定式化することにより、公理型を除外した。これによって、フォン・ノイマンの理論は有限公理化できるようになった。 1961年、リチャード・モンタギューは ZFC が有限公理化できないことを証明した。
正則性公理
問題点:ツェルメロ集合論は空集合と無限集合から議論を始め、対の公理の反復、和集合、冪集合、分出公理、選択公理によって新たな集合を得る。しかし、この集合論では集合をこれらの形に制限していない。例えば、集合 x が x ∈ x を満たすような、整礎でない集合の存在が許容される。ミリマノフは1917年に整楚集合を定義した。
解決策:フレンケルはこうした集合を除外するために公理を導入した。フォン・ノイマンはフレンケルの公理を分析し、「厳密な定式化」がなされていないと大雑把に指摘した:「集合に加えて ... その存在は公理に対して絶対必要になる、これ以上に集合はなく。」 フォン・ノイマンは正則性公理を整楚でない集合を除外する方法として提案したが、ツェルメロ公理系には取り入れられなかった。1930年になって初めて、ツェルメロは正則性公理を取り入れた公理系を発表した。アキヒロ・カナモリはベルナイスが1929〜1930年に自身の公理系に基づいて講義を行ったことと、「…彼とツェルメロはほぼ同時期に基礎(正則性)を組み込む考えに至っていたに違いない」と指摘している。しかし、ベルナイスは1941年まで正則性を自身の公理系に組み込んだものは発表しなかった。