l3lab/ntp-mathlib huggingface dataset:
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · 

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_1
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ ContMDiffOn IB 𝓘(𝕜, F₁ →L[𝕜] F₁) ⊤ (fun y => ↑(Trivialization.coordChangeL 𝕜 e₁ e₁' y))
    ((Trivialization.prod e₁ e₂).baseSet ∩ (Trivialization.prod e₁' e₂').baseSet)

Next tactic:
refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
      

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_1
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ (Trivialization.prod e₁ e₂).baseSet ∩ (Trivialization.prod e₁' e₂').baseSet ⊆ e₁.baseSet ∩ e₁'.baseSet

Next tactic:
simp only [Trivialization.baseSet_prod, mfld_simps]
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
      simp only [Trivialization.baseSet_prod, mfld_simps]
      

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_1
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet) ⊆ e₁.baseSet ∩ e₁'.baseSet

Next tactic:
mfld_set_tac
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
      simp only [Trivialization.baseSet_prod, mfld_simps]
      mfld_set_tac
    · 

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_2
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ ContMDiffOn IB 𝓘(𝕜, F₂ →L[𝕜] F₂) ⊤ (fun y => ↑(Trivialization.coordChangeL 𝕜 e₂ e₂' y))
    ((Trivialization.prod e₁ e₂).baseSet ∩ (Trivialization.prod e₁' e₂').baseSet)

Next tactic:
refine' (smoothOn_coordChangeL IB e₂ e₂').mono _
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
      simp only [Trivialization.baseSet_prod, mfld_simps]
      mfld_set_tac
    · refine' (smoothOn_coordChangeL IB e₂ e₂').mono _
      

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_2
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ (Trivialization.prod e₁ e₂).baseSet ∩ (Trivialization.prod e₁' e₂').baseSet ⊆ e₂.baseSet ∩ e₂'.baseSet

Next tactic:
simp only [Trivialization.baseSet_prod, mfld_simps]
/-- The direct sum of two smooth vector bundles over the same base is a smooth vector bundle. -/
instance Bundle.Prod.smoothVectorBundle : SmoothVectorBundle (F₁ × F₂) (E₁ ×ᵇ E₂) IB where
  smoothOn_coordChangeL := by
    rintro _ _ ⟨e₁, e₂, i₁, i₂, rfl⟩ ⟨e₁', e₂', i₁', i₂', rfl⟩
    rw [SmoothOn]
    refine' ContMDiffOn.congr _ (e₁.coordChangeL_prod 𝕜 e₁' e₂ e₂')
    refine' ContMDiffOn.clm_prodMap _ _
    · refine' (smoothOn_coordChangeL IB e₁ e₁').mono _
      simp only [Trivialization.baseSet_prod, mfld_simps]
      mfld_set_tac
    · refine' (smoothOn_coordChangeL IB e₂ e₂').mono _
      simp only [Trivialization.baseSet_prod, mfld_simps]
      

