Zulip Chat Archive
Stream: maths
Topic: affine space as a manifold
Yury G. Kudryashov (Jul 04 2023 at 15:38):
I'm trying to find a way to introduce a manifold instance on a NormedAddTorsor
over a normed space without generating diamonds.
Yury G. Kudryashov (Jul 04 2023 at 15:39):
No progress so far.
Yury G. Kudryashov (Jul 04 2023 at 15:39):
The problem is that the normed space itself is an affine space over itself.
Yury G. Kudryashov (Jul 04 2023 at 15:42):
So, the most natural atlas (as in docs#ChartedSpace) for an affine space (given by docs#AffineEquiv.vaddConst at every point) conflicts with docs#chartedSpaceSelf for E
as an affine space over E
.
Yury G. Kudryashov (Jul 04 2023 at 15:42):
Any ideas?
Sebastien Gouezel (Jul 04 2023 at 15:57):
One way would be to change the standard atlas on a vector space: instead of just using the identity, we could use all the translations to get the same atlas as what would come from the AddTorsor structure. I don't know if we use a lot the current choice of atlas currently.
Yury G. Kudryashov (Jul 04 2023 at 15:59):
E.g., we use chartedSpaceSelf
in docs#mdifferentiable_chart
Yury G. Kudryashov (Jul 04 2023 at 16:01):
Sebastien Gouezel (Jul 04 2023 at 16:22):
All these statements would still be true, right? If we just have to fix a few proofs, it doesn't look too bad.
Yury G. Kudryashov (Jul 04 2023 at 16:27):
No, for docs#EuclideanHalfSpace we need the old instance.
Yury G. Kudryashov (Jul 04 2023 at 16:28):
I mean, for the codomain of the EuclideanHalfSpace
.
Yury G. Kudryashov (Jul 04 2023 at 18:41):
Can we completely drop ChartedSpace
and formulate the definition of a manifold in terms of what is now called extended charts?
Yury G. Kudryashov (Jul 04 2023 at 21:08):
Something like (not tested):
structure ModelWithCorners (k E : Type _) [NontriviallyNormedField k] [AdddCommGroup E]
[Module k E] [TopologicalSpace E] where
carrier : Set E
uniqueDiffOn : UniqueDiffOn carrier
isClosed_carrier : IsClosed carrier
structure ManifoldChart {k E : Type _} [NontriviallyNormedField k] [AdddCommGroup E]
[Module k E] [TopologicalSpace E] (I : ModelWithCorners k E)
(M : Type _) [TopologicalSpace M] extends LocalEquiv M E where
open_source : IsOpen source
continuous_toFun : ContinuousOn toFun source
continuous_invFun : ContinuousOn invFun target
target_subset : target ⊆ I.carrier
nhdsWithin_target : ∀ x ∈ target, 𝓝[target] x = 𝓝[I.carrier] x
nhdsWithin_target
is equivalent to IsOpen (target ∪ I.carrierᶜ)
or IsOpen ((↑) ⁻¹' target : Set I.carrier)
Yury G. Kudryashov (Jul 04 2023 at 21:20):
We still need a ModelWithCorners
as an extra tag to choose between two non-defeq atlases on E × F
.
Sebastien Gouezel (Jul 05 2023 at 05:16):
I don't see a reason why it wouldn't work, although it would probably be a crazy refactor. Some things would become more complicated (like recasting a complex manifold as a real manifold, or composing manifold instances -- if E
is a charted space modelled on F
, and F
is a charted space modelled on G
, then E
is a charted space modelled on G
). Some applications of charted spaces I have in mind (like flat surfaces, where some charts go into a vector space, other charts go into a branched cover of a vector space over a point) would not be possible any more, though, so I would have to be convinced that the reduced generality has clear gains to compensate for the losses.
Sebastien Gouezel (Jul 05 2023 at 05:16):
I would welcome the thoughts of @Heather Macbeth , @Floris van Doorn and @Patrick Massot on this.
Yury G. Kudryashov (Jul 05 2023 at 06:07):
In any case, I suggest that we redefine the ModelWithCorners
as a Set
+ properties.
Yury G. Kudryashov (Jul 05 2023 at 06:07):
This way we can avoid the ModelProd
+ simp
issues.
Yury G. Kudryashov (Jul 05 2023 at 06:08):
BTW, this could solve the diamond with affine spaces too.
Yury G. Kudryashov (Jul 05 2023 at 06:09):
It's 1am here, so I'll think about it again in the morning.
Yury G. Kudryashov (Jul 05 2023 at 06:24):
Though this means that we'll have to use Set.prod
in place of ModelProd
.
Yury G. Kudryashov (Jul 05 2023 at 06:24):
No longer sure if this is a good idea.
Yury G. Kudryashov (Jul 10 2023 at 05:39):
I think that I found another solution both to the "affine space as a manifold" and to the "ModelProd
in simp
".
- We introduce
def ModelWithCorners.Self (E : Type _) : Type _ := E
(or Model.Self
; BTW, should we move it to Manifold.Model
?)
- We drop
ModelProd
andModelPi
. Instead, we can tell the difference betweenModel.Self E × Model.Self F
vsModel.Self (E × F)
. - We introduce an instance
[NormedAddTorsor E PE] : ChartedSpace (Model.Self E) PE
that uses shifts by constants. It no longer conflicts withChartedSpace α α
.
Yury G. Kudryashov (Jul 10 2023 at 05:39):
@Sebastien Gouezel @Floris van Doorn @Heather Macbeth @Patrick Massot :up:
Yury G. Kudryashov (Jul 10 2023 at 05:44):
No, we'll still have a diamond for ChartedSpace (α × α) (α × α)
.
Yury G. Kudryashov (Jul 10 2023 at 05:51):
Possible solution: drop the instance for ChartedSpace α α
, add it as a def Homeomorph.chartedSpace
, and add an instance for ChartedSpace (Model.Self α) (Model.Self α)
so that we can talk about smoothness of chartAt
.
Last updated: Dec 20 2023 at 11:08 UTC