Theorem: Algebra.algebraMap_intNorm
File: Mathlib/RingTheory/IntegralRestrict.lean

tactic: haveI : IsIntegralClosure B A (FractionRing B) :=
  IsIntegralClosure.of_isIntegrallyClosed _ _ _
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)
state_after: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)

tactic: haveI : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B) :=
  IsIntegralClosure.isLocalization _ (FractionRing A) _ _
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)
state_after: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)

tactic: haveI : FiniteDimensional (FractionRing A) (FractionRing B) :=
  Module.Finite_of_isLocalization A B _ _ A⁰
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)
state_after: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝¹ : IsIntegralClosure B A (FractionRing B)
this✝ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this : FiniteDimensional (FractionRing A) (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)

tactic: haveI := IsIntegralClosure.isFractionRing_of_finite_extension A K L B
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝¹ : IsIntegralClosure B A (FractionRing B)
this✝ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this : FiniteDimensional (FractionRing A) (FractionRing B)
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)
state_after: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)

tactic: apply (FractionRing.algEquiv A K).symm.injective
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (algebraMap A K) ((intNorm A B) x) = (norm K) ((algebraMap B L) x)
state_after: case a
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (FractionRing.algEquiv A K).symm ((algebraMap A K) ((intNorm A B) x)) =
    (FractionRing.algEquiv A K).symm ((norm K) ((algebraMap B L) x))

tactic: rw [AlgEquiv.commutes, Algebra.intNorm, Algebra.map_intNormAux,
  ← AlgEquiv.commutes (FractionRing.algEquiv B L)]
state_before: case a
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (FractionRing.algEquiv A K).symm ((algebraMap A K) ((intNorm A B) x)) =
    (FractionRing.algEquiv A K).symm ((norm K) ((algebraMap B L) x))
state_after: case a
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (norm (FractionRing A)) ((algebraMap B (FractionRing B)) x) =
    (FractionRing.algEquiv A K).symm ((norm K) ((FractionRing.algEquiv B L) ((algebraMap B (FractionRing B)) x)))

tactic: apply Algebra.norm_eq_of_equiv_equiv (FractionRing.algEquiv A K).toRingEquiv
  (FractionRing.algEquiv B L).toRingEquiv
state_before: case a
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (norm (FractionRing A)) ((algebraMap B (FractionRing B)) x) =
    (FractionRing.algEquiv A K).symm ((norm K) ((FractionRing.algEquiv B L) ((algebraMap B (FractionRing B)) x)))
state_after: case a.he
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (algebraMap K L).comp ↑(FractionRing.algEquiv A K).toRingEquiv =
    (↑(FractionRing.algEquiv B L).toRingEquiv).comp (algebraMap (FractionRing A) (FractionRing B))

tactic: apply IsLocalization.ringHom_ext A⁰
state_before: case a.he
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ (algebraMap K L).comp ↑(FractionRing.algEquiv A K).toRingEquiv =
    (↑(FractionRing.algEquiv B L).toRingEquiv).comp (algebraMap (FractionRing A) (FractionRing B))
state_after: case a.he.h
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ ((algebraMap K L).comp ↑(FractionRing.algEquiv A K).toRingEquiv).comp (algebraMap A (FractionRing A)) =
    ((↑(FractionRing.algEquiv B L).toRingEquiv).comp (algebraMap (FractionRing A) (FractionRing B))).comp
      (algebraMap A (FractionRing A))

tactic: simp only [AlgEquiv.toRingEquiv_eq_coe, ← AlgEquiv.coe_ringHom_commutes, RingHom.comp_assoc,
  AlgHom.comp_algebraMap_of_tower, ← IsScalarTower.algebraMap_eq, RingHom.comp_assoc]
state_before: case a.he.h
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.510194
Bₘ : Type ?u.510197
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : IsSeparable (FractionRing A) (FractionRing B)
x : B
this✝² : IsIntegralClosure B A (FractionRing B)
this✝¹ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this✝ : FiniteDimensional (FractionRing A) (FractionRing B)
this : IsFractionRing B L
⊢ ((algebraMap K L).comp ↑(FractionRing.algEquiv A K).toRingEquiv).comp (algebraMap A (FractionRing A)) =
    ((↑(FractionRing.algEquiv B L).toRingEquiv).comp (algebraMap (FractionRing A) (FractionRing B))).comp
      (algebraMap A (FractionRing A))
state_after: no goals