Zulip Chat Archive

Stream: maths

Topic: Fiber bundles


Yury G. Kudryashov (Jun 25 2023 at 04:59):

I have several loosely related proposals about API of fiber bundles.

See below for an updated version

Fiber bundle structure on proj : Z → B

Currently, the only surviving file about maps proj : Z → B as fiber bundles is the file about docs#Trivialization. I think that we should restore at least the topological fiber bundle definition (as a typeclass or as a bundled proj map) so that we can talk about, e.g., Hopf fibration as a fiber bundle without choosing a bijection to the sigma type.

Also, I suggest that we reformulate the definition of docs#Trivialization in terms of fiberwise maps and add a custom toLocalHomeomorph making docs#Trivialization.coe_fst, docs#Trivialization.source_eq, and docs#Trivialization.target_eq into rfls.

Fiber bundles as sigma types

I had 2 suggestions, both of them turned out to be bad ideas.

As for fibder bundles as "a topology on the sigma type with a trivialization around each point", I suggest that we drop the axiomatic approach docs#FiberBundle and deal with docs#FiberBundleCore instead. The reason is simple: except for trivial examples like the trivial bundle, I don't know any way to construct a nice TopologicalSpace structure on the sigma type.

Also, we can use Prod instead of Sigma because all fibers are defeq anyway.

Yury G. Kudryashov (Jun 25 2023 at 05:04):

Of course, all these suggestions are for after port.

Yury G. Kudryashov (Jun 25 2023 at 05:06):

@Heather Macbeth @Floris van Doorn @Moritz Doll @Sebastien Gouezel @Patrick Massot @Oliver Nash :up:

Sebastien Gouezel (Jun 25 2023 at 07:12):

Yury G. Kudryashov said:

Also, we can use Prod instead of Sigma because all fibers are defeq anyway.

No, because in Riemannian manifolds you want to have different norms on each fibers, so they should be types of their own, and this is much more convenient with Sigma types.

Yury G. Kudryashov (Jun 25 2023 at 11:59):

Our fibers are type synonyms for the same type anyway.

Yury G. Kudryashov (Jun 25 2023 at 12:00):

With Prod we can continue using Fiber x everywhere but avoid HEq

Sebastien Gouezel (Jun 25 2023 at 12:14):

I think I don't understand what you want to do. For instance, in docs#TopologicalVectorSpace.linear, we express a bunch of properties of fibers using typeclasses, which is very handy in a Sigma type situation. I don't see how you would express this kind of things if we used products.

Yury G. Kudryashov (Jun 25 2023 at 12:53):

The docs leads to 404

Sebastien Gouezel (Jun 25 2023 at 13:03):

Sorry. Is docs#Pretrivialization.linear better?

To elaborate, when you have v : E x, then you can form ⟨x, v⟩ as an element of the total space, and Lean understands its type right away. Conversely, if you have z : TotalSpace E, then if you do a case on z you get a pair ⟨x, v⟩ where Lean already knows that v is in the fiber above x, with all its classes. In a product situation, I don't see how to obtain such a transparent way to go back and forth without confusing Lean.

Yury G. Kudryashov (Jun 25 2023 at 13:22):

Probably, you're right. Sigma types work better with cases etc.

Yury G. Kudryashov (Jun 25 2023 at 13:25):

About docs#Pretrivialization.IsLinear, I suggest that we drop it (as well as the rest of the axiomatic approach to bundles on sigma types) and use docs#FiberBundleCore + docs#VectorBundleCore instead.

Yury G. Kudryashov (Jun 25 2023 at 13:26):

(UPD: rethinking; possibly, this is not a very good idea)

Yury G. Kudryashov (Jun 25 2023 at 13:31):

If we drop it and reformulate constructions like prod in terms of FiberBundleCore, then fibers will unfold to products of model spaces, not of fibers.

Yury G. Kudryashov (Jun 25 2023 at 13:31):

So, scratch that.

Yury G. Kudryashov (Jun 25 2023 at 13:32):

Thank you!

Yury G. Kudryashov (Jun 25 2023 at 13:38):

As for the first suggestion, nothing in the definition of docs#FiberBundle needs the total space to be a sigma type. I think that we can have this definition for any type, then restrict to a sigma type for definition/lemmas that need it (and for vector bundles).

Yury G. Kudryashov (Jun 25 2023 at 13:50):

Updated proposal

Trivializations

Fiber bundle structure on proj : Z → B

  • Generalize docs#FiberBundle to any map, not just Sigma.fst.
  • docs#VectorBundle deals with FiberBundle for Sigma.fst.

Fiber bundles on docs#Bundle.TotalSpace

Floris van Doorn (Jun 25 2023 at 21:20):

Yes, I like these suggestions.

I briefly tried the trivialization refactor in branch3#trivialization_definitional_fiberwise, but there I also changed Z to total_space E at the same time; I realize now that this was not necessary.

I'm happy with the FiberBundle suggestions.

We are definitely having a bit of a mess with Bundle.TotalSpace.proj vs Sigma.fst. The first thing that has to be done there is to remove the simp attribute from Bundle.TotalSpace.proj and instead make Bundle.TotalSpace.proj the simp-normal form (assuming we can do that without changing the behavior for ordinary sigma-types).

Yury G. Kudryashov (Jun 25 2023 at 21:38):

We can do it by using a new type instead of Sigma. I think that we don't need much of the API.

Floris van Doorn (Jun 26 2023 at 13:52):

Probably not too much, but we might still want some of the equivalences on Sigma. If you prefer a new structure, that's fine by me.

Yury G. Kudryashov (Jun 26 2023 at 14:02):

I'll complete the port first, then do the Trivialization refactor. Then we'll see.

Yury G. Kudryashov (Jun 29 2023 at 14:30):

I'm redefining bundle.total_space so that it depends on F. I'm trying to switch to a custom structure at the same time. The first field will be called proj. What is a good name for the second field?

Yury G. Kudryashov (Jun 29 2023 at 15:44):

Thinking about docs#Trivialization again, I tihnk that we should move to the docs#Bundle everywhere, make API as nice as we can get in this case, move everything about it to the Bundle namespace, then add abstract fiber bundles in a new namespace.

Yury G. Kudryashov (Jun 29 2023 at 15:44):

E.g., this way the inverse map can be from F to E x, not to Z.


Last updated: Dec 20 2023 at 11:08 UTC