Proof state:
case mk.intro.intro.intro.intro.mk.intro.intro.intro.intro.refine'_2
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝³⁸ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝³⁷ : NormedAddCommGroup EB
inst✝³⁶ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝³⁵ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝³⁴ : TopologicalSpace B
inst✝³³ : ChartedSpace HB B
inst✝³² : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝³¹ : NormedAddCommGroup EM
inst✝³⁰ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝²⁹ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝²⁶ : (x : B) → AddCommMonoid (E x)
inst✝²⁵ : (x : B) → Module 𝕜 (E x)
inst✝²⁴ : NormedAddCommGroup F
inst✝²³ : NormedSpace 𝕜 F
inst✝²² : TopologicalSpace (TotalSpace F E)
inst✝²¹ : (x : B) → TopologicalSpace (E x)
inst✝²⁰ : FiberBundle F E
inst✝¹⁹ : VectorBundle 𝕜 F E
inst✝¹⁸ : SmoothVectorBundle F E IB
F₁ : Type u_11
inst✝¹⁷ : NormedAddCommGroup F₁
inst✝¹⁶ : NormedSpace 𝕜 F₁
E₁ : B → Type u_12
inst✝¹⁵ : TopologicalSpace (TotalSpace F₁ E₁)
inst✝¹⁴ : (x : B) → AddCommMonoid (E₁ x)
inst✝¹³ : (x : B) → Module 𝕜 (E₁ x)
F₂ : Type u_13
inst✝¹² : NormedAddCommGroup F₂
inst✝¹¹ : NormedSpace 𝕜 F₂
E₂ : B → Type u_14
inst✝¹⁰ : TopologicalSpace (TotalSpace F₂ E₂)
inst✝⁹ : (x : B) → AddCommMonoid (E₂ x)
inst✝⁸ : (x : B) → Module 𝕜 (E₂ x)
inst✝⁷ : (x : B) → TopologicalSpace (E₁ x)
inst✝⁶ : (x : B) → TopologicalSpace (E₂ x)
inst✝⁵ : FiberBundle F₁ E₁
inst✝⁴ : FiberBundle F₂ E₂
inst✝³ : VectorBundle 𝕜 F₁ E₁
inst✝² : VectorBundle 𝕜 F₂ E₂
inst✝¹ : SmoothVectorBundle F₁ E₁ IB
inst✝ : SmoothVectorBundle F₂ E₂ IB
e₁ : Trivialization F₁ TotalSpace.proj
e₂ : Trivialization F₂ TotalSpace.proj
i₁ : MemTrivializationAtlas e₁
i₂ : MemTrivializationAtlas e₂
e₁' : Trivialization F₁ TotalSpace.proj
e₂' : Trivialization F₂ TotalSpace.proj
i₁' : MemTrivializationAtlas e₁'
i₂' : MemTrivializationAtlas e₂'
⊢ e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet) ⊆ e₂.baseSet ∩ e₂'.baseSet

