Theorem: Bornology.IsVonNBounded.image
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

tactic: let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: have f_tendsto_zero := f.continuous.tendsto 0
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: rw [map_zero] at f_tendsto_zero
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 (↑f 0))
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: intro V hV
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
⊢ IsVonNBounded 𝕜₂ (↑f '' s)

tactic: rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
state_before: 𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
⊢ Absorbs 𝕜₂ V (↑f '' s)

tactic: refine' ⟨r, hrpos, fun a ha => _⟩
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
⊢ Absorbs 𝕜₂ V (↑f '' s)

tactic: rw [← σ'.apply_symm_apply a]
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
⊢ ↑f '' s ⊆ a • V

tactic: have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
⊢ ↑f '' s ⊆ ↑σ' (↑(RingEquiv.symm σ') a) • V

tactic: have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
hanz : a ≠ 0
⊢ ↑f '' s ⊆ ↑σ' (↑(RingEquiv.symm σ') a) • V

tactic: change _ ⊆ σ _ • _
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
hanz : a ≠ 0
this : ↑(RingEquiv.symm σ') a ≠ 0
⊢ ↑f '' s ⊆ ↑σ' (↑(RingEquiv.symm σ') a) • V

tactic: rw [Set.image_subset_iff, preimage_smul_setₛₗ _ _ _ f this.isUnit]
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
hanz : a ≠ 0
this : ↑(RingEquiv.symm σ') a ≠ 0
⊢ ↑f '' s ⊆ ↑σ (↑(RingEquiv.symm σ') a) • V

tactic: refine' hr (σ'.symm a) _
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
hanz : a ≠ 0
this : ↑(RingEquiv.symm σ') a ≠ 0
⊢ s ⊆ ↑(RingEquiv.symm σ') a • ↑f ⁻¹' V

tactic: rwa [σ'_symm_iso.norm_map_of_map_zero (map_zero _)]
state_before: case intro.intro
𝕜 : Type ?u.7414
𝕜' : Type ?u.7417
E : Type u_3
E' : Type ?u.7423
F : Type u_4
ι : Type ?u.7429
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁹ : NormedDivisionRing 𝕜₁
inst✝⁸ : NormedDivisionRing 𝕜₂
inst✝⁷ : AddCommGroup E
inst✝⁶ : Module 𝕜₁ E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜₂ F
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace F
σ : 𝕜₁ →+* 𝕜₂
inst✝¹ : RingHomSurjective σ
inst✝ : RingHomIsometric σ
s : Set E
hs : IsVonNBounded 𝕜₁ s
f : E →SL[σ] F
σ' : 𝕜₁ ≃+* 𝕜₂ := RingEquiv.ofBijective σ (_ : Function.Injective ↑σ ∧ Function.Surjective ↑σ)
σ_iso : Isometry ↑σ
σ'_symm_iso : Isometry ↑(RingEquiv.symm σ')
f_tendsto_zero : Tendsto (↑f) (𝓝 0) (𝓝 0)
V : Set F
hV : V ∈ 𝓝 0
r : ℝ
hrpos : 0 < r
hr : ∀ (a : 𝕜₁), r ≤ ‖a‖ → s ⊆ a • ↑f ⁻¹' V
a : 𝕜₂
ha : r ≤ ‖a‖
hanz : a ≠ 0
this : ↑(RingEquiv.symm σ') a ≠ 0
⊢ r ≤ ‖↑(RingEquiv.symm σ') a‖