[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ ContDiffOn 𝕜 ⊤
    (fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I))
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
[PROOFSTEP]
have h : ((i.1.extend I).symm ≫ j.1.extend I).source ⊆ range I := by rw [i.1.extend_coord_change_source];
  apply image_subset_range
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ⊆ range ↑I
[PROOFSTEP]
rw [i.1.extend_coord_change_source]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ ↑I '' (LocalHomeomorph.symm ↑i ≫ₕ ↑j).toLocalEquiv.source ⊆ range ↑I
[PROOFSTEP]
apply image_subset_range
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
h : (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ⊆ range ↑I
⊢ ContDiffOn 𝕜 ⊤
    (fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I))
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
[PROOFSTEP]
intro x hx
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
h : (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ⊆ range ↑I
x : E
hx : x ∈ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
⊢ ContDiffWithinAt 𝕜 ⊤
    (fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I))
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source x
[PROOFSTEP]
refine' (ContDiffWithinAt.fderivWithin_right _ I.unique_diff le_top <| h hx).mono h
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
h : (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ⊆ range ↑I
x : E
hx : x ∈ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
⊢ ContDiffWithinAt 𝕜 ⊤ (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
    (range ↑I) x
[PROOFSTEP]
refine'
  (LocalHomeomorph.contDiffOn_extend_coord_change I (subset_maximalAtlas I j.2) (subset_maximalAtlas I i.2) x
        hx).mono_of_mem
    _
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
h : (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ⊆ range ↑I
x : E
hx : x ∈ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
⊢ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source ∈ 𝓝[range ↑I] x
[PROOFSTEP]
exact i.1.extend_coord_change_source_mem_nhdsWithin j.1 I hx
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v : E
⊢ ↑((fun i j x =>
            fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
              (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
          i i x)
      v =
    v
[PROOFSTEP]
simp only
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v : E
⊢ ↑(fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑i) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I)
          (↑(LocalHomeomorph.extend (↑i) I) x))
      v =
    v
[PROOFSTEP]
rw [Filter.EventuallyEq.fderivWithin_eq, fderivWithin_id', ContinuousLinearMap.id_apply]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v : E
⊢ UniqueDiffWithinAt 𝕜 (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x)
[PROOFSTEP]
exact I.unique_diff_at_image
[GOAL]
case hs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v : E
⊢ ↑(LocalHomeomorph.extend (↑i) I) ∘
      ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) =ᶠ[𝓝[range ↑I] ↑(LocalHomeomorph.extend (↑i) I) x]
    fun x => x
[PROOFSTEP]
filter_upwards [i.1.extend_target_mem_nhdsWithin I hx] with y hy
[GOAL]
case h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v y : E
hy : y ∈ (LocalHomeomorph.extend (↑i) I).target
⊢ (↑(LocalHomeomorph.extend (↑i) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) y = y
[PROOFSTEP]
exact (i.1.extend I).right_inv hy
[GOAL]
case hx
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i : ↑(atlas H M)
x : M
hx : x ∈ (fun i => (↑i).source) i
v : E
⊢ (↑(LocalHomeomorph.extend (↑i) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
      (↑(LocalHomeomorph.extend (↑i) I) x) =
    ↑(LocalHomeomorph.extend (↑i) I) x
[PROOFSTEP]
simp_rw [Function.comp_apply, i.1.extend_left_inv I hx]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ ContinuousOn
    ((fun i j x =>
        fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
          (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
      i j)
    ((fun i => (↑i).source) i ∩ (fun i => (↑i).source) j)
[PROOFSTEP]
refine' (contDiffOn_fderiv_coord_change I i j).continuousOn.comp ((i.1.continuousOn_extend I).mono _) _
[GOAL]
case refine'_1
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ (fun i => (↑i).source) i ∩ (fun i => (↑i).source) j ⊆ (LocalHomeomorph.extend (↑i) I).source
[PROOFSTEP]
rw [i.1.extend_source]
[GOAL]
case refine'_1
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ (fun i => (↑i).source) i ∩ (fun i => (↑i).source) j ⊆ (↑i).source
[PROOFSTEP]
exact inter_subset_left _ _
[GOAL]
case refine'_2
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ MapsTo (fun x => ↑(LocalHomeomorph.extend (↑i) I) x) ((fun i => (↑i).source) i ∩ (fun i => (↑i).source) j)
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
[PROOFSTEP]
simp_rw [← i.1.extend_image_source_inter, mapsTo_image]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
⊢ ∀ (i j k : ↑(atlas H M)) (x : M),
    x ∈ (fun i => (↑i).source) i ∩ (fun i => (↑i).source) j ∩ (fun i => (↑i).source) k →
      ∀ (v : E),
        ↑((fun i j x =>
                  fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
                    (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
                j k x)
            (↑((fun i j x =>
                    fderivWithin 𝕜
                      (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I)
                      (↑(LocalHomeomorph.extend (↑i) I) x))
                  i j x)
              v) =
          ↑((fun i j x =>
                  fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
                    (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
                i k x)
            v
[PROOFSTEP]
rintro i j k x ⟨⟨hxi, hxj⟩, hxk⟩ v
[GOAL]
case intro.intro
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ ↑((fun i j x =>
            fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
              (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
          j k x)
      (↑((fun i j x =>
              fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
                (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
            i j x)
        v) =
    ↑((fun i j x =>
            fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
              (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x))
          i k x)
      v
[PROOFSTEP]
rw [fderivWithin_fderivWithin, Filter.EventuallyEq.fderivWithin_eq]
[GOAL]
case intro.intro.hs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ (↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑j) I))) ∘
      ↑(LocalHomeomorph.extend (↑j) I) ∘
        ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) =ᶠ[𝓝[range ↑I] ↑(LocalHomeomorph.extend (↑i) I) x]
    ↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))
[PROOFSTEP]
have := i.1.extend_preimage_mem_nhds I hxi (j.1.extend_source_mem_nhds I hxj)
[GOAL]
case intro.intro.hs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
this :
  ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) ⁻¹' (LocalHomeomorph.extend (↑j) I).source ∈
    𝓝 (↑(LocalHomeomorph.extend (↑i) I) x)
⊢ (↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑j) I))) ∘
      ↑(LocalHomeomorph.extend (↑j) I) ∘
        ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) =ᶠ[𝓝[range ↑I] ↑(LocalHomeomorph.extend (↑i) I) x]
    ↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))
[PROOFSTEP]
filter_upwards [nhdsWithin_le_nhds this] with y hy
[GOAL]
case h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
this :
  ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) ⁻¹' (LocalHomeomorph.extend (↑j) I).source ∈
    𝓝 (↑(LocalHomeomorph.extend (↑i) I) x)
y : E
hy : y ∈ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) ⁻¹' (LocalHomeomorph.extend (↑j) I).source
⊢ ((↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑j) I))) ∘
        ↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
      y =
    (↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) y
