/-- In the tangent bundle to the model space, the charts are just the canonical identification
between a product type and a sigma type, a.k.a. `TotalSpace.toProd`. -/
@[simp, mfld_simps]
theorem tangentBundle_model_space_chartAt (p : TangentBundle I H) :
    (chartAt (ModelProd H E) p).toPartialEquiv = (TotalSpace.toProd H E).toPartialEquiv := by
  ext x : 1
  · ext; · rfl
    exact (tangentBundleCore I H).coordChange_self (achart _ x.1) x.1 (mem_achart_source H x.1) x.2
  · -- porting note: was ext; · rfl; apply hEq_of_eq
    refine congr_arg (TotalSpace.mk _) ?_
    exact (tangentBundleCore I H).coordChange_self (achart _ x.1) x.1 (mem_achart_source H x.1) x.2
  simp_rw [TangentBundle.chartAt, FiberBundleCore.localTriv,
    FiberBundleCore.localTrivAsPartialEquiv, VectorBundleCore.toFiberBundleCore_baseSet,
    tangentBundleCore_baseSet]
  

Proof state:
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
⊢ ({
            toPartialEquiv :=
              {
                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.1,
                    snd :=
                      FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                        (achart H p.proj)
                        (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                        p_1.1 p_1.2 },
                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.1,
                                snd :=
                                  FiberBundleCore.coordChange
                                    (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                    (FiberBundleCore.indexAt
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                    p_1.1 p_1.2 })
                            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.1,
                                snd :=
                                  FiberBundleCore.coordChange
                                    (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                    (FiberBundleCore.indexAt
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                    p_1.1 p_1.2 })
                            ((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.1,
                                  snd :=
                                    FiberBundleCore.coordChange
                                      (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                      (FiberBundleCore.indexAt
                                        (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                      p_1.1 p_1.2 })
                              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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    x) =
                                x) }.target),
            continuousOn_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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    x) =
                                x) }.source),
            continuousOn_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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    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.1,
                          snd :=
                            FiberBundleCore.coordChange (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                              (achart H p.proj)
                              (FiberBundleCore.indexAt (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                p_1.1)
                              p_1.1 p_1.2 },
                      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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  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.1,
                                      snd :=
                                        FiberBundleCore.coordChange
                                          (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) (achart H p.proj)
                                          (FiberBundleCore.indexAt
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                          p_1.1 p_1.2 })
                                  ((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.1,
                                        snd :=
                                          FiberBundleCore.coordChange
                                            (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H))
                                            (achart H p.proj)
                                            (FiberBundleCore.indexAt
                                              (VectorBundleCore.toFiberBundleCore (tangentBundleCore I H)) p_1.1)
                                            p_1.1 p_1.2 })
                                    x) =
                                x) }.target) } ≫ₕ
          PartialHomeomorph.prod (chartAt H p.proj) (PartialHomeomorph.refl E)).toPartialEquiv.source =
    (Equiv.toPartialEquiv (TotalSpace.toProd H E)).source

Next tactic:
simp only [mfld_simps]