Theorem: Algebra.algebraMap_intTrace_fractionRing
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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) 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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) x)
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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this : IsIntegralClosure B A (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) 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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) 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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this✝ : IsIntegralClosure B A (FractionRing B)
this : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) 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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this✝¹ : IsIntegralClosure B A (FractionRing B)
this✝ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this : FiniteDimensional (FractionRing A) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) 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.292784
Bₘ : Type ?u.292787
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✝⁵ : IsDomain A
inst✝⁴ : IsIntegrallyClosed A
inst✝³ : IsDomain B
inst✝² : IsIntegrallyClosed B
inst✝¹ : Module.Finite A B
inst✝ : NoZeroSMulDivisors A B
x : B
this✝¹ : IsIntegralClosure B A (FractionRing B)
this✝ : IsLocalization (algebraMapSubmonoid B A⁰) (FractionRing B)
this : FiniteDimensional (FractionRing A) (FractionRing B)
⊢ (algebraMap A (FractionRing A)) ((intTrace A B) x) =
    (trace (FractionRing A) (FractionRing B)) ((algebraMap B (FractionRing B)) x)
state_after: no goals
tactic: exact Algebra.map_intTraceAux x