Theorem: Algebra.norm_eq_of_equiv_equiv
File: Mathlib/RingTheory/Norm/Basic.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x : B₁
⊢ (norm A₁) x = e₁.symm ((norm A₂) (e₂ x))
state_after: case refine_2
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x : B₁
this : Algebra A₁ B₂ := ((↑e₂).comp (algebraMap A₁ B₁)).toAlgebra' ?refine_1
⊢ (norm A₁) x = e₁.symm ((norm A₂) (e₂ x))

case refine_1
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x : B₁
⊢ ∀ (c : A₁) (x : B₂), ((↑e₂).comp (algebraMap A₁ B₁)) c * x = x * ((↑e₂).comp (algebraMap A₁ B₁)) c
tactic: letI := (RingHom.comp (e₂ : B₁ →+* B₂) (algebraMap A₁ B₁)).toAlgebra' ?_
state_before: case refine_1
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x : B₁
⊢ ∀ (c : A₁) (x : B₂), ((↑e₂).comp (algebraMap A₁ B₁)) c * x = x * ((↑e₂).comp (algebraMap A₁ B₁)) c
state_after: case refine_1
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x✝ : B₁
c : A₁
x : B₂
⊢ ((↑e₂).comp (algebraMap A₁ B₁)) c * x = x * ((↑e₂).comp (algebraMap A₁ B₁)) c
tactic: intros c x
state_before: case refine_1
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x✝ : B₁
c : A₁
x : B₂
⊢ ((↑e₂).comp (algebraMap A₁ B₁)) c * x = x * ((↑e₂).comp (algebraMap A₁ B₁)) c
state_after: case refine_1.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x✝ : B₁
c : A₁
x : B₂
⊢ e₂.symm (((↑e₂).comp (algebraMap A₁ B₁)) c * x) = e₂.symm (x * ((↑e₂).comp (algebraMap A₁ B₁)) c)
tactic: apply e₂.symm.injective
state_before: case refine_1.a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : Ring S
inst✝¹³ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Field F
inst✝⁹ : Algebra K L
inst✝⁸ : Algebra K F
ι : Type w
E : Type u_7
inst✝⁷ : Field E
inst✝⁶ : Algebra K E
A₁ : Type u_8
B₁ : Type u_9
A₂ : Type u_10
B₂ : Type u_11
inst✝⁵ : CommRing A₁
inst✝⁴ : Ring B₁
inst✝³ : CommRing A₂
inst✝² : Ring B₂
inst✝¹ : Algebra A₁ B₁
inst✝ : Algebra A₂ B₂
e₁ : A₁ ≃+* A₂
e₂ : B₁ ≃+* B₂
he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)
x✝ : B₁
c : A₁
x : B₂
⊢ e₂.symm (((↑e₂).comp (algebraMap A₁ B₁)) c * x) = e₂.symm (x * ((↑e₂).comp (algebraMap A₁ B₁)) c)
state_after: no goals
tactic: simp only [RingHom.coe_comp, RingHom.coe_coe, Function.comp_apply, _root_.map_mul,
    RingEquiv.symm_apply_apply, commutes]