l3lab/ntp-mathlib huggingface dataset:
/-- A continuous linear image of a bounded set is bounded. -/
theorem IsVonNBounded.image {σ : 𝕜₁ →+* 𝕜₂} [RingHomSurjective σ] [RingHomIsometric σ] {s : Set E}
    (hs : IsVonNBounded 𝕜₁ s) (f : E →SL[σ] F) : IsVonNBounded 𝕜₂ (f '' s) := by
  let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
  have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
  have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
  have f_tendsto_zero := f.continuous.tendsto 0
  rw [map_zero] at f_tendsto_zero
  intro V hV
  rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
  refine' ⟨r, hrpos, fun a ha => _⟩
  rw [← σ'.apply_symm_apply a]
  have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜₁ : Type u_7
𝕜₂ : Type u_8
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

Next tactic:
have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
/-- A continuous linear image of a bounded set is bounded. -/
theorem IsVonNBounded.image {σ : 𝕜₁ →+* 𝕜₂} [RingHomSurjective σ] [RingHomIsometric σ] {s : Set E}
    (hs : IsVonNBounded 𝕜₁ s) (f : E →SL[σ] F) : IsVonNBounded 𝕜₂ (f '' s) := by
  let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
  have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
  have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
  have f_tendsto_zero := f.continuous.tendsto 0
  rw [map_zero] at f_tendsto_zero
  intro V hV
  rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
  refine' ⟨r, hrpos, fun a ha => _⟩
  rw [← σ'.apply_symm_apply a]
  have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
  have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜₁ : Type u_7
𝕜₂ : Type u_8
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

Next tactic:
change _ ⊆ σ _ • _
/-- A continuous linear image of a bounded set is bounded. -/
theorem IsVonNBounded.image {σ : 𝕜₁ →+* 𝕜₂} [RingHomSurjective σ] [RingHomIsometric σ] {s : Set E}
    (hs : IsVonNBounded 𝕜₁ s) (f : E →SL[σ] F) : IsVonNBounded 𝕜₂ (f '' s) := by
  let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
  have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
  have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
  have f_tendsto_zero := f.continuous.tendsto 0
  rw [map_zero] at f_tendsto_zero
  intro V hV
  rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
  refine' ⟨r, hrpos, fun a ha => _⟩
  rw [← σ'.apply_symm_apply a]
  have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
  have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
  change _ ⊆ σ _ • _
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜₁ : Type u_7
𝕜₂ : Type u_8
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

Next tactic:
rw [Set.image_subset_iff, preimage_smul_setₛₗ _ _ _ f this.isUnit]
/-- A continuous linear image of a bounded set is bounded. -/
theorem IsVonNBounded.image {σ : 𝕜₁ →+* 𝕜₂} [RingHomSurjective σ] [RingHomIsometric σ] {s : Set E}
    (hs : IsVonNBounded 𝕜₁ s) (f : E →SL[σ] F) : IsVonNBounded 𝕜₂ (f '' s) := by
  let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
  have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
  have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
  have f_tendsto_zero := f.continuous.tendsto 0
  rw [map_zero] at f_tendsto_zero
  intro V hV
  rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
  refine' ⟨r, hrpos, fun a ha => _⟩
  rw [← σ'.apply_symm_apply a]
  have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
  have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
  change _ ⊆ σ _ • _
  rw [Set.image_subset_iff, preimage_smul_setₛₗ _ _ _ f this.isUnit]
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜₁ : Type u_7
𝕜₂ : Type u_8
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

Next tactic:
refine' hr (σ'.symm a) _
/-- A continuous linear image of a bounded set is bounded. -/
theorem IsVonNBounded.image {σ : 𝕜₁ →+* 𝕜₂} [RingHomSurjective σ] [RingHomIsometric σ] {s : Set E}
    (hs : IsVonNBounded 𝕜₁ s) (f : E →SL[σ] F) : IsVonNBounded 𝕜₂ (f '' s) := by
  let σ' := RingEquiv.ofBijective σ ⟨σ.injective, σ.surjective⟩
  have σ_iso : Isometry σ := AddMonoidHomClass.isometry_of_norm σ fun x => RingHomIsometric.is_iso
  have σ'_symm_iso : Isometry σ'.symm := σ_iso.right_inv σ'.right_inv
  have f_tendsto_zero := f.continuous.tendsto 0
  rw [map_zero] at f_tendsto_zero
  intro V hV
  rcases hs (f_tendsto_zero hV) with ⟨r, hrpos, hr⟩
  refine' ⟨r, hrpos, fun a ha => _⟩
  rw [← σ'.apply_symm_apply a]
  have hanz : a ≠ 0 := norm_pos_iff.mp (hrpos.trans_le ha)
  have : σ'.symm a ≠ 0 := (map_ne_zero σ'.symm.toRingHom).mpr hanz
  change _ ⊆ σ _ • _
  rw [Set.image_subset_iff, preimage_smul_setₛₗ _ _ _ f this.isUnit]
  refine' hr (σ'.symm a) _
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜₁ : Type u_7
𝕜₂ : Type u_8
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‖

Next tactic:
rwa [σ'_symm_iso.norm_map_of_map_zero (map_zero _)]
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε : Tendsto ε l (𝓝 0)
⊢ Tendsto (ε • x) l (𝓝 0)

Next tactic:
rw [tendsto_def] at *
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
⊢ ∀ s ∈ 𝓝 0, (ε • x) ⁻¹' s ∈ l

Next tactic:
intro V hV
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
⊢ (ε • x) ⁻¹' V ∈ l

Next tactic:
rcases hS hV with ⟨r, r_pos, hrS⟩
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  

Proof state:
case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
⊢ (ε • x) ⁻¹' V ∈ l

Next tactic:
filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
  

Proof state:
case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
n : ι
hnS : x n ∈ S
hnr : n ∈ ε ⁻¹' Metric.ball 0 r⁻¹
⊢ n ∈ (ε • x) ⁻¹' V

Next tactic:
by_cases hε : ε n = 0
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
  by_cases hε : ε n = 0
  · 

Proof state:
case pos
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε✝ : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
n : ι
hnS : x n ∈ S
hnr : n ∈ ε ⁻¹' Metric.ball 0 r⁻¹
hε : ε n = 0
⊢ n ∈ (ε • x) ⁻¹' V

Next tactic:
simp [hε, mem_of_mem_nhds hV]
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
  by_cases hε : ε n = 0
  · simp [hε, mem_of_mem_nhds hV]
  · 

Proof state:
case neg
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε✝ : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
n : ι
hnS : x n ∈ S
hnr : n ∈ ε ⁻¹' Metric.ball 0 r⁻¹
hε : ¬ε n = 0
⊢ n ∈ (ε • x) ⁻¹' V

Next tactic:
rw [mem_preimage, mem_ball_zero_iff, lt_inv (norm_pos_iff.mpr hε) r_pos, ← norm_inv] at hnr
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
  by_cases hε : ε n = 0
  · simp [hε, mem_of_mem_nhds hV]
  · rw [mem_preimage, mem_ball_zero_iff, lt_inv (norm_pos_iff.mpr hε) r_pos, ← norm_inv] at hnr
    

Proof state:
case neg
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε✝ : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
n : ι
hnS : x n ∈ S
hnr : r < ‖(ε n)⁻¹‖
hε : ¬ε n = 0
⊢ n ∈ (ε • x) ⁻¹' V

Next tactic:
rw [mem_preimage, Pi.smul_apply', ← Set.mem_inv_smul_set_iff₀ hε]
theorem IsVonNBounded.smul_tendsto_zero {S : Set E} {ε : ι → 𝕜} {x : ι → E} {l : Filter ι}
    (hS : IsVonNBounded 𝕜 S) (hxS : ∀ᶠ n in l, x n ∈ S) (hε : Tendsto ε l (𝓝 0)) :
    Tendsto (ε • x) l (𝓝 0) := by
  rw [tendsto_def] at *
  intro V hV
  rcases hS hV with ⟨r, r_pos, hrS⟩
  filter_upwards [hxS, hε _ (Metric.ball_mem_nhds 0 <| inv_pos.mpr r_pos)] with n hnS hnr
  by_cases hε : ε n = 0
  · simp [hε, mem_of_mem_nhds hV]
  · rw [mem_preimage, mem_ball_zero_iff, lt_inv (norm_pos_iff.mpr hε) r_pos, ← norm_inv] at hnr
    rw [mem_preimage, Pi.smul_apply', ← Set.mem_inv_smul_set_iff₀ hε]
    

Proof state:
case neg
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NontriviallyNormedField 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕝 E
S : Set E
ε : ι → 𝕜
x : ι → E
l : Filter ι
hS : IsVonNBounded 𝕜 S
hxS : ∀ᶠ (n : ι) in l, x n ∈ S
hε✝ : ∀ s ∈ 𝓝 0, ε ⁻¹' s ∈ l
V : Set E
hV : V ∈ 𝓝 0
r : ℝ
r_pos : 0 < r
hrS : ∀ (a : 𝕜), r ≤ ‖a‖ → S ⊆ a • V
n : ι
hnS : x n ∈ S
hnr : r < ‖(ε n)⁻¹‖
hε : ¬ε n = 0
⊢ x n ∈ (ε n)⁻¹ • V

Next tactic:
exact hrS _ hnr.le hnS
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
⊢ IsVonNBounded 𝕝 S

Next tactic:
rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
⊢ ∀ (i : Set E), i ∈ 𝓝 0 ∧ Balanced 𝕝 i → Absorbs 𝕝 (id i) S

Next tactic:
by_contra! H'
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  by_contra! H'
  

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
H' : ∃ i, (i ∈ 𝓝 0 ∧ Balanced 𝕝 i) ∧ ¬Absorbs 𝕝 (id i) S
⊢ False

Next tactic:
rcases H' with ⟨V, ⟨hV, hVb⟩, hVS⟩
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  by_contra! H'
  rcases H' with ⟨V, ⟨hV, hVb⟩, hVS⟩
  

Proof state:
case intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
V : Set E
hVS : ¬Absorbs 𝕝 (id V) S
hV : V ∈ 𝓝 0
hVb : Balanced 𝕝 V
⊢ False

Next tactic:
have : ∀ᶠ n in l, ∃ x : S, ε n • (x : E) ∉ V := by
    filter_upwards [hε] with n hn
    rw [Absorbs] at hVS
    push_neg at hVS
    rcases hVS _ (norm_pos_iff.mpr <| inv_ne_zero hn) with ⟨a, haε, haS⟩
    rcases Set.not_subset.mp haS with ⟨x, hxS, hx⟩
    refine' ⟨⟨x, hxS⟩, fun hnx => _⟩
    rw [← Set.mem_inv_smul_set_iff₀ hn] at hnx
    exact hx (hVb.smul_mono haε hnx)
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  by_contra! H'
  rcases H' with ⟨V, ⟨hV, hVb⟩, hVS⟩
  have : ∀ᶠ n in l, ∃ x : S, ε n • (x : E) ∉ V := by
    

Proof state:
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
V : Set E
hVS : ¬Absorbs 𝕝 (id V) S
hV : V ∈ 𝓝 0
hVb : Balanced 𝕝 V
⊢ ∀ᶠ (n : ι) in l, ∃ x, ε n • ↑x ∉ V

Next tactic:
filter_upwards [hε] with n hn
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  by_contra! H'
  rcases H' with ⟨V, ⟨hV, hVb⟩, hVS⟩
  have : ∀ᶠ n in l, ∃ x : S, ε n • (x : E) ∉ V := by
    filter_upwards [hε] with n hn
    

Proof state:
case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
V : Set E
hVS : ¬Absorbs 𝕝 (id V) S
hV : V ∈ 𝓝 0
hVb : Balanced 𝕝 V
n : ι
hn : ε n ≠ 0
⊢ ∃ x, ε n • ↑x ∉ V

Next tactic:
rw [Absorbs] at hVS
theorem isVonNBounded_of_smul_tendsto_zero {ε : ι → 𝕝} {l : Filter ι} [l.NeBot]
    (hε : ∀ᶠ n in l, ε n ≠ 0) {S : Set E}
    (H : ∀ x : ι → E, (∀ n, x n ∈ S) → Tendsto (ε • x) l (𝓝 0)) : IsVonNBounded 𝕝 S := by
  rw [(nhds_basis_balanced 𝕝 E).isVonNBounded_basis_iff]
  by_contra! H'
  rcases H' with ⟨V, ⟨hV, hVb⟩, hVS⟩
  have : ∀ᶠ n in l, ∃ x : S, ε n • (x : E) ∉ V := by
    filter_upwards [hε] with n hn
    rw [Absorbs] at hVS
    

Proof state:
case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕝 : Type u_7
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousSMul 𝕝 E
ε : ι → 𝕝
l : Filter ι
inst✝ : NeBot l
hε : ∀ᶠ (n : ι) in l, ε n ≠ 0
S : Set E
H : ∀ (x : ι → E), (∀ (n : ι), x n ∈ S) → Tendsto (ε • x) l (𝓝 0)
V : Set E
hVS : ¬∃ r, 0 < r ∧ ∀ (a : 𝕝), r ≤ ‖a‖ → S ⊆ a • id V
hV : V ∈ 𝓝 0
hVb : Balanced 𝕝 V
n : ι
hn : ε n ≠ 0
⊢ ∃ x, ε n • ↑x ∉ V

Next tactic:
push_neg at hVS