[PROOFSTEP]
simp_rw [Function.comp_apply, (j.1.extend I).left_inv hy]
[GOAL]
case intro.intro.hx
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ ((↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑j) I))) ∘
        ↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
      (↑(LocalHomeomorph.extend (↑i) I) x) =
    (↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
      (↑(LocalHomeomorph.extend (↑i) I) x)
[PROOFSTEP]
simp_rw [Function.comp_apply, i.1.extend_left_inv I hxi, j.1.extend_left_inv I hxj]
[GOAL]
case intro.intro.hg
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ DifferentiableWithinAt 𝕜 (↑(LocalHomeomorph.extend (↑k) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑j) I)))
    (range ↑I) (↑(LocalHomeomorph.extend (↑j) I) x)
[PROOFSTEP]
exact
  (contDiffWithinAt_extend_coord_change' I (subset_maximalAtlas I k.2) (subset_maximalAtlas I j.2) hxk
        hxj).differentiableWithinAt
    le_top
[GOAL]
case intro.intro.hf
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ DifferentiableWithinAt 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
    (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x)
[PROOFSTEP]
exact
  (contDiffWithinAt_extend_coord_change' I (subset_maximalAtlas I j.2) (subset_maximalAtlas I i.2) hxj
        hxi).differentiableWithinAt
    le_top
