Theorem: AlgebraicIndependent.restrictScalars
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: have : (aeval x : MvPolynomial ι K →ₐ[K] A).toRingHom.comp (MvPolynomial.map (algebraMap R K)) =
    (aeval x : MvPolynomial ι R →ₐ[R] A).toRingHom := by
  ext <;> simp [algebraMap_eq_smul_one]
state_before: ι : Type u_4
ι' : Type ?u.406285
R : Type u_2
K✝ : Type ?u.406291
A : Type u_3
A' : Type ?u.406297
A'' : Type ?u.406300
V : Type u
V' : Type ?u.406305
x : ι → A
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : CommRing A'
inst✝⁷ : CommRing A''
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R A'
inst✝⁴ : Algebra R A''
a b : R
K : Type u_1
inst✝³ : CommRing K
inst✝² : Algebra R K
inst✝¹ : Algebra K A
inst✝ : IsScalarTower R K A
hinj : Injective ↑(algebraMap R K)
ai : AlgebraicIndependent K x
⊢ AlgebraicIndependent R x

tactic: show Injective (aeval x).toRingHom
state_before: ι : Type u_4
ι' : Type ?u.406285
R : Type u_2
K✝ : Type ?u.406291
A : Type u_3
A' : Type ?u.406297
A'' : Type ?u.406300
V : Type u
V' : Type ?u.406305
x : ι → A
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : CommRing A'
inst✝⁷ : CommRing A''
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R A'
inst✝⁴ : Algebra R A''
a b : R
K : Type u_1
inst✝³ : CommRing K
inst✝² : Algebra R K
inst✝¹ : Algebra K A
inst✝ : IsScalarTower R K A
hinj : Injective ↑(algebraMap R K)
ai : AlgebraicIndependent K x
this : RingHom.comp (↑(aeval x)) (MvPolynomial.map (algebraMap R K)) = ↑(aeval x)
⊢ AlgebraicIndependent R x

tactic: rw [← this, RingHom.coe_comp]
state_before: ι : Type u_4
ι' : Type ?u.406285
R : Type u_2
K✝ : Type ?u.406291
A : Type u_3
A' : Type ?u.406297
A'' : Type ?u.406300
V : Type u
V' : Type ?u.406305
x : ι → A
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : CommRing A'
inst✝⁷ : CommRing A''
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R A'
inst✝⁴ : Algebra R A''
a b : R
K : Type u_1
inst✝³ : CommRing K
inst✝² : Algebra R K
inst✝¹ : Algebra K A
inst✝ : IsScalarTower R K A
hinj : Injective ↑(algebraMap R K)
ai : AlgebraicIndependent K x
this : RingHom.comp (↑(aeval x)) (MvPolynomial.map (algebraMap R K)) = ↑(aeval x)
⊢ Injective ↑↑(aeval x)

tactic: exact Injective.comp ai (MvPolynomial.map_injective _ hinj)
state_before: ι : Type u_4
ι' : Type ?u.406285
R : Type u_2
K✝ : Type ?u.406291
A : Type u_3
A' : Type ?u.406297
A'' : Type ?u.406300
V : Type u
V' : Type ?u.406305
x : ι → A
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : CommRing A'
inst✝⁷ : CommRing A''
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R A'
inst✝⁴ : Algebra R A''
a b : R
K : Type u_1
inst✝³ : CommRing K
inst✝² : Algebra R K
inst✝¹ : Algebra K A
inst✝ : IsScalarTower R K A
hinj : Injective ↑(algebraMap R K)
ai : AlgebraicIndependent K x
this : RingHom.comp (↑(aeval x)) (MvPolynomial.map (algebraMap R K)) = ↑(aeval x)
⊢ Injective (↑↑(aeval x) ∘ ↑(MvPolynomial.map (algebraMap R K)))

tactic: ext <;> simp [algebraMap_eq_smul_one]
state_before: ι : Type u_4
ι' : Type ?u.406285
R : Type u_2
K✝ : Type ?u.406291
A : Type u_3
A' : Type ?u.406297
A'' : Type ?u.406300
V : Type u
V' : Type ?u.406305
x : ι → A
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : CommRing A'
inst✝⁷ : CommRing A''
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R A'
inst✝⁴ : Algebra R A''
a b : R
K : Type u_1
inst✝³ : CommRing K
inst✝² : Algebra R K
inst✝¹ : Algebra K A
inst✝ : IsScalarTower R K A
hinj : Injective ↑(algebraMap R K)
ai : AlgebraicIndependent K x
⊢ RingHom.comp (↑(aeval x)) (MvPolynomial.map (algebraMap R K)) = ↑(aeval x)