Zulip Chat Archive
Stream: maths
Topic: Partial converse to König's theorem
Sky Wilshaw (Dec 14 2023 at 10:45):
Does the following partial converse to König's lemma/theorem on cardinals have a name (or exist in mathlib)?
theorem pow_le_of_isStrongLimit {κ μ : Cardinal.{u}} (h₁ : IsStrongLimit μ) (h₂ : κ < μ.ord.cof) :
μ ^ κ ≤ μ
Sky Wilshaw (Dec 14 2023 at 10:47):
A proof:
import Mathlib.SetTheory.Cardinal.Cofinality
open Cardinal
def funMap (α β : Type _) [LT β] (f : α → β) :
{ S : Set β // #S ≤ #α } × (α → α → Prop) :=
⟨⟨Set.range f, mk_range_le⟩, InvImage (· < ·) f⟩
theorem funMap_injective {α β : Type _} [LinearOrder β] [IsWellOrder β (· < ·)] :
Function.Injective (funMap α β) := by
intro f g h
simp only [funMap, Prod.mk.injEq, Subtype.mk.injEq] at h
suffices : ∀ y : β, ∀ x : α, f x = y → g x = y
· ext x : 1
rw [this]
rfl
intro y
refine IsWellFounded.induction (· < ·) (C := fun y => ∀ x : α, f x = y → g x = y) y ?_
clear y
rintro y ih x rfl
obtain ⟨y, h₁⟩ : f x ∈ Set.range g
· rw [← h.1]
exact ⟨x, rfl⟩
rw [← h₁]
obtain (h₂ | h₂ | h₂) := lt_trichotomy (g x) (g y)
· obtain ⟨z, h₃⟩ : g x ∈ Set.range f
· rw [h.1]
exact ⟨x, rfl⟩
rw [h₁, ← h₃] at h₂
have h₄ := ih (f z) h₂ z rfl
have := congr_fun₂ h.2 z x
simp only [InvImage, h₂, eq_iff_iff, true_iff] at this
rw [h₄, h₃] at this
cases lt_irrefl _ this
· exact h₂
· have := congr_fun₂ h.2 y x
simp only [InvImage, eq_iff_iff] at this
rw [← this] at h₂
have := ih (f y) h₂ y rfl
have := h₂.trans_eq (h₁.symm.trans this)
cases lt_irrefl _ this
theorem mk_fun_le {α β : Type u} :
#(α → β) ≤ #({ S : Set β // #S ≤ #α } × (α → α → Prop)) := by
classical
obtain ⟨r, hr⟩ := IsWellOrder.subtype_nonempty (σ := β)
let _ := linearOrderOfSTO r
exact ⟨⟨funMap α β, funMap_injective⟩⟩
theorem pow_le_of_isStrongLimit' {α β : Type u} [Infinite α] [Infinite β]
(h₁ : IsStrongLimit #β) (h₂ : #α < (#β).ord.cof) : #β ^ #α ≤ #β := by
refine le_trans mk_fun_le ?_
simp only [mk_prod, lift_id, mk_pi, mk_fintype, Fintype.card_prop, Nat.cast_ofNat, prod_const,
lift_id', lift_two]
have h₃ : #{ S : Set β // #S ≤ #α } ≤ #β
· rw [← mk_subset_mk_lt_cof h₁.2]
refine ⟨⟨fun S => ⟨S, S.prop.trans_lt h₂⟩, ?_⟩⟩
intro S T h
simp only [Subtype.mk.injEq] at h
exact Subtype.coe_injective h
have h₄ : (2 ^ #α) ^ #α ≤ #β
· rw [← power_mul, mul_eq_self (Cardinal.infinite_iff.mp inferInstance)]
refine (h₁.2 _ ?_).le
exact h₂.trans_le (Ordinal.cof_ord_le #β)
refine le_trans (mul_le_max _ _) ?_
simp only [ge_iff_le, le_max_iff, max_le_iff, le_aleph0_iff_subtype_countable, h₃, h₄, and_self,
aleph0_le_mk]
theorem pow_le_of_isStrongLimit {κ μ : Cardinal.{u}} (h₁ : IsStrongLimit μ) (h₂ : κ < μ.ord.cof) :
μ ^ κ ≤ μ := by
by_cases h : κ < ℵ₀
· exact pow_le h₁.isLimit.aleph0_le h
· revert h₁ h₂ h
refine inductionOn₂ κ μ ?_
intro α β h₁ h₂ h
have := Cardinal.infinite_iff.mpr (le_of_not_lt h)
have := Cardinal.infinite_iff.mpr h₁.isLimit.aleph0_le
exact pow_le_of_isStrongLimit' h₁ h₂
David Michael Roberts (Dec 14 2023 at 10:58):
For the sake of readability, could include a mathematical English statement of the result?
Sky Wilshaw (Dec 14 2023 at 11:02):
König's lemma says that for infinite cardinals κ, we have where is the cofinality of κ. This result says that if is a strong limit cardinal, for any exponent strictly smaller than the cofinality of κ, we don't have (that is, we have ).
Sky Wilshaw (Dec 14 2023 at 11:05):
This establishes a critical point in the exponentiation function where the base is a strong limit cardinal. For all exponents strictly smaller than , we have (and of course this is an equality for ), and for all exponents at least , we have .
Pedro Sánchez Terraf (Dec 14 2023 at 11:31):
Note: Usually, "König's Lemma" refers to the fact about trees.
Last updated: Dec 20 2023 at 11:08 UTC