[GOAL]
case intro.intro.h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ MapsTo (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I) (range ↑I)
[PROOFSTEP]
intro x _
[GOAL]
case intro.intro.h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x✝ : M
hxk : x✝ ∈ (fun i => (↑i).source) k
hxi : x✝ ∈ (fun i => (↑i).source) i
hxj : x✝ ∈ (fun i => (↑i).source) j
v x : E
a✝ : x ∈ range ↑I
⊢ (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) x ∈ range ↑I
[PROOFSTEP]
exact mem_range_self _
[GOAL]
case intro.intro.hxs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ UniqueDiffWithinAt 𝕜 (range ↑I) (↑(LocalHomeomorph.extend (↑i) I) x)
[PROOFSTEP]
exact I.unique_diff_at_image
[GOAL]
case intro.intro.hy
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j k : ↑(atlas H M)
x : M
hxk : x ∈ (fun i => (↑i).source) k
hxi : x ∈ (fun i => (↑i).source) i
hxj : x ∈ (fun i => (↑i).source) j
v : E
⊢ (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
      (↑(LocalHomeomorph.extend (↑i) I) x) =
    ↑(LocalHomeomorph.extend (↑j) I) x
[PROOFSTEP]
rw [Function.comp_apply, i.1.extend_left_inv I hxi]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p q : TM
⊢ p ∈ (chartAt (ModelProd H E) q).toLocalEquiv.source ↔ p.proj ∈ (chartAt H q.proj).toLocalEquiv.source
[PROOFSTEP]
simp only [FiberBundle.chartedSpace_chartAt, mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : H × E
q : TM
⊢ p ∈ (chartAt (ModelProd H E) q).toLocalEquiv.target ↔ p.fst ∈ (chartAt H q.proj).toLocalEquiv.target
[PROOFSTEP]
simp only [FiberBundle.chartedSpace_chartAt, mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : H × E
q : TM
⊢ p.fst ∈ (chartAt H q.proj).toLocalEquiv.target ∧
      (↑(LocalEquiv.symm (LocalEquiv.prod (chartAt H q.proj).toLocalEquiv (LocalEquiv.refl E))) p).fst ∈
        (chartAt H q.proj).toLocalEquiv.source ↔
    p.fst ∈ (chartAt H q.proj).toLocalEquiv.target
[PROOFSTEP]
rw [LocalEquiv.prod_symm]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : H × E
q : TM
⊢ p.fst ∈ (chartAt H q.proj).toLocalEquiv.target ∧
      (↑(LocalEquiv.prod (LocalEquiv.symm (chartAt H q.proj).toLocalEquiv) (LocalEquiv.symm (LocalEquiv.refl E)))
            p).fst ∈
        (chartAt H q.proj).toLocalEquiv.source ↔
    p.fst ∈ (chartAt H q.proj).toLocalEquiv.target
[PROOFSTEP]
simp (config := { contextual := true }) only [and_iff_left_iff_imp, mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' x : F
⊢ VectorBundleCore.coordChange (tangentBundleCore 𝓘(𝕜, F) F) (achart F b) (achart F b') x = 1
[PROOFSTEP]
simpa only [tangentBundleCore_coordChange, mfld_simps] using fderivWithin_id uniqueDiffWithinAt_univ
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ Trivialization.symmL 𝕜 (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b) b' = 1
[PROOFSTEP]
rw [TangentBundle.trivializationAt_symmL, coordChange_model_space]
[GOAL]
case hb
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ b' ∈ (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b).baseSet
[PROOFSTEP]
apply mem_univ
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ Trivialization.continuousLinearMapAt 𝕜 (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b) b' = 1
[PROOFSTEP]
rw [TangentBundle.trivializationAt_continuousLinearMapAt, coordChange_model_space]
[GOAL]
case hb
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ b' ∈ (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b).baseSet
[PROOFSTEP]
apply mem_univ
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
⊢ VectorBundleCore.IsSmooth (tangentBundleCore I M) I
[PROOFSTEP]
refine' ⟨fun i j => _⟩
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ SmoothOn I 𝓘(𝕜, E →L[𝕜] E) (VectorBundleCore.coordChange (tangentBundleCore I M) i j)
    (VectorBundleCore.baseSet (tangentBundleCore I M) i ∩ VectorBundleCore.baseSet (tangentBundleCore I M) j)
[PROOFSTEP]
rw [SmoothOn, contMDiffOn_iff_source_of_mem_maximalAtlas (subset_maximalAtlas I i.2), contMDiffOn_iff_contDiffOn]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ ContDiffOn 𝕜 ⊤
    (VectorBundleCore.coordChange (tangentBundleCore I M) i j ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)))
    (↑(LocalHomeomorph.extend (↑i) I) ''
      (VectorBundleCore.baseSet (tangentBundleCore I M) i ∩ VectorBundleCore.baseSet (tangentBundleCore I M) j))
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ VectorBundleCore.baseSet (tangentBundleCore I M) i ∩ VectorBundleCore.baseSet (tangentBundleCore I M) j ⊆ (↑i).source
[PROOFSTEP]
refine' ((contDiffOn_fderiv_coord_change I i j).congr fun x hx => _).mono _
[GOAL]
case refine'_1
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
x : E
hx : x ∈ (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
⊢ (VectorBundleCore.coordChange (tangentBundleCore I M) i j ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) x =
    fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I) x
[PROOFSTEP]
rw [LocalEquiv.trans_source'] at hx 
[GOAL]
case refine'_1
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
x : E
hx :
  x ∈
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)).source ∩
      ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)) ⁻¹'
        ((LocalEquiv.symm (LocalHomeomorph.extend (↑i) I)).target ∩ (LocalHomeomorph.extend (↑j) I).source)
