Theorem: integralClosure_map_algEquiv
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: ext y
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
⊢ Subalgebra.map (↑f) (integralClosure R A) = integralClosure R S
state_after: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ y ∈ Subalgebra.map (↑f) (integralClosure R A) ↔ y ∈ integralClosure R S

tactic: rw [Subalgebra.mem_map]
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ y ∈ Subalgebra.map (↑f) (integralClosure R A) ↔ y ∈ integralClosure R S
state_after: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ (∃ x ∈ integralClosure R A, ↑f x = y) ↔ y ∈ integralClosure R S

tactic: constructor
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ (∃ x ∈ integralClosure R A, ↑f x = y) ↔ y ∈ integralClosure R S
state_after: case h.mp
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ (∃ x ∈ integralClosure R A, ↑f x = y) → y ∈ integralClosure R S

case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ y ∈ integralClosure R S → ∃ x ∈ integralClosure R A, ↑f x = y

tactic: rintro ⟨x, hx, rfl⟩
state_before: case h.mp
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ (∃ x ∈ integralClosure R A, ↑f x = y) → y ∈ integralClosure R S
state_after: case h.mp.intro.intro
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
x : A
hx : x ∈ integralClosure R A
⊢ ↑f x ∈ integralClosure R S

tactic: exact hx.map f
state_before: case h.mp.intro.intro
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
x : A
hx : x ∈ integralClosure R A
⊢ ↑f x ∈ integralClosure R S
state_after: no goals

tactic: intro hy
state_before: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
⊢ y ∈ integralClosure R S → ∃ x ∈ integralClosure R A, ↑f x = y
state_after: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
hy : y ∈ integralClosure R S
⊢ ∃ x ∈ integralClosure R A, ↑f x = y

tactic: use f.symm y, hy.map (f.symm : S →ₐ[R] A)
state_before: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
hy : y ∈ integralClosure R S
⊢ ∃ x ∈ integralClosure R A, ↑f x = y
state_after: case right
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
hy : y ∈ integralClosure R S
⊢ ↑f (f.symm y) = y

tactic: simp
state_before: case right
R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : CommRing S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
f✝² : R →+* S
f✝¹ : R →+* B
f✝ : R →+* S
inst✝ : Algebra R S
f : A ≃ₐ[R] S
y : S
hy : y ∈ integralClosure R S
⊢ ↑f (f.symm y) = y
state_after: no goals