Theorem: tangentCone_univ
File: Mathlib/Analysis/Calculus/TangentCone.lean

tactic: refine' univ_subset_iff.1 fun y _ => _
state_before: 𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y : E
s t : Set E
⊢ tangentConeAt 𝕜 univ x = univ

tactic: rcases exists_one_lt_norm 𝕜 with ⟨w, hw⟩
state_before: 𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
⊢ y ∈ tangentConeAt 𝕜 univ x

tactic: refine' ⟨fun n => w ^ n, fun n => (w ^ n)⁻¹ • y, univ_mem' fun n => mem_univ _, _, _⟩
state_before: case intro
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
⊢ y ∈ tangentConeAt 𝕜 univ x

tactic: simp only [norm_pow]
state_before: case intro.refine'_1
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
⊢ Tendsto (fun n => ‖(fun n => w ^ n) n‖) atTop atTop

tactic: exact tendsto_pow_atTop_atTop_of_one_lt hw
state_before: case intro.refine'_1
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
⊢ Tendsto (fun n => ‖w‖ ^ n) atTop atTop

tactic: convert @tendsto_const_nhds E ℕ _ _ atTop with n
state_before: case intro.refine'_2
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
⊢ Tendsto (fun n => (fun n => w ^ n) n • (fun n => (w ^ n)⁻¹ • y) n) atTop (𝓝 y)

tactic: have : w ^ n * (w ^ n)⁻¹ = 1 := by
  apply mul_inv_cancel
  apply pow_ne_zero
  simpa [norm_eq_zero] using (ne_of_lt (lt_trans zero_lt_one hw)).symm
state_before: case h.e'_3.h
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
n : ℕ
⊢ (fun n => w ^ n) n • (fun n => (w ^ n)⁻¹ • y) n = y

tactic: rw [smul_smul, this, one_smul]
state_before: case h.e'_3.h
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
n : ℕ
this : w ^ n * (w ^ n)⁻¹ = 1
⊢ (fun n => w ^ n) n • (fun n => (w ^ n)⁻¹ • y) n = y

tactic: apply mul_inv_cancel
state_before: 𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
n : ℕ
⊢ w ^ n * (w ^ n)⁻¹ = 1

tactic: apply pow_ne_zero
state_before: case h
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
n : ℕ
⊢ w ^ n ≠ 0

tactic: simpa [norm_eq_zero] using (ne_of_lt (lt_trans zero_lt_one hw)).symm
state_before: case h.h
𝕜 : Type u_2
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type ?u.5583
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type ?u.5673
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y✝ : E
s t : Set E
y : E
x✝ : y ∈ univ
w : 𝕜
hw : 1 < ‖w‖
n : ℕ
⊢ w ≠ 0