Zulip Chat Archive
Stream: maths
Topic: bundles
Floris van Doorn (May 17 2022 at 10:33):
What should be the simp-normal form of the map bundle.total_space E -> B
?
Currently it is docs#sigma.fst since docs#bundle.proj simplifies to sigma.fst
. However, if sigma.fst
, why do we even define bundle.proj
in the first place? If sigma.fst
is simp-normal form, we want to use sigma.fst
everywhere, and not bundle.proj
.
Floris van Doorn (May 17 2022 at 10:34):
@Nicolò Cavalleri
Eric Wieser (May 18 2022 at 07:16):
There might be some discussion about that in #4658 which introduced it
Eric Wieser (May 18 2022 at 07:19):
My guess would be that it exists for dot notation, but is removed by simp to avoid repeating tonnes of boring lemmas
Eric Wieser (May 18 2022 at 07:21):
Tangential question; why does docs#bundle seem to pick up instances for other types of bundle?
Eric Wieser (May 18 2022 at 07:21):
Are those other bundle types deliberately marked as reducible?
Sebastien Gouezel (May 23 2022 at 12:34):
Floris van Doorn said:
What should be the simp-normal form of the map
bundle.total_space E -> B
?
Currently it is docs#sigma.fst since docs#bundle.proj simplifies tosigma.fst
. However, ifsigma.fst
, why do we even definebundle.proj
in the first place? Ifsigma.fst
is simp-normal form, we want to usesigma.fst
everywhere, and notbundle.proj
.
To me, this question is related to type synonyms. sigma.fst
goes from Σ x, E x
to B
, while bundle.proj E
goes from total_space E
to B
. Since these two spaces don't have the same typeclasses, I think it really makes a difference when discussing, say, continuity of the projection, as the topologies on Σ x, E x
and total_space E
are typically not the same. But writing v.1
is much more convenient than writing proj E v
, so I have mixed feelings.
Kyle Miller (May 23 2022 at 12:46):
Would it be a bad idea to make E
implicit for proj
? Then you could write v.proj
instead of proj E v
. When you just want the projection map you might need @proj _ foo
though for a specific bundle foo
(which in Lean 4 you'll be able to write as proj (E := foo)
).
Without making it implicit, I think v.proj _
should work, but there are occasions where you need to put parentheses around the whole expression.
Sebastien Gouezel (May 23 2022 at 12:51):
I think that's a good idea, since the @ version is not too verbose.
Floris van Doorn (May 24 2022 at 12:44):
I had similar concerns to those of Sebastien: if we write a type synonym, we should develop and use its API. I like the suggestion to make the argument E
of proj
implicit. I will PR that.
Floris van Doorn (May 24 2022 at 17:21):
Last updated: Dec 20 2023 at 11:08 UTC