@@ -64,7 +64,7 @@ theorem infinite_pigeonhole_set {β α : Type u} {s : Set β} (f : s → α) (θ
6464 rfl
6565 rintro x ⟨_, hx'⟩; exact hx'
6666
67- /-- A function whose codomain 's cardinality is infinite but strictly smaller than its domain's
67+ /-- A function whose domain 's cardinality is infinite but strictly greater than its domain's
6868has a fiber with cardinality strictly great than the codomain. -/
6969theorem infinite_pigeonhole_card_lt {β α : Type u} (f : β → α) (h : #α < #β) (hβ : ℵ₀ ≤ #β) :
7070 ∃ a : α, #α < #(f ⁻¹' {a}) := by
@@ -75,7 +75,7 @@ theorem infinite_pigeonhole_card_lt {β α : Type u} (f : β → α) (h : #α <
7575 · exact infinite_pigeonhole_card f (succ #α) (succ_le_of_lt h) (hα.trans (le_succ _))
7676 ((lt_succ _).trans_le (isRegular_succ hα).2 .ge)
7777
78- /-- A function whose codomain 's cardinality is infinite but strictly smaller than its domain's
78+ /-- A function whose domain 's cardinality is infinite but strictly greater than its domain's
7979has an infinite fiber. -/
8080theorem exists_infinite_fiber {β α : Type u} (f : β → α) (h : #α < #β) (hβ : Infinite β) :
8181 ∃ a : α, Infinite (f ⁻¹' {a}) := by
@@ -85,6 +85,15 @@ theorem exists_infinite_fiber {β α : Type u} (f : β → α) (h : #α < #β) (
8585 · obtain ⟨a, ha⟩ := infinite_pigeonhole_card_lt f h hβ
8686 exact ⟨a, hα.trans ha.le⟩
8787
88+ /-- A weaker version of `exists_infinite_fiber` that requires codomain to be infinite. -/
89+ theorem exists_infinite_fiber' {β α : Type u} (f : β → α) (h : #α < #β) (hα : Infinite α) :
90+ ∃ a : α, Infinite (f ⁻¹' {a}) :=
91+ exists_infinite_fiber f h (by
92+ rw [Cardinal.infinite_iff] at hα ⊢
93+ exact hα.trans h.le)
94+
95+ /-- A function whose domain's cardinality is uncountable but strictly greater than its domain's
96+ has an uncountable fiber. -/
8897theorem exists_uncountable_fiber {β α : Type u} (f : β → α) (h : #α < #β) (hβ : Uncountable β) :
8998 ∃ a : α, Uncountable (f ⁻¹' {a}) := by
9099 simp_rw [← Cardinal.aleph0_lt_mk_iff, ← Order.succ_le_iff, succ_aleph0] at hβ ⊢
@@ -99,13 +108,8 @@ theorem exists_uncountable_fiber {β α : Type u} (f : β → α) (h : #α < #β
99108then the cardinality of the collection of those finite sets
100109must be at least the cardinality of `β`. -/
101110-- TODO: write `Set.univ` instead of `⊤` and rename the theorem accordingly.
102- theorem le_range_of_union_finset_eq_top {α β : Type *} [Infinite β] (f : α → Finset β)
103- (w : ⋃ a, (f a : Set β) = ⊤) : #β ≤ #(range f) := by
104- have k : _root_.Infinite (range f) := by
105- rw [infinite_coe_iff]
106- apply mt (union_finset_finite_of_range_finite f)
107- rw [w]
108- exact infinite_univ
111+ theorem le_range_of_union_finset_eq_univ {α β : Type *} [Infinite β] (f : α → Finset β)
112+ (w : ⋃ a, (f a : Set β) = Set.univ) : #β ≤ #(range f) := by
109113 by_contra h
110114 simp only [not_le] at h
111115 let u : ∀ b, ∃ a, b ∈ f a := fun b => by simpa using (w.ge :) (Set.mem_univ b)
@@ -115,7 +119,10 @@ theorem le_range_of_union_finset_eq_top {α β : Type*} [Infinite β] (f : α
115119 have m : f (u p).choose = f a := by simpa [u'] using m
116120 rw [← m]
117121 apply fun b => (u b).choose_spec
118- obtain ⟨⟨-, ⟨a, rfl⟩⟩, p⟩ := exists_infinite_fiber u' h k
122+ obtain ⟨⟨-, ⟨a, rfl⟩⟩, p⟩ := exists_infinite_fiber u' h ( by infer_instance)
119123 exact (@Infinite.of_injective _ _ p (inclusion (v' a)) (inclusion_injective _)).false
120124
125+ @ [deprecated (since := "2026-01-17" )] alias le_range_of_union_finset_eq_top :=
126+ le_range_of_union_finset_eq_univ
127+
121128end Cardinal
0 commit comments