Theorem: smoothOn_continuousLinearMapCoordChange
File: Mathlib/Geometry/Manifold/VectorBundle/Hom.lean

Proof steps:
state_before: 𝕜 : Type u_1
B : Type u_2
F₁ : Type u_3
F₂ : Type u_4
M : Type u_5
E₁ : B → Type u_6
E₂ : B → Type u_7
inst✝³⁵ : NontriviallyNormedField 𝕜
inst✝³⁴ : (x : B) → AddCommGroup (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✝²⁸ : (x : B) → AddCommGroup (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✝²² : ∀ (x : B), TopologicalAddGroup (E₂ x)
inst✝²¹ : ∀ (x : B), ContinuousSMul 𝕜 (E₂ x)
EB : Type u_8
inst✝²⁰ : NormedAddCommGroup EB
inst✝¹⁹ : NormedSpace 𝕜 EB
HB : Type u_9
inst✝¹⁸ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : ChartedSpace HB B
EM : Type u_10
inst✝¹⁵ : NormedAddCommGroup EM
inst✝¹⁴ : NormedSpace 𝕜 EM
HM : Type u_11
inst✝¹³ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹² : TopologicalSpace M
inst✝¹¹ : ChartedSpace HM M
inst✝¹⁰ : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁹ : FiberBundle F₁ E₁
inst✝⁸ : VectorBundle 𝕜 F₁ E₁
inst✝⁷ : FiberBundle F₂ E₂
inst✝⁶ : VectorBundle 𝕜 F₂ E₂
e₁ e₁' : Trivialization F₁ TotalSpace.proj
e₂ e₂' : Trivialization F₂ TotalSpace.proj
inst✝⁵ : SmoothVectorBundle F₁ E₁ IB
inst✝⁴ : SmoothVectorBundle F₂ E₂ IB
inst✝³ : MemTrivializationAtlas e₁
inst✝² : MemTrivializationAtlas e₁'
inst✝¹ : MemTrivializationAtlas e₂
inst✝ : MemTrivializationAtlas e₂'
⊢ SmoothOn IB 𝓘(𝕜, (F₁ →L[𝕜] F₂) →L[𝕜] F₁ →L[𝕜] F₂) (continuousLinearMapCoordChange (RingHom.id 𝕜) e₁ e₁' e₂ e₂')
    (e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet))
state_after: 𝕜 : Type u_1
B : Type u_2
F₁ : Type u_3
F₂ : Type u_4
M : Type u_5
E₁ : B → Type u_6
E₂ : B → Type u_7
inst✝³⁵ : NontriviallyNormedField 𝕜
inst✝³⁴ : (x : B) → AddCommGroup (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✝²⁸ : (x : B) → AddCommGroup (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✝²² : ∀ (x : B), TopologicalAddGroup (E₂ x)
inst✝²¹ : ∀ (x : B), ContinuousSMul 𝕜 (E₂ x)
EB : Type u_8
inst✝²⁰ : NormedAddCommGroup EB
inst✝¹⁹ : NormedSpace 𝕜 EB
HB : Type u_9
inst✝¹⁸ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : ChartedSpace HB B
EM : Type u_10
inst✝¹⁵ : NormedAddCommGroup EM
inst✝¹⁴ : NormedSpace 𝕜 EM
HM : Type u_11
inst✝¹³ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹² : TopologicalSpace M
inst✝¹¹ : ChartedSpace HM M
inst✝¹⁰ : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁹ : FiberBundle F₁ E₁
inst✝⁸ : VectorBundle 𝕜 F₁ E₁
inst✝⁷ : FiberBundle F₂ E₂
inst✝⁶ : VectorBundle 𝕜 F₂ E₂
e₁ e₁' : Trivialization F₁ TotalSpace.proj
e₂ e₂' : Trivialization F₂ TotalSpace.proj
inst✝⁵ : SmoothVectorBundle F₁ E₁ IB
inst✝⁴ : SmoothVectorBundle F₂ E₂ IB
inst✝³ : MemTrivializationAtlas e₁
inst✝² : MemTrivializationAtlas e₁'
inst✝¹ : MemTrivializationAtlas e₂
inst✝ : MemTrivializationAtlas e₂'
h₁ : SmoothOn IB 𝓘(𝕜, F₁ →L[𝕜] F₁) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₁' e₁ b)) (e₁'.baseSet ∩ e₁.baseSet)
⊢ SmoothOn IB 𝓘(𝕜, (F₁ →L[𝕜] F₂) →L[𝕜] F₁ →L[𝕜] F₂) (continuousLinearMapCoordChange (RingHom.id 𝕜) e₁ e₁' e₂ e₂')
    (e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet))
tactic: have h₁ := smoothOn_coordChangeL IB e₁' e₁
state_before: 𝕜 : Type u_1
B : Type u_2
F₁ : Type u_3
F₂ : Type u_4
M : Type u_5
E₁ : B → Type u_6
E₂ : B → Type u_7
inst✝³⁵ : NontriviallyNormedField 𝕜
inst✝³⁴ : (x : B) → AddCommGroup (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✝²⁸ : (x : B) → AddCommGroup (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✝²² : ∀ (x : B), TopologicalAddGroup (E₂ x)
inst✝²¹ : ∀ (x : B), ContinuousSMul 𝕜 (E₂ x)
EB : Type u_8
inst✝²⁰ : NormedAddCommGroup EB
inst✝¹⁹ : NormedSpace 𝕜 EB
HB : Type u_9
inst✝¹⁸ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : ChartedSpace HB B
EM : Type u_10
inst✝¹⁵ : NormedAddCommGroup EM
inst✝¹⁴ : NormedSpace 𝕜 EM
HM : Type u_11
inst✝¹³ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹² : TopologicalSpace M
inst✝¹¹ : ChartedSpace HM M
inst✝¹⁰ : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁹ : FiberBundle F₁ E₁
inst✝⁸ : VectorBundle 𝕜 F₁ E₁
inst✝⁷ : FiberBundle F₂ E₂
inst✝⁶ : VectorBundle 𝕜 F₂ E₂
e₁ e₁' : Trivialization F₁ TotalSpace.proj
e₂ e₂' : Trivialization F₂ TotalSpace.proj
inst✝⁵ : SmoothVectorBundle F₁ E₁ IB
inst✝⁴ : SmoothVectorBundle F₂ E₂ IB
inst✝³ : MemTrivializationAtlas e₁
inst✝² : MemTrivializationAtlas e₁'
inst✝¹ : MemTrivializationAtlas e₂
inst✝ : MemTrivializationAtlas e₂'
h₁ : SmoothOn IB 𝓘(𝕜, F₁ →L[𝕜] F₁) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₁' e₁ b)) (e₁'.baseSet ∩ e₁.baseSet)
⊢ SmoothOn IB 𝓘(𝕜, (F₁ →L[𝕜] F₂) →L[𝕜] F₁ →L[𝕜] F₂) (continuousLinearMapCoordChange (RingHom.id 𝕜) e₁ e₁' e₂ e₂')
    (e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet))
state_after: 𝕜 : Type u_1
B : Type u_2
F₁ : Type u_3
F₂ : Type u_4
M : Type u_5
E₁ : B → Type u_6
E₂ : B → Type u_7
inst✝³⁵ : NontriviallyNormedField 𝕜
inst✝³⁴ : (x : B) → AddCommGroup (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✝²⁸ : (x : B) → AddCommGroup (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✝²² : ∀ (x : B), TopologicalAddGroup (E₂ x)
inst✝²¹ : ∀ (x : B), ContinuousSMul 𝕜 (E₂ x)
EB : Type u_8
inst✝²⁰ : NormedAddCommGroup EB
inst✝¹⁹ : NormedSpace 𝕜 EB
HB : Type u_9
inst✝¹⁸ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : ChartedSpace HB B
EM : Type u_10
inst✝¹⁵ : NormedAddCommGroup EM
inst✝¹⁴ : NormedSpace 𝕜 EM
HM : Type u_11
inst✝¹³ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹² : TopologicalSpace M
inst✝¹¹ : ChartedSpace HM M
inst✝¹⁰ : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁹ : FiberBundle F₁ E₁
inst✝⁸ : VectorBundle 𝕜 F₁ E₁
inst✝⁷ : FiberBundle F₂ E₂
inst✝⁶ : VectorBundle 𝕜 F₂ E₂
e₁ e₁' : Trivialization F₁ TotalSpace.proj
e₂ e₂' : Trivialization F₂ TotalSpace.proj
inst✝⁵ : SmoothVectorBundle F₁ E₁ IB
inst✝⁴ : SmoothVectorBundle F₂ E₂ IB
inst✝³ : MemTrivializationAtlas e₁
inst✝² : MemTrivializationAtlas e₁'
inst✝¹ : MemTrivializationAtlas e₂
inst✝ : MemTrivializationAtlas e₂'
h₁ : SmoothOn IB 𝓘(𝕜, F₁ →L[𝕜] F₁) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₁' e₁ b)) (e₁'.baseSet ∩ e₁.baseSet)
h₂ : SmoothOn IB 𝓘(𝕜, F₂ →L[𝕜] F₂) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₂ e₂' b)) (e₂.baseSet ∩ e₂'.baseSet)
⊢ SmoothOn IB 𝓘(𝕜, (F₁ →L[𝕜] F₂) →L[𝕜] F₁ →L[𝕜] F₂) (continuousLinearMapCoordChange (RingHom.id 𝕜) e₁ e₁' e₂ e₂')
    (e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet))
