设 f:A→B、g:B→A 都是单射。把 A 分成两半,一半用 f、一半用 g−1,拼出一个双射。
① 造一串集合。 令
A0:=A∖g(B),An+1:=g(f(An))(直观:A0 是「B 管不到」的那部分,剩下的在 f 与 g 之间来回倒。)令
A∗:=n=0⋃∞An,A♯:=A∖A∗② 定义 h:A→B。
h(a):={f(a),g−1(a),a∈A∗a∈A♯要说明:a∈A♯ 时 a∈g(B),所以 g−1(a) 有意义。事实上若 a∈/g(B) 则 a∈A0⊆A∗,与 a∈A♯ 矛盾。
③ h 是单射。 分三种情况:同在 A∗ 上由 f 单射;同在 A♯ 上由 g 单射;一边一个时,h(A∗)=f(A∗) 而
f(A∗)=n⋃f(An)=n⋃g−1(An+1)⊆g−1(A∗∖A0)与 h(A♯)=g−1(A♯) 不相交 —— 因为 A♯∩(A∗∖A0)=∅。
④ h 是满射。 若 b∈B:令 a=g(b)∈A。若 a∈A♯,则 h(a)=g−1(a)=b;若 a∈A∗,则 a∈An 对某个 n≥1(因为 a=g(b) 落在 g(B) 里),于是 a=g(f(a′)) 对某个 a′∈An−1⊆A∗,由 g 单射得 f(a′)=b,即 h(a′)=b。
综上 h 是双射,故 ∣A∣=∣B∣。■