Theorem: seminormFromConst_isPowMul
File: Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
⊢ seminormFromConst' hf1 hc hpm (x ^ m) = seminormFromConst' hf1 hc hpm x ^ m
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
⊢ ⋯.choose = ⋯.choose ^ m
tactic: simp only [seminormFromConst']
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
⊢ ⋯.choose = ⋯.choose ^ m
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ ⋯.choose = ⋯.choose ^ m
tactic: have hlim : Tendsto (fun n ↦ seminormFromConst_seq c f (x ^ m) (m * n)) atTop
      (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m))) := by
    apply (seminormFromConst_isLimit hf1 hc hpm (x ^ m)).comp
      (tendsto_atTop_atTop_of_monotone (fun _ _ hnk ↦ mul_le_mul_left' hnk m) _)
    rintro n; use n; exact le_mul_of_one_le_left' hm
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ ⋯.choose = ⋯.choose ^ m
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (⋯.choose ^ m))
tactic: apply tendsto_nhds_unique hlim
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (⋯.choose ^ m))
state_after: case h.e'_3
R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) = fun x_1 => seminormFromConst_seq c f x x_1 ^ m
tactic: convert (seminormFromConst_isLimit hf1 hc hpm x).pow m using 1
state_before: case h.e'_3
R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
⊢ (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) = fun x_1 => seminormFromConst_seq c f x x_1 ^ m
state_after: case h.e'_3.h
R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
n : ℕ
⊢ seminormFromConst_seq c f (x ^ m) (m * n) = seminormFromConst_seq c f x n ^ m
tactic: ext n
state_before: case h.e'_3.h
R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
m : ℕ
hm : 1 ≤ m
hlim : Tendsto (fun n => seminormFromConst_seq c f (x ^ m) (m * n)) atTop (𝓝 (seminormFromConst' hf1 hc hpm (x ^ m)))
n : ℕ
⊢ seminormFromConst_seq c f (x ^ m) (m * n) = seminormFromConst_seq c f x n ^ m
state_after: no goals
tactic: simp only [seminormFromConst_seq, div_pow, ← hpm _ hm, ← pow_mul, mul_pow, mul_comm m n]