Zulip Chat Archive

Stream: mathlib4

Topic: Boundaryless models


Yury G. Kudryashov (Jun 27 2023 at 13:43):

What do you think about replacing docs#ModelWithCorners.Boundaryless with this?

class ModelWithCorners.IsTrivial (I : ModelWithCorners 𝕜 E E) where
  eq_self : I = modelWithCornersSelf 𝕜 E

Yury G. Kudryashov (Jun 27 2023 at 13:43):

Or adding this as a new typeclass.

Yury G. Kudryashov (Jun 27 2023 at 13:44):

#5499

Sebastien Gouezel (Jun 27 2023 at 13:44):

The point of the boundaryless typeclass is that it is stable under products. Do you have a use case where it doesn't work for you?

Yury G. Kudryashov (Jun 27 2023 at 13:45):

IsTrivial is also stable under products.

Yury G. Kudryashov (Jun 27 2023 at 13:46):

The use case is to move between MDifferentiable I I' (f : E → F) and Differentiable 𝕜 f.

Sebastien Gouezel (Jun 27 2023 at 13:46):

Ah, yes, it is a propositional equality that you require, not a definitional one.

Yury G. Kudryashov (Jun 27 2023 at 13:47):

We have, e.g., docs#Smooth.prod_mk and docs#Smooth.prod_mk_space.

Yury G. Kudryashov (Jun 27 2023 at 13:48):

I suggest that we add this new typeclass and define lemmas like Smooth.cod_to_space Smooth.cod_of_space instead.

Sebastien Gouezel (Jun 27 2023 at 14:06):

I'm not sure I understand how the new design would turn the two two lemmas like docs#Smooth.prod_mk and docs#Smooth.prod_mk_space into just one. I'll understand better when you PR it! I would be interested in @Floris van Doorn thoughts, because he had to use a lot the library in concrete situations for sphere eversion.

Yury G. Kudryashov (Jun 27 2023 at 14:20):

We can leave docs#Smooth.prod_mk only. If you have h : Smooth I I' f with [I'.IsTrivial], then h.cod_to_space will give you Smooth I 𝓘(𝕜, F) f.

Yury G. Kudryashov (Jun 27 2023 at 14:21):

I have to wait with a PR till mathlib4 is open for refactors.

Sebastien Gouezel (Jun 27 2023 at 14:26):

ok, I get it. Looks good to me!

Yury G. Kudryashov (Jul 03 2023 at 15:30):

I found a very important flaw: the main issue is not about I being equal to the trivial model; the main issue is about ChartedSpace instances being equal.


Last updated: Dec 20 2023 at 11:08 UTC