Skip to content

Commit 44d96dd

Browse files
committed
add
1 parent 92ad2ff commit 44d96dd

3 files changed

Lines changed: 19 additions & 12 deletions

File tree

Mathlib/LinearAlgebra/Basis/Cardinality.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ theorem infinite_basis_le_maximal_linearIndependent' {ι : Type w} (b : Basis ι
116116
Cardinal.lift.{w'} #ι ≤ Cardinal.lift.{w} #κ := by
117117
let Φ := fun k : κ => (b.repr (v k)).support
118118
have w₁ : #ι ≤ #(Set.range Φ) := by
119-
apply Cardinal.le_range_of_union_finset_eq_top
119+
apply Cardinal.le_range_of_union_finset_eq_univ
120120
exact union_support_maximal_linearIndependent_eq_range_basis b v i m
121121
have w₂ : Cardinal.lift.{w'} #(Set.range Φ) ≤ Cardinal.lift.{w} #κ := Cardinal.mk_range_le_lift
122122
exact (Cardinal.lift_le.mpr w₁).trans w₂

Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ theorem linearIndependent_le_infinite_basis {ι : Type w} (b : Basis ι R M) [In
247247
by_contra h
248248
rw [not_le, ← Cardinal.mk_finset_of_infinite ι] at h
249249
let Φ := fun k : κ => (b.repr (v k)).support
250-
obtain ⟨s, w : Infinite ↑(Φ ⁻¹' {s})⟩ := Cardinal.exists_infinite_fiber Φ h (by infer_instance)
250+
obtain ⟨s, w : Infinite ↑(Φ ⁻¹' {s})⟩ := Cardinal.exists_infinite_fiber' Φ h (by infer_instance)
251251
let v' := fun k : Φ ⁻¹' {s} => v k
252252
have i' : LinearIndependent R v' := i.comp _ Subtype.val_injective
253253
have w' : Finite (Φ ⁻¹' {s}) := by

Mathlib/SetTheory/Cardinal/Pigeonhole.lean

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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
6868
has a fiber with cardinality strictly great than the codomain. -/
6969
theorem 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
7979
has an infinite fiber. -/
8080
theorem 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. -/
8897
theorem 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 : #α < #β
99108
then the cardinality of the collection of those finite sets
100109
must 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+
121128
end Cardinal

0 commit comments

Comments
 (0)