theorem
Chapter8.Schroder_Bernstein_lemma
{X : Type}
{A B C : Set X}
(hAB : A ⊆ B)
(hBC : B ⊆ C)
(f : ↑C ↪ ↑A)
:
have D := fun (t : ℕ) =>
Nat.rec ((⇑f.image ∘ ⇑(B.embeddingOfSubset C hBC).image) {x : ↑B | ↑x ∉ A})
(fun (x : ℕ) => ⇑f.image ∘ ⇑(B.embeddingOfSubset C hBC).image ∘ ⇑(A.embeddingOfSubset B hAB).image) t;
Set.univ.PairwiseDisjoint D ∧ have g := fun (x : ↑A) => if h : x ∈ ⋃ (n : ℕ), D n ∧ ∃ (y : ↑B), f ⟨↑y, ⋯⟩ = x then ⋯.choose else ⟨↑x, ⋯⟩;
Function.Bijective g
Exercise 8.3.2. Some subtle type changes due to how sets are implemented in Mathlib. Also we shift the sequence D by one so that we can work in Set A rather than Set B.
@[reducible, inline]
Equations
- Chapter8.LeCard X Y = ∃ (f : X → Y), Function.Injective f
Instances For
@[reducible, inline]
Equations
- Chapter8.LtCard X Y = (Chapter8.LeCard X Y ∧ ¬Chapter8.EqualCard X Y)
Instances For
@[reducible, inline]
Equations
- Chapter8.CardOrder = { le := Chapter8.LeCard, lt := Chapter8.LtCard, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }