Theorem: Algebra.intNorm_eq_norm
File: Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean

Proof steps:
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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
⊢ intNorm A B = norm A
state_after: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
⊢ (intNorm A B) x = (norm A) x
tactic: ext x
state_before: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
⊢ (intNorm A B) x = (norm A) x
state_after: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (intNorm A B) x = (norm A) x
tactic: haveI : IsIntegralClosure B A (FractionRing B) :=
    IsIntegralClosure.of_isIntegrallyClosed _ _ _
state_before: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (intNorm A B) x = (norm A) x
state_after: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (intNorm A B) x = (norm A) x
tactic: haveI : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B) :=
    IsIntegralClosure.isLocalization _ (FractionRing A) _ _
state_before: case 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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (intNorm A B) x = (norm A) x
state_after: case h.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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intNorm A B) x) = (algebraMap A (FractionRing A)) ((norm A) x)
tactic: apply IsFractionRing.injective A (FractionRing A)
state_before: case h.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.571927
Bₘ : Type ?u.571930
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✝¹ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
inst✝ : Module.Free A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intNorm A B) x) = (algebraMap A (FractionRing A)) ((norm A) x)
state_after: no goals
tactic: rw [Algebra.algebraMap_intNorm_fractionRing, Algebra.norm_localization A A⁰]