Next tactic:
mfld_set_tac
theorem mk_smoothCoordChange (he : e ∈ a.pretrivializationAtlas)
    (he' : e' ∈ a.pretrivializationAtlas) {b : B} (hb : b ∈ e.baseSet ∩ e'.baseSet) (v : F) :
    (b, a.smoothCoordChange IB he he' b v) = e' ⟨b, e.symm b v⟩ := by
  

Proof state:
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝¹⁵ : NormedAddCommGroup EB
inst✝¹⁴ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝¹³ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹² : TopologicalSpace B
inst✝¹¹ : ChartedSpace HB B
inst✝¹⁰ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝⁹ : NormedAddCommGroup EM
inst✝⁸ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝⁷ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁴ : (x : B) → AddCommMonoid (E x)
inst✝³ : (x : B) → Module 𝕜 (E x)
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle 𝕜 F E
ha : IsSmooth IB a
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (smoothCoordChange IB a he he' b) v) = ↑e' { proj := b, snd := Pretrivialization.symm e b v }

Next tactic:
ext
theorem mk_smoothCoordChange (he : e ∈ a.pretrivializationAtlas)
    (he' : e' ∈ a.pretrivializationAtlas) {b : B} (hb : b ∈ e.baseSet ∩ e'.baseSet) (v : F) :
    (b, a.smoothCoordChange IB he he' b v) = e' ⟨b, e.symm b v⟩ := by
  ext
  · 

Proof state:
case a
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝¹⁵ : NormedAddCommGroup EB
inst✝¹⁴ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝¹³ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹² : TopologicalSpace B
inst✝¹¹ : ChartedSpace HB B
inst✝¹⁰ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝⁹ : NormedAddCommGroup EM
inst✝⁸ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝⁷ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁴ : (x : B) → AddCommMonoid (E x)
inst✝³ : (x : B) → Module 𝕜 (E x)
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle 𝕜 F E
ha : IsSmooth IB a
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (smoothCoordChange IB a he he' b) v).1 = (↑e' { proj := b, snd := Pretrivialization.symm e b v }).1

Next tactic:
rw [e.mk_symm hb.1 v, e'.coe_fst', e.proj_symm_apply' hb.1]
theorem mk_smoothCoordChange (he : e ∈ a.pretrivializationAtlas)
    (he' : e' ∈ a.pretrivializationAtlas) {b : B} (hb : b ∈ e.baseSet ∩ e'.baseSet) (v : F) :
    (b, a.smoothCoordChange IB he he' b v) = e' ⟨b, e.symm b v⟩ := by
  ext
  · rw [e.mk_symm hb.1 v, e'.coe_fst', e.proj_symm_apply' hb.1]
    

Proof state:
case a
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝¹⁵ : NormedAddCommGroup EB
inst✝¹⁴ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝¹³ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹² : TopologicalSpace B
inst✝¹¹ : ChartedSpace HB B
inst✝¹⁰ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝⁹ : NormedAddCommGroup EM
inst✝⁸ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝⁷ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁴ : (x : B) → AddCommMonoid (E x)
inst✝³ : (x : B) → Module 𝕜 (E x)
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle 𝕜 F E
ha : IsSmooth IB a
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (↑(PartialEquiv.symm e.toPartialEquiv) (b, v)).proj ∈ e'.baseSet

Next tactic:
rw [e.proj_symm_apply' hb.1]
theorem mk_smoothCoordChange (he : e ∈ a.pretrivializationAtlas)
    (he' : e' ∈ a.pretrivializationAtlas) {b : B} (hb : b ∈ e.baseSet ∩ e'.baseSet) (v : F) :
    (b, a.smoothCoordChange IB he he' b v) = e' ⟨b, e.symm b v⟩ := by
  ext
  · rw [e.mk_symm hb.1 v, e'.coe_fst', e.proj_symm_apply' hb.1]
    rw [e.proj_symm_apply' hb.1]; 

Proof state:
case a
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝¹⁵ : NormedAddCommGroup EB
inst✝¹⁴ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝¹³ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹² : TopologicalSpace B
inst✝¹¹ : ChartedSpace HB B
inst✝¹⁰ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝⁹ : NormedAddCommGroup EM
inst✝⁸ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝⁷ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁴ : (x : B) → AddCommMonoid (E x)
inst✝³ : (x : B) → Module 𝕜 (E x)
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle 𝕜 F E
ha : IsSmooth IB a
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ b ∈ e'.baseSet

Next tactic:
exact hb.2
theorem mk_smoothCoordChange (he : e ∈ a.pretrivializationAtlas)
    (he' : e' ∈ a.pretrivializationAtlas) {b : B} (hb : b ∈ e.baseSet ∩ e'.baseSet) (v : F) :
    (b, a.smoothCoordChange IB he he' b v) = e' ⟨b, e.symm b v⟩ := by
  ext
  · rw [e.mk_symm hb.1 v, e'.coe_fst', e.proj_symm_apply' hb.1]
    rw [e.proj_symm_apply' hb.1]; exact hb.2
  · 

Proof state:
case a
𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝¹⁵ : NormedAddCommGroup EB
inst✝¹⁴ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝¹³ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹² : TopologicalSpace B
inst✝¹¹ : ChartedSpace HB B
inst✝¹⁰ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝⁹ : NormedAddCommGroup EM
inst✝⁸ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝⁷ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁴ : (x : B) → AddCommMonoid (E x)
inst✝³ : (x : B) → Module 𝕜 (E x)
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle 𝕜 F E
ha : IsSmooth IB a
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (smoothCoordChange IB a he he' b) v).2 = (↑e' { proj := b, snd := Pretrivialization.symm e b v }).2

Next tactic:
exact a.smoothCoordChange_apply he he' hb v