Zulip Chat Archive
Stream: Is there code for X?
Topic: infinite pigeonhole
Scott Morrison (Jun 03 2021 at 00:43):
I would like the following infinite pigeonhole principle:
import set_theory.cofinality
example {α β : Type*} (w : cardinal.mk β < cardinal.mk α) (w' : cardinal.omega ≤ cardinal.mk β)
(f : α → β) : ∃ b : β, set.infinite (f ⁻¹' {b}) :=
sorry
The only infinite pigeonhole principle I see in set_theory.cofinality
(e.g. src#ordinal.infinite_pigeonhole) is ... more complicated! Is there an easy way to get this from that?
Floris van Doorn (Jun 03 2021 at 01:14):
import set_theory.cofinality
open cardinal
lemma foo {α β : Type*} (w : mk β < mk α) (w' : omega ≤ mk β)
(f : α → β) : ∃ b : β, mk β < mk (f ⁻¹' {b}) :=
begin
simp_rw [← succ_le],
exact ordinal.infinite_pigeonhole_card f
((mk β).succ)
(succ_le.mpr w)
(w'.trans (lt_succ_self _).le)
((lt_succ_self _).trans_le (succ_is_regular w').2.ge),
end
example {α β : Type*} (w : cardinal.mk β < cardinal.mk α) (w' : cardinal.omega ≤ cardinal.mk β)
(f : α → β) : ∃ b : β, set.infinite (f ⁻¹' {b}) :=
begin
simp_rw [← set.infinite_coe_iff, cardinal.infinite_iff],
cases foo w w' f with b hb,
exact ⟨b, w'.trans hb.le⟩,
end
The first lemma should probably be in mathlib.
Floris van Doorn (Jun 03 2021 at 01:21):
The idea is to use docs#ordinal.infinite_pigeonhole_card (which is more general) and then take for θ
any regular cardinal between #β
and #α
. In this case we can take (#β).succ
.
Scott Morrison (Jun 03 2021 at 05:35):
Thanks @Floris, I understand now! These are useful.
Last updated: Dec 20 2023 at 11:08 UTC