⊢ (VectorBundleCore.coordChange (tangentBundleCore I M) i j ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) x =
    fderivWithin 𝕜 (↑(LocalHomeomorph.extend (↑j) I) ∘ ↑(LocalEquiv.symm (LocalHomeomorph.extend (↑i) I))) (range ↑I) x
[PROOFSTEP]
simp_rw [Function.comp_apply, tangentBundleCore_coordChange, (i.1.extend I).right_inv hx.1]
[GOAL]
case refine'_2
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ ↑(LocalHomeomorph.extend (↑i) I) ''
      (VectorBundleCore.baseSet (tangentBundleCore I M) i ∩ VectorBundleCore.baseSet (tangentBundleCore I M) j) ⊆
    (LocalEquiv.symm (LocalHomeomorph.extend (↑i) I) ≫ LocalHomeomorph.extend (↑j) I).source
[PROOFSTEP]
exact (i.1.extend_image_source_inter j.1 I).subset
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
i j : ↑(atlas H M)
⊢ VectorBundleCore.baseSet (tangentBundleCore I M) i ∩ VectorBundleCore.baseSet (tangentBundleCore I M) j ⊆ (↑i).source
[PROOFSTEP]
apply inter_subset_left
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ (chartAt (ModelProd H E) p).toLocalEquiv = Equiv.toLocalEquiv (TotalSpace.toProd H E)
[PROOFSTEP]
ext x : 1
[GOAL]
case h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p x : TangentBundle I H
⊢ ↑(chartAt (ModelProd H E) p).toLocalEquiv x = ↑(Equiv.toLocalEquiv (TotalSpace.toProd H E)) x
[PROOFSTEP]
ext
[GOAL]
case h.h₁
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p x : TangentBundle I H
⊢ (↑(chartAt (ModelProd H E) p).toLocalEquiv x).fst = (↑(Equiv.toLocalEquiv (TotalSpace.toProd H E)) x).fst
[PROOFSTEP]
rfl
[GOAL]
case h.h₂
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p x : TangentBundle I H
⊢ (↑(chartAt (ModelProd H E) p).toLocalEquiv x).snd = (↑(Equiv.toLocalEquiv (TotalSpace.toProd H E)) x).snd
[PROOFSTEP]
exact (tangentBundleCore I H).coordChange_self (achart _ x.1) x.1 (mem_achart_source H x.1) x.2
[GOAL]
case hsymm
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
x : ModelProd H E
⊢ ↑(LocalEquiv.symm (chartAt (ModelProd H E) p).toLocalEquiv) x =
    ↑(LocalEquiv.symm (Equiv.toLocalEquiv (TotalSpace.toProd H E))) x
