Zulip Chat Archive
Stream: Is there code for X?
Topic: cardinal.lift_sup
Scott Morrison (Aug 14 2021 at 07:28):
Is this following even true:
import set_theory.cardinal
universes u v w
lemma lift_sup {ι : Type v} (f : ι → cardinal.{max v w}) :
cardinal.lift.{(max v w) (max u v w)} (cardinal.sup.{v w} f) =
cardinal.sup.{v (max u w)} (λ i : ι, cardinal.lift.{(max v w) (max u v w)} (f i)) :=
sorry
If so, any advice on proving it?
Reid Barton (Aug 14 2021 at 10:35):
I think the math proof starts by observing that if is a cardinal in universe and is a cardinal in a bigger universe such that , then actually belongs to universe also. You can prove it in Lean by picking an injection and then using the image of to make the new -sized cardinal which equals in .
Reid Barton (Aug 14 2021 at 10:35):
Because the issue you might be worried about with the main statement is that the larger universe somehow has extra cardinals stuck in the middle that make the sup smaller than it would be in the small universe.
Reid Barton (Aug 14 2021 at 10:36):
Once you have that then you should be able to do some "they're than the same cardinals" argument.
Reid Barton (Aug 14 2021 at 10:53):
I guess you can formulate the lemma like this: Every cardinal.{max u v}
is either in the image of lift.{u v}
, or bigger than everything in the image of lift.{u v}
. (Because if there's some lift.{u v} a
that it's not bigger than, apply the above argument to show it is in the image.)
Reid Barton (Aug 14 2021 at 11:00):
now for the main theorem, we need to prove that the lift of the sup is iff each of the lifts is . Apply the lemma to . If it's "small" then we can write it as lift
of something and apply docs#cardinal.lift_le. If it's "big" then it is bigger than all these lifts we care about.
Reid Barton (Aug 14 2021 at 11:01):
I want there to be some more orderly argument based on the fact that lift
is an embedding of an initial segment of cardinal.{u}
in cardinal.{v}
, but it seems like the fact that sup
changes the universe will get in the way
Floris van Doorn (Aug 14 2021 at 16:56):
@Reid Barton's lemma basically already exists as docs#cardinal.lift_down.
import set_theory.cardinal
universes u v w
namespace cardinal
protected lemma le_sup_iff {ι : Type v} {f : ι → cardinal.{max v w}} {c : cardinal} :
(c ≤ sup f) ↔ (∀ b, (∀ i, f i ≤ b) → c ≤ b) :=
⟨λ h b hb, le_trans h (sup_le.mpr hb), λ h, h _ $ λ i, le_sup f i⟩
lemma lift_sup {ι : Type v} (f : ι → cardinal.{max v w}) :
lift.{(max v w) (max u v w)} (sup.{v w} f) =
sup.{v (max u w)} (λ i : ι, lift.{(max v w) (max u v w)} (f i)) :=
begin
apply le_antisymm,
{ rw [cardinal.le_sup_iff], intros c hc, by_contra h,
obtain ⟨d, rfl⟩ := cardinal.lift_down (not_le.mp h).le,
simp only [lift_le, sup_le] at h hc,
exact h hc },
{ simp only [cardinal.sup_le, lift_le, le_sup, implies_true_iff] }
end
end cardinal
Scott Morrison (Aug 15 2021 at 01:44):
Thanks, @Reid Barton and @Floris van Doorn! I'll PR this shortly.
Scott Morrison (Aug 15 2021 at 01:49):
Scott Morrison (Aug 15 2021 at 02:01):
(I also included the follow-up lemma lift_sup_le_lift_sup
that I need in my application.)
Last updated: Dec 20 2023 at 11:08 UTC