Primzahlen und |ℕ × ℕ| = |ℕ|
Primzahlen liefern Zerlegungen von ℕ in unendlich viele unendliche Teile, und hieraus erhält man weitere Beweise von |ℕ × ℕ| = |ℕ|. Für n ∈ ℕ sei
pn = „die (n + 1)-te Primzahl“,
also
p0 = 2, p1 = 3, p2 = 5, p3 = 7, p4 = 11, …
Dann sind für n ∈ ℕ die Mengen Pn = { pk + 1n | k ∈ ℕ } paarweise disjunkte unendliche Teilmengen von ℕ [Eindeutigkeit der Primfaktorzerlegung!]. Setzen wir
f(n, k) = pk + 1n für n, k ∈ ℕ,
so ist f : ℕ × ℕ → ℕ injektiv, also |ℕ × ℕ| ≤ |ℕ|, und damit nach Cantor-Bernstein |ℕ × ℕ| = |ℕ| (denn i : ℕ → ℕ × ℕ mit i(n) = (n, 0) für n ∈ ℕ ist injektiv, also |ℕ| ≤ |ℕ × ℕ|).
Ebenso ist die Abbildung g : ℕ × ℕ → ℕ injektiv mit
g(a, b) = pa + 10 pb + 11 = 2a + 1 3b + 1 für a, b ∈ ℕ.
Analog erhält man für beliebige n ≥ 2 injektive Funktionen gn : ℕn + 1 → ℕ. Wir setzen
gn(a0, … , an) = pa0 + 10 … pan + 1n für a0, … , an ∈ ℕ.
Bijektionen g : ℕn → ℕ werden auch als Kodierungen bezeichnet. Die natürliche Zahl g(a1, …, an) ist dann der Kode für das „Wort“ (a1, …, an), und die Umkehrfunktion liefert die Dekodierung. Es gibt auch konkrete Kodierungen, die auf Worten variabler Länge operieren (siehe hierzu die Übung unten). In der Logik spielen sie eine große Rolle, da man mit ihrer Hilfe innerhalb der Zahlentheorie über Zeichenketten, und damit in der Zahlentheorie über eine formalisierte Mathematik reden kann.