[PROOFSTEP]
refine congr_arg (TotalSpace.mk _) ?_
[GOAL]
case hsymm
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
x : ModelProd H E
⊢ FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
      (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p.proj)
      (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
        (↑(LocalEquiv.symm
                (LocalHomeomorph.restrOpen (chartAt (ModelProd H E) (↑(chartAt (H × E) p) p))
                    (chartAt (H × E) p).toLocalEquiv.target
                    (_ : IsOpen (chartAt (H × E) p).toLocalEquiv.target)).toLocalEquiv)
            x).fst)
      (↑(LocalEquiv.symm
              (LocalHomeomorph.restrOpen (chartAt (ModelProd H E) (↑(chartAt (H × E) p) p))
                  (chartAt (H × E) p).toLocalEquiv.target
                  (_ : IsOpen (chartAt (H × E) p).toLocalEquiv.target)).toLocalEquiv)
          x).fst
      (↑(LocalEquiv.symm
              (LocalHomeomorph.restrOpen (chartAt (ModelProd H E) (↑(chartAt (H × E) p) p))
                  (chartAt (H × E) p).toLocalEquiv.target
                  (_ : IsOpen (chartAt (H × E) p).toLocalEquiv.target)).toLocalEquiv)
          x).snd =
    x.snd
[PROOFSTEP]
exact (tangentBundleCore I H).coordChange_self (achart _ x.1) x.1 (mem_achart_source H x.1) x.2
[GOAL]
case hs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ (chartAt (ModelProd H E) p).toLocalEquiv.source = (Equiv.toLocalEquiv (TotalSpace.toProd H E)).source
[PROOFSTEP]
simp_rw [TangentBundle.chartAt, FiberBundleCore.localTriv, FiberBundleCore.localTrivAsLocalEquiv,
  VectorBundleCore.toFiberBundleCore_baseSet, tangentBundleCore_baseSet]
