Zulip Chat Archive

Stream: maths

Topic: Transfinite recursion


Jack McKoen (Aug 13 2024 at 01:32):

I'm trying to recreate this proof in Lean, but I'm having a hard time figuring out transfinite recursion. I don't think the specifics of the proof are that important here, but my basic problem is this:

For a fixed ordinal α\alpha I need to recursively define morphisms {uγ}γα\{ u_{\gamma } \} _{\gamma \leq \alpha } satisfying certain properties which depend on the morphisms {uβ}β<γ\{ u_{\beta } \} _{ \beta < \gamma }, but I haven't been able to come up with a good way to package this.

docs#WellFounded.recursion seems close to what I need but I don't think it's enough (I think it would work if I just had to assign each ordinal to a proposition, but I have to assign morphisms as well).

Can anyone suggest a way to do this?

Violeta Hernández (Aug 13 2024 at 01:39):

Recursion is what you're looking for

Violeta Hernández (Aug 13 2024 at 01:40):

Note the signature C : α → Sort, meaning C can contain propositions or data

Violeta Hernández (Aug 13 2024 at 01:42):

We don't have a way to do bounded recursion on ordinals directly just yet, so as a way to sidestep it you could define, for all ordinals x, an element of x < α → M where M is the type of your morphisms

Jack McKoen (Aug 13 2024 at 02:11):

Violeta Hernández said:

We don't have a way to do bounded recursion on ordinals directly just yet, so as a way to sidestep it you could define, for all ordinals x, an element of x < α → M where M is the type of your morphisms

Thank you, I think this has put me back on track

Joël Riou (Aug 13 2024 at 06:15):

Doing such an induction is quite technical. I have already completely formalized the small object argument, but I am PRing it slowly to mathlib. If I understand the language properly, the fact that the class of morphisms which satisfy the left lifting property with respect to a class of morphisms is stable by transfinite composition is the last declaration in this file https://github.com/joelriou/k-injective/blob/main/KInjective/SmallObject/Lifting.lean

Jack McKoen (Aug 13 2024 at 06:49):

Joël Riou said:

https://github.com/joelriou/k-injective/blob/main/KInjective/SmallObject/Lifting.lean

This is great, Joël. It looks like much of this repo will be useful to me :+1:


Last updated: May 02 2025 at 03:31 UTC