Zulip Chat Archive

Stream: new members

Topic: Unit vector in tangentspace


Sam Lindauer (Oct 18 2024 at 10:04):

Hey all, I am currently working on writing a lemma that tells us that a smooth loop that is an immersion has (with abuse of notation) a smooth derivative that is a smooth loop around zero. To do this, I think I need to use some sort of standard unit vector in the tangent space to help define this smooth loop

γ ⁣:S1R2 smooth immersion loop, then tS1Dγ(t)(e)R2{0} smooth loop around zero\gamma \colon \mathbb{S}^1 \to \mathbb{R}^2 \text{ smooth immersion loop, then } \\ t \in \mathbb{S}^1 \mapsto D\gamma(t)(e) \in \mathbb{R}^2-\{0\} \text{ smooth loop around zero}

In lean I use the following setup and have tried to make a start at defining this lemma, but I am not completely sure how to finish it (the dots indicate the space where I would want to essentially write 1 or e):

import Mathlib

open scoped Manifold

notation "ℝ²" => EuclideanSpace  (Fin 2)
notation "𝕊¹" => Metric.sphere (0 : ²) 1

-- Smooth loop around zero
structure MLoop (γ : 𝕊¹  ²) : Prop where
  smooth : Smooth (𝓡 1) 𝓘(, ²) γ
  around_zero : x : 𝕊¹, γ x  0

-- Immersion loop
structure ILoop (γ : 𝕊¹  ²) : Prop where
  smooth : Smooth (𝓡 1) 𝓘(, ²) γ
  -- Injectivity of derivative in this case (dim(𝕊¹) = 1)
  imm :   t : 𝕊¹, mfderiv (𝓡 1) 𝓘(, ²) γ t  0

-- Now, one can take the function `t ↦ Dγ(t)(e)`
-- where `e is the standard unit vector` to get a `MLoop 𝕊¹ → ℝ²`

lemma deriv_iloop_eq_mloop {γ : 𝕊¹  ²} (γ_iloop : ILoop γ) :
  MLoop (fun t : 𝕊¹  (mfderiv (𝓡 1) 𝓘(, ²) γ t ...)) := by sorry

Thanks in advance! Sam

Johan Commelin (Oct 19 2024 at 06:44):

I think you can drop the SphereEversion import, right?

Johan Commelin (Oct 19 2024 at 06:47):

And really your goal is how to fill in the following sorry, if I understand you correctly:

def e {t : 𝕊¹} : TangentSpace 𝓘(, EuclideanSpace  (Fin 1)) t := sorry

Sam Lindauer (Oct 19 2024 at 13:08):

Johan Commelin said:

I think you can drop the SphereEversion import, right?

oh yeah that's totally right :+1:

Sam Lindauer (Oct 19 2024 at 13:18):

Johan Commelin said:

And really your goal is how to fill in the following sorry, if I understand you correctly:

def e {t : 𝕊¹} : TangentSpace 𝓘(, EuclideanSpace  (Fin 1)) t := sorry

Essentially yes. Thinking about it now, it might be better to be able to define it as a smooth 'unit' section of the tangent bundle above the circle, because in that way smoothness of the resulting loop is easier to show I would guess. Otherwise, I think one needs to really dig in to taking this unit vector in charts and patching it up.

Johan Commelin (Oct 22 2024 at 07:29):

@Sam Lindauer The following works.

def e {t : 𝕊¹} : TangentSpace 𝓘(, EuclideanSpace  (Fin 1)) t := fun _  1

Explanation: the tangent space is not defeq to R\R itself, but to R1\R^1 aka Fin 1 → ℝ

Johan Commelin (Oct 22 2024 at 07:29):

Do you think you can fill in the proof obligations?

Sam Lindauer (Oct 22 2024 at 07:46):

Thanks! There is several proof obligations left and I am not entirely sure how to do some of them, but I will give it a solid try first.


Last updated: May 02 2025 at 03:31 UTC