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

tactic: rw [linearIndependent_iff_injective_total]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
⊢ LinearIndependent R x
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
⊢ Injective ⇑(Finsupp.total ι A R x)

tactic: have : Finsupp.total ι A R x =
    (MvPolynomial.aeval x).toLinearMap.comp (Finsupp.total ι _ R X) := by
  ext
  simp
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
⊢ Injective ⇑(Finsupp.total ι A R x)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑(Finsupp.total ι A R x)

tactic: rw [this]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑(Finsupp.total ι A R x)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑((aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X)

tactic: refine hx.comp ?_
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑((aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑(Finsupp.total ι (MvPolynomial ι R) R X)

tactic: rw [← linearIndependent_iff_injective_total]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ Injective ⇑(Finsupp.total ι (MvPolynomial ι R) R X)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ LinearIndependent R X

tactic: exact linearIndependent_X _ _
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
this : Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
⊢ LinearIndependent R X
state_after: no goals

tactic: ext
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
⊢ Finsupp.total ι A R x = (aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X
state_after: case h.h
ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
a✝ : ι
⊢ (Finsupp.total ι A R x ∘ₗ Finsupp.lsingle a✝) 1 =
    (((aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X) ∘ₗ Finsupp.lsingle a✝) 1

tactic: simp
state_before: case h.h
ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
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
hx : AlgebraicIndependent R x
a✝ : ι
⊢ (Finsupp.total ι A R x ∘ₗ Finsupp.lsingle a✝) 1 =
    (((aeval x).toLinearMap ∘ₗ Finsupp.total ι (MvPolynomial ι R) R X) ∘ₗ Finsupp.lsingle a✝) 1
state_after: no goals