tactic: have h₂ := smoothOn_coordChangeL IB e₂ e₂'
state_before: 𝕜 : Type u_1
B : Type u_2
F₁ : Type u_3
F₂ : Type u_4
M : Type u_5
E₁ : B → Type u_6
E₂ : B → Type u_7
inst✝³⁵ : NontriviallyNormedField 𝕜
inst✝³⁴ : (x : B) → AddCommGroup (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✝²⁸ : (x : B) → AddCommGroup (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✝²² : ∀ (x : B), TopologicalAddGroup (E₂ x)
inst✝²¹ : ∀ (x : B), ContinuousSMul 𝕜 (E₂ x)
EB : Type u_8
inst✝²⁰ : NormedAddCommGroup EB
inst✝¹⁹ : NormedSpace 𝕜 EB
HB : Type u_9
inst✝¹⁸ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁷ : TopologicalSpace B
inst✝¹⁶ : ChartedSpace HB B
EM : Type u_10
inst✝¹⁵ : NormedAddCommGroup EM
inst✝¹⁴ : NormedSpace 𝕜 EM
HM : Type u_11
inst✝¹³ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹² : TopologicalSpace M
inst✝¹¹ : ChartedSpace HM M
inst✝¹⁰ : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝⁹ : FiberBundle F₁ E₁
inst✝⁸ : VectorBundle 𝕜 F₁ E₁
inst✝⁷ : FiberBundle F₂ E₂
inst✝⁶ : VectorBundle 𝕜 F₂ E₂
e₁ e₁' : Trivialization F₁ TotalSpace.proj
e₂ e₂' : Trivialization F₂ TotalSpace.proj
inst✝⁵ : SmoothVectorBundle F₁ E₁ IB
inst✝⁴ : SmoothVectorBundle F₂ E₂ IB
inst✝³ : MemTrivializationAtlas e₁
inst✝² : MemTrivializationAtlas e₁'
inst✝¹ : MemTrivializationAtlas e₂
inst✝ : MemTrivializationAtlas e₂'
h₁ : SmoothOn IB 𝓘(𝕜, F₁ →L[𝕜] F₁) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₁' e₁ b)) (e₁'.baseSet ∩ e₁.baseSet)
h₂ : SmoothOn IB 𝓘(𝕜, F₂ →L[𝕜] F₂) (fun b => ↑(Trivialization.coordChangeL 𝕜 e₂ e₂' b)) (e₂.baseSet ∩ e₂'.baseSet)
⊢ SmoothOn IB 𝓘(𝕜, (F₁ →L[𝕜] F₂) →L[𝕜] F₁ →L[𝕜] F₂) (continuousLinearMapCoordChange (RingHom.id 𝕜) e₁ e₁' e₂ e₂')
    (e₁.baseSet ∩ e₂.baseSet ∩ (e₁'.baseSet ∩ e₂'.baseSet))
state_after: no goals
tactic: refine (h₁.mono ?_).cle_arrowCongr (h₂.mono ?_) <;> mfld_set_tac