Schröder–Bernstein Theorem
Statement
If there exist injections and , then and are in bijection:
This allows us to prove two sets have the same cardinality without exhibiting the bijection directly.
Visualization
Explicit bijection constructed from the two injections and .
ℕ → ℤ (the explicit bijection h)
0 → 0
1 → 1
2 → -1
3 → 2
4 → -2
5 → 3
6 → -3
…
Pattern: h(2k) = k (k ≥ 0)
h(2k+1) = -(k+1)
The Schröder–Bernstein machinery builds by deciding for each element whether it falls in a "chain" traced back through to a point with no preimage under , or in a cycle. In this example, the bijection comes out cleanly as the interleaving pattern above.
Proof Sketch
- For , define its ancestry chain by applying , then , then , and so on as long as possible.
- Call a -origin if its chain terminates (reaches a point with no -preimage in ).
- Define: if is a -origin; otherwise .
- Verify is a well-defined bijection. Injectivity and surjectivity follow from the chain analysis.
Connections
The theorem is the cardinality analogue of antisymmetryHeine–Borel TheoremIn ℝⁿ, a subset is compact if and only if it is closed and boundedRead more → in orders. It underlies the fact that cardinals are totally ordered (given injections in both directions, the sets are equinumerous). Compare with Cantor's TheoremCantor's TheoremEvery set is strictly smaller than its power set: |X| < |2^X| for any set X.Read more →, which shows strict inequality when no surjection exists.
Lean4 Proof
import Mathlib.SetTheory.Cardinal.SchroederBernstein
/-- Schröder–Bernstein: injections in both directions yield a bijection.
Mathlib: `schroeder_bernstein`. -/
theorem schroder_bernstein_theorem {α β : Type*}
{f : α → β} {g : β → α}
(hf : Function.Injective f) (hg : Function.Injective g) :
∃ h : α → β, Function.Bijective h :=
schroeder_bernstein hf hg