Theorem: IsIntegralClosure.isFractionRing_of_algebraic
File: Mathlib/RingTheory/Localization/Integral.lean

Proof steps:
state_before: R : Type u_1
inst✝¹⁷ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁶ : CommRing S
inst✝¹⁵ : Algebra R S
P : Type u_3
inst✝¹⁴ : CommRing P
A : Type u_4
K : Type u_5
inst✝¹³ : CommRing A
inst✝¹² : IsDomain A
L : Type u_6
inst✝¹¹ : Field K
inst✝¹⁰ : Field L
inst✝⁹ : Algebra A K
inst✝⁸ : Algebra A L
inst✝⁷ : IsFractionRing A K
C : Type u_7
inst✝⁶ : CommRing C
inst✝⁵ : IsDomain C
inst✝⁴ : Algebra C L
inst✝³ : IsIntegralClosure C A L
inst✝² : Algebra A C
inst✝¹ : IsScalarTower A C L
inst✝ : Algebra.IsAlgebraic A L
inj : ∀ (x : A), (algebraMap A L) x = 0 → x = 0
z : L
x : ↥(integralClosure A L)
y : A
hy : y ≠ 0
hxy : z * (algebraMap A L) y = ↑x
h : (algebraMap A C) y = 0
⊢ (algebraMap A L) y = 0
state_after: no goals
tactic: rw [IsScalarTower.algebraMap_apply A C L, h, RingHom.map_zero]
state_before: R : Type u_1
inst✝¹⁷ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁶ : CommRing S
inst✝¹⁵ : Algebra R S
P : Type u_3
inst✝¹⁴ : CommRing P
A : Type u_4
K : Type u_5
inst✝¹³ : CommRing A
inst✝¹² : IsDomain A
L : Type u_6
inst✝¹¹ : Field K
inst✝¹⁰ : Field L
inst✝⁹ : Algebra A K
inst✝⁸ : Algebra A L
inst✝⁷ : IsFractionRing A K
C : Type u_7
inst✝⁶ : CommRing C
inst✝⁵ : IsDomain C
inst✝⁴ : Algebra C L
inst✝³ : IsIntegralClosure C A L
inst✝² : Algebra A C
inst✝¹ : IsScalarTower A C L
inst✝ : Algebra.IsAlgebraic A L
inj : ∀ (x : A), (algebraMap A L) x = 0 → x = 0
z : L
x : ↥(integralClosure A L)
y : A
hy : y ≠ 0
hxy : z * (algebraMap A L) y = ↑x
⊢ z * (algebraMap C L) ↑(mk' C ↑x ⋯, ⟨(algebraMap A C) y, ⋯⟩).2 =
    (algebraMap C L) (mk' C ↑x ⋯, ⟨(algebraMap A C) y, ⋯⟩).1
state_after: R : Type u_1
inst✝¹⁷ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁶ : CommRing S
inst✝¹⁵ : Algebra R S
P : Type u_3
inst✝¹⁴ : CommRing P
A : Type u_4
K : Type u_5
inst✝¹³ : CommRing A
inst✝¹² : IsDomain A
L : Type u_6
inst✝¹¹ : Field K
inst✝¹⁰ : Field L
inst✝⁹ : Algebra A K
inst✝⁸ : Algebra A L
inst✝⁷ : IsFractionRing A K
C : Type u_7
inst✝⁶ : CommRing C
inst✝⁵ : IsDomain C
inst✝⁴ : Algebra C L
inst✝³ : IsIntegralClosure C A L
inst✝² : Algebra A C
inst✝¹ : IsScalarTower A C L
inst✝ : Algebra.IsAlgebraic A L
inj : ∀ (x : A), (algebraMap A L) x = 0 → x = 0
z : L
x : ↥(integralClosure A L)
y : A
hy : y ≠ 0
hxy : z * (algebraMap A L) y = ↑x
⊢ z * (algebraMap C L) ((algebraMap A C) y) = (algebraMap C L) (mk' C ↑x ⋯)
tactic: simp only
state_before: R : Type u_1
inst✝¹⁷ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁶ : CommRing S
inst✝¹⁵ : Algebra R S
P : Type u_3
inst✝¹⁴ : CommRing P
A : Type u_4
K : Type u_5
inst✝¹³ : CommRing A
inst✝¹² : IsDomain A
L : Type u_6
inst✝¹¹ : Field K
inst✝¹⁰ : Field L
inst✝⁹ : Algebra A K
inst✝⁸ : Algebra A L
inst✝⁷ : IsFractionRing A K
C : Type u_7
inst✝⁶ : CommRing C
inst✝⁵ : IsDomain C
inst✝⁴ : Algebra C L
inst✝³ : IsIntegralClosure C A L
inst✝² : Algebra A C
inst✝¹ : IsScalarTower A C L
inst✝ : Algebra.IsAlgebraic A L
inj : ∀ (x : A), (algebraMap A L) x = 0 → x = 0
z : L
x : ↥(integralClosure A L)
y : A
hy : y ≠ 0
hxy : z * (algebraMap A L) y = ↑x
⊢ z * (algebraMap C L) ((algebraMap A C) y) = (algebraMap C L) (mk' C ↑x ⋯)
state_after: no goals
tactic: rw [algebraMap_mk', ← IsScalarTower.algebraMap_apply A C L, hxy]
state_before: R : Type u_1
inst✝¹⁷ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁶ : CommRing S
inst✝¹⁵ : Algebra R S
P : Type u_3
inst✝¹⁴ : CommRing P
A : Type u_4
K : Type u_5
inst✝¹³ : CommRing A
inst✝¹² : IsDomain A
L : Type u_6
inst✝¹¹ : Field K
inst✝¹⁰ : Field L
inst✝⁹ : Algebra A K
inst✝⁸ : Algebra A L
inst✝⁷ : IsFractionRing A K
C : Type u_7
inst✝⁶ : CommRing C
inst✝⁵ : IsDomain C
inst✝⁴ : Algebra C L
inst✝³ : IsIntegralClosure C A L
inst✝² : Algebra A C
inst✝¹ : IsScalarTower A C L
inst✝ : Algebra.IsAlgebraic A L
inj : ∀ (x : A), (algebraMap A L) x = 0 → x = 0
x y : C
h : (algebraMap C L) x = (algebraMap C L) y
⊢ ↑1 * x = ↑1 * y
state_after: no goals
tactic: simpa using algebraMap_injective C A L h