[GOAL]
case hs
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ ({
            toLocalEquiv :=
              {
                toFun := fun p_1 =>
                  (p_1.proj,
                    FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                      (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                      (achart H p.proj) p_1.proj p_1.snd),
                invFun := fun p_1 =>
                  { proj := p_1.fst,
                    snd :=
                      FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                        (achart H p.proj)
                        (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                        p_1.fst p_1.snd },
                source :=
                  FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                    (↑(achart H p.proj)).source,
                target := (↑(achart H p.proj)).source ×ˢ univ,
                map_source' :=
                  (_ :
                    ∀ ⦃x : FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                      x ∈
                          FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                            (↑(achart H p.proj)).source →
                        (fun p_1 =>
                              (p_1.proj,
                                FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                  (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                    p_1.proj)
                                  (achart H p.proj) p_1.proj p_1.snd))
                            x ∈
                          (↑(achart H p.proj)).source ×ˢ univ),
                map_target' :=
                  (_ :
                    ∀ ⦃x : H × E⦄,
                      x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                        (fun p_1 =>
                              { proj := p_1.fst,
                                snd :=
                                  FiberBundleCore.coordChange
                                    (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                    (FiberBundleCore.indexAt
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                    p_1.fst p_1.snd })
                            x ∈
                          FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                            (↑(achart H p.proj)).source),
                left_inv' :=
                  (_ :
                    ∀ ⦃x : FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                      x ∈
                          FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                            (↑(achart H p.proj)).source →
                        (fun p_1 =>
                              { proj := p_1.fst,
                                snd :=
                                  FiberBundleCore.coordChange
                                    (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                    (FiberBundleCore.indexAt
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                    p_1.fst p_1.snd })
                            ((fun p_1 =>
                                (p_1.proj,
                                  FiberBundleCore.coordChange
                                    (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                    (FiberBundleCore.indexAt
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                    (achart H p.proj) p_1.proj p_1.snd))
                              x) =
                          x),
                right_inv' :=
                  (_ :
                    ∀ ⦃x : H × E⦄,
                      x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                        (fun p_1 =>
                              (p_1.proj,
                                FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                  (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                    p_1.proj)
                                  (achart H p.proj) p_1.proj p_1.snd))
                            ((fun p_1 =>
                                { proj := p_1.fst,
                                  snd :=
                                    FiberBundleCore.coordChange
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                      (FiberBundleCore.indexAt
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                      p_1.fst p_1.snd })
                              x) =
                          x) },
            open_source :=
              (_ :
                IsOpen
                  {
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }.source),
            open_target :=
              (_ :
                IsOpen
                  {
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }.target),
            continuous_toFun :=
              (_ :
                ContinuousOn
                  ↑{
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }
                  {
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }.source),
            continuous_invFun :=
              (_ :
                ContinuousOn
                  {
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }.invFun
                  {
                      toFun := fun p_1 =>
                        (p_1.proj,
                          FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                            (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              p_1.proj)
                            (achart H p.proj) p_1.proj p_1.snd),
                      invFun := fun p_1 =>
                        { proj := p_1.fst,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.fst)
                              p_1.fst p_1.snd },
                      source :=
                        FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                          (↑(achart H p.proj)).source,
                      target := (↑(achart H p.proj)).source ×ˢ univ,
                      map_source' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  x ∈
                                (↑(achart H p.proj)).source ×ˢ univ),
                      map_target' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source),
                      left_inv' :=
                        (_ :
                          ∀
                            ⦃x :
                              FiberBundleCore.TotalSpace (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))⦄,
                            x ∈
                                FiberBundleCore.proj (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) ⁻¹'
                                  (↑(achart H p.proj)).source →
                              (fun p_1 =>
                                    { proj := p_1.fst,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                          p_1.fst p_1.snd })
                                  ((fun p_1 =>
                                      (p_1.proj,
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                          (achart H p.proj) p_1.proj p_1.snd))
                                    x) =
                                x),
                      right_inv' :=
                        (_ :
                          ∀ ⦃x : H × E⦄,
                            x ∈ (↑(achart H p.proj)).source ×ˢ univ →
                              (fun p_1 =>
                                    (p_1.proj,
                                      FiberBundleCore.coordChange
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                        (FiberBundleCore.indexAt
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.proj)
                                        (achart H p.proj) p_1.proj p_1.snd))
                                  ((fun p_1 =>
                                      { proj := p_1.fst,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.fst)
                                            p_1.fst p_1.snd })
                                    x) =
                                x) }.target) } ≫ₕ
          LocalHomeomorph.prod (chartAt H p.proj) (LocalHomeomorph.refl E)).toLocalEquiv.source =
    (Equiv.toLocalEquiv (TotalSpace.toProd H E)).source
[PROOFSTEP]
simp only [mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ ↑(chartAt (ModelProd H E) p) = ↑(TotalSpace.toProd H E)
[PROOFSTEP]
rw [← LocalHomeomorph.coe_coe, tangentBundle_model_space_chartAt]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ ↑(Equiv.toLocalEquiv (TotalSpace.toProd H E)) = ↑(TotalSpace.toProd H E)
[PROOFSTEP]
rfl
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ ↑(LocalHomeomorph.symm (chartAt (ModelProd H E) p)) = ↑(TotalSpace.toProd H E).symm
[PROOFSTEP]
rw [← LocalHomeomorph.coe_coe, LocalHomeomorph.symm_toLocalEquiv, tangentBundle_model_space_chartAt]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : TangentBundle I H
⊢ ↑(LocalEquiv.symm (Equiv.toLocalEquiv (TotalSpace.toProd H E))) = ↑(TotalSpace.toProd H E).symm
[PROOFSTEP]
rfl
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x x' z : H
⊢ VectorBundleCore.coordChange (tangentBundleCore I H) (achart H x) (achart H x') z = ContinuousLinearMap.id 𝕜 E
[PROOFSTEP]
ext v
[GOAL]
case h
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x x' z : H
v : E
⊢ ↑(VectorBundleCore.coordChange (tangentBundleCore I H) (achart H x) (achart H x') z) v =
    ↑(ContinuousLinearMap.id 𝕜 E) v
[PROOFSTEP]
exact (tangentBundleCore I H).coordChange_self (achart _ z) z (mem_univ _) v
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.toFun
[PROOFSTEP]
let p : TangentBundle I H := ⟨I.symm (0 : E), (0 : E)⟩
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.toFun
[PROOFSTEP]
have : Continuous (chartAt (ModelProd H E) p) :=
  by
  rw [continuous_iff_continuousOn_univ]
  convert (chartAt (ModelProd H E) p).continuousOn
  simp only [TangentSpace.fiberBundle, mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ Continuous ↑(chartAt (ModelProd H E) p)
[PROOFSTEP]
rw [continuous_iff_continuousOn_univ]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ ContinuousOn (↑(chartAt (ModelProd H E) p)) univ
[PROOFSTEP]
convert (chartAt (ModelProd H E) p).continuousOn
[GOAL]
case h.e'_6
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ univ = (chartAt (ModelProd H E) p).toLocalEquiv.source
[PROOFSTEP]
simp only [TangentSpace.fiberBundle, mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
this : Continuous ↑(chartAt (ModelProd H E) p)
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.toFun
[PROOFSTEP]
simpa only [mfld_simps] using this
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.invFun
[PROOFSTEP]
let p : TangentBundle I H := ⟨I.symm (0 : E), (0 : E)⟩
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.invFun
[PROOFSTEP]
have : Continuous (chartAt (ModelProd H E) p).symm :=
  by
  rw [continuous_iff_continuousOn_univ]
  convert (chartAt (ModelProd H E) p).symm.continuousOn
  simp only [mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ Continuous ↑(LocalHomeomorph.symm (chartAt (ModelProd H E) p))
[PROOFSTEP]
rw [continuous_iff_continuousOn_univ]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ ContinuousOn (↑(LocalHomeomorph.symm (chartAt (ModelProd H E) p))) univ
[PROOFSTEP]
convert (chartAt (ModelProd H E) p).symm.continuousOn
[GOAL]
case h.e'_6
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
⊢ univ = (LocalHomeomorph.symm (chartAt (ModelProd H E) p)).toLocalEquiv.source
[PROOFSTEP]
simp only [mfld_simps]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
src✝ : (TotalSpace E fun x => E) ≃ H × E := TotalSpace.toProd H E
p : TangentBundle I H := { proj := ↑(ModelWithCorners.symm I) 0, snd := 0 }
this : Continuous ↑(LocalHomeomorph.symm (chartAt (ModelProd H E) p))
⊢ Continuous
    { toFun := src✝.toFun, invFun := src✝.invFun, left_inv := (_ : Function.LeftInverse src✝.invFun src✝.toFun),
        right_inv := (_ : Function.RightInverse src✝.invFun src✝.toFun) }.invFun
[PROOFSTEP]
simpa only [mfld_simps] using this
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ inCoordinates E (TangentSpace I) E' (TangentSpace I') x₀ x y₀ y ϕ = ϕ
[PROOFSTEP]
erw [VectorBundleCore.inCoordinates_eq]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ comp
      (VectorBundleCore.coordChange (tangentBundleCore I' H') (VectorBundleCore.indexAt (tangentBundleCore I' H') y)
        (VectorBundleCore.indexAt (tangentBundleCore I' H') y₀) y)
      (comp ϕ
        (VectorBundleCore.coordChange (tangentBundleCore I H) (VectorBundleCore.indexAt (tangentBundleCore I H) x₀)
          (VectorBundleCore.indexAt (tangentBundleCore I H) x) x)) =
    ϕ
[PROOFSTEP]
try trivial
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ comp
      (VectorBundleCore.coordChange (tangentBundleCore I' H') (VectorBundleCore.indexAt (tangentBundleCore I' H') y)
        (VectorBundleCore.indexAt (tangentBundleCore I' H') y₀) y)
      (comp ϕ
        (VectorBundleCore.coordChange (tangentBundleCore I H) (VectorBundleCore.indexAt (tangentBundleCore I H) x₀)
          (VectorBundleCore.indexAt (tangentBundleCore I H) x) x)) =
    ϕ
[PROOFSTEP]
trivial
[GOAL]
case hx
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ x ∈ VectorBundleCore.baseSet (tangentBundleCore I H) (VectorBundleCore.indexAt (tangentBundleCore I H) x₀)
[PROOFSTEP]
try trivial
[GOAL]
case hx
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ x ∈ VectorBundleCore.baseSet (tangentBundleCore I H) (VectorBundleCore.indexAt (tangentBundleCore I H) x₀)
[PROOFSTEP]
trivial
[GOAL]
case hy
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ y ∈ VectorBundleCore.baseSet (tangentBundleCore I' H') (VectorBundleCore.indexAt (tangentBundleCore I' H') y₀)
[PROOFSTEP]
try trivial
[GOAL]
case hy
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ y ∈ VectorBundleCore.baseSet (tangentBundleCore I' H') (VectorBundleCore.indexAt (tangentBundleCore I' H') y₀)
[PROOFSTEP]
trivial
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
x₀ x : H
y₀ y : H'
ϕ : E →L[𝕜] E'
⊢ comp
      (VectorBundleCore.coordChange (tangentBundleCore I' H') (VectorBundleCore.indexAt (tangentBundleCore I' H') y)
        (VectorBundleCore.indexAt (tangentBundleCore I' H') y₀) y)
      (comp ϕ
        (VectorBundleCore.coordChange (tangentBundleCore I H) (VectorBundleCore.indexAt (tangentBundleCore I H) x₀)
          (VectorBundleCore.indexAt (tangentBundleCore I H) x) x)) =
    ϕ
[PROOFSTEP]
simp_rw [tangentBundleCore_indexAt, tangentBundleCore_coordChange_model_space, ContinuousLinearMap.id_comp,
  ContinuousLinearMap.comp_id]
[GOAL]
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
N : Type u_9
f : N → H
g : N → H'
ϕ : N → E →L[𝕜] E'
x₀ : N
⊢ inTangentCoordinates I I' f g ϕ x₀ = ϕ
[PROOFSTEP]
simp_rw [inTangentCoordinates, inCoordinates_tangent_bundle_core_model_space]
[GOAL]
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
H : Type u_2
inst✝³ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : SmoothManifoldWithCorners I M
x : M
⊢ PathConnectedSpace (TangentSpace I x)
[PROOFSTEP]
unfold TangentSpace
[GOAL]
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
H : Type u_2
inst✝³ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : SmoothManifoldWithCorners I M
x : M
⊢ PathConnectedSpace E
[PROOFSTEP]
infer_instance
