Theorem: MulRingNorm.equiv_trans
File: Mathlib/Analysis/Normed/Ring/Seminorm.lean

tactic: rcases hfg with ⟨c, hcPos, hfg⟩
state_before: F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
hfg : f.equiv g
hgk : g.equiv k
⊢ f.equiv k
state_after: case intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
hgk : g.equiv k
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
⊢ f.equiv k

tactic: rcases hgk with ⟨d, hdPos, hgk⟩
state_before: case intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
hgk : g.equiv k
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
⊢ f.equiv k
state_after: case intro.intro.intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
⊢ f.equiv k

tactic: refine ⟨c*d, (mul_pos_iff_of_pos_left hcPos).mpr hdPos, ?_⟩
state_before: case intro.intro.intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
⊢ f.equiv k
state_after: case intro.intro.intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
⊢ (fun x => f x ^ (c * d)) = ⇑k

tactic: ext x
state_before: case intro.intro.intro.intro
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
⊢ (fun x => f x ^ (c * d)) = ⇑k
state_after: case intro.intro.intro.intro.h
F : Type u_1
R✝ : Type u_2
S : Type u_3
x✝ y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
x : R
⊢ f x ^ (c * d) = k x

tactic: rw [Real.rpow_mul (apply_nonneg f x), congr_fun hfg x, congr_fun hgk x]
state_before: case intro.intro.intro.intro.h
F : Type u_1
R✝ : Type u_2
S : Type u_3
x✝ y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f g k : MulRingNorm R
c : ℝ
hcPos : 0 < c
hfg : (fun x => f x ^ c) = ⇑g
d : ℝ
hdPos : 0 < d
hgk : (fun x => g x ^ d) = ⇑k
x : R
⊢ f x ^ (c * d) = k x
state_after: no goals