-- Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean
theorem tangentMap_chart {p q : TangentBundle I M} (h : q.1 ∈ (chartAt H p.1).source) :
    tangentMap I I (chartAt H p.1) q =
      (TotalSpace.toProd _ _).symm
        ((chartAt (ModelProd H E) p : TangentBundle I M → ModelProd H E) q)

Proof state:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ MDifferentiableAt I I (↑(chartAt H p.proj)) q.proj

Tactic:
exact mdifferentiableAt_atlas (chart_mem_atlas _ _) h

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ tangentMap I I (↑(chartAt H p.proj)) q = (TotalSpace.toProd H E).symm (↑(chartAt (ModelProd H E) p) q)

Tactic:
dsimp [tangentMap]

Result:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ { proj := ↑(chartAt H p.proj) q.proj, snd := (mfderiv I I (↑(chartAt H p.proj)) q.proj) q.snd } =
    (TotalSpace.toProd H E).symm (↑(chartAt (ModelProd H E) p) q)

Proof state:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ { proj := ↑(chartAt H p.proj) q.proj,
      snd :=
        (fderivWithin 𝕜 (writtenInExtChartAt I I q.proj ↑(chartAt H p.proj)) (range ↑I) (↑(extChartAt I q.proj) q.proj))
          q.snd } =
    (TotalSpace.toProd H E).symm (↑(chartAt (ModelProd H E) p) q)

Tactic:
rfl

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ { proj := ↑(chartAt H p.proj) q.proj, snd := (mfderiv I I (↑(chartAt H p.proj)) q.proj) q.snd } =
    (TotalSpace.toProd H E).symm (↑(chartAt (ModelProd H E) p) q)

Tactic:
rw [MDifferentiableAt.mfderiv]

Result:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ { proj := ↑(chartAt H p.proj) q.proj,
      snd :=
        (fderivWithin 𝕜 (writtenInExtChartAt I I q.proj ↑(chartAt H p.proj)) (range ↑I) (↑(extChartAt I q.proj) q.proj))
          q.snd } =
    (TotalSpace.toProd H E).symm (↑(chartAt (ModelProd H E) p) q)

𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : IsManifold I 1 M
p q : TangentBundle I M
h : q.proj ∈ (chartAt H p.proj).source
⊢ MDifferentiableAt I I (↑(chartAt H p.proj)) q.proj