Theorem: ContinuousLinearMap.isOpen_injective
File: Mathlib/Analysis/Normed/Module/FiniteDimension.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
⊢ IsOpen {L | Injective ⇑L}
state_after: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
⊢ ∀ x ∈ {L | Injective ⇑L}, ∀ᶠ (y : E →L[𝕜] F) in 𝓝 x, y ∈ {L | Injective ⇑L}
tactic: rw [isOpen_iff_eventually]
state_before: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
⊢ ∀ x ∈ {L | Injective ⇑L}, ∀ᶠ (y : E →L[𝕜] F) in 𝓝 x, y ∈ {L | Injective ⇑L}
state_after: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
tactic: rintro φ₀ hφ₀
state_before: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
state_after: case intro.intro
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
tactic: rcases φ₀.injective_iff_antilipschitz.mp hφ₀ with ⟨K, K_pos, H⟩
state_before: case intro.intro
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
state_after: case intro.intro
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
tactic: have : ∀ᶠ φ in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹ := eventually_nnnorm_sub_lt _ <| inv_pos_of_pos K_pos
state_before: case intro.intro
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
⊢ ∀ᶠ (y : E →L[𝕜] F) in 𝓝 φ₀, y ∈ {L | Injective ⇑L}
state_after: case h
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
φ : E →L[𝕜] F
hφ : ‖φ - φ₀‖₊ < K⁻¹
⊢ Injective ⇑φ
tactic: filter_upwards [this] with φ hφ
state_before: case h
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
φ : E →L[𝕜] F
hφ : ‖φ - φ₀‖₊ < K⁻¹
⊢ Injective ⇑φ
state_after: case h
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
φ : E →L[𝕜] F
hφ : ‖φ - φ₀‖₊ < K⁻¹
⊢ ∃ K > 0, AntilipschitzWith K ⇑↑φ
tactic: apply φ.injective_iff_antilipschitz.mpr
state_before: case h
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
φ₀ : E →L[𝕜] F
hφ₀ : φ₀ ∈ {L | Injective ⇑L}
K : ℝ≥0
K_pos : K > 0
H : AntilipschitzWith K ⇑↑φ₀
this : ∀ᶠ (φ : E →L[𝕜] F) in 𝓝 φ₀, ‖φ - φ₀‖₊ < K⁻¹
φ : E →L[𝕜] F
hφ : ‖φ - φ₀‖₊ < K⁻¹
⊢ ∃ K > 0, AntilipschitzWith K ⇑↑φ
state_after: no goals
tactic: exact ⟨(K⁻¹ - ‖φ - φ₀‖₊)⁻¹, inv_pos_of_pos (tsub_pos_of_lt hφ),
    H.add_sub_lipschitzWith (φ - φ₀).lipschitz hφ⟩