Theorem: Polynomial.eval₂_algebraMap_X
File: Mathlib/Algebra/Polynomial/AlgebraMap.lean

Proof steps:
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ eval₂ (algebraMap R A) (f X) p = f p
state_after: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ eval₂ (algebraMap R A) (f X) p = f (p.sum fun n a => C a * X ^ n)
tactic: conv_rhs => rw [← Polynomial.sum_C_mul_X_pow_eq p]
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ eval₂ (algebraMap R A) (f X) p = f (p.sum fun n a => C a * X ^ n)
state_after: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ ∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * f X ^ n = f (∑ n ∈ p.support, C (p.coeff n) * X ^ n)
tactic: simp only [eval₂_eq_sum, sum_def]
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ ∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * f X ^ n = f (∑ n ∈ p.support, C (p.coeff n) * X ^ n)
state_after: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ ∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * f X ^ n = ∑ x ∈ p.support, f (C (p.coeff x)) * f X ^ x
tactic: simp only [map_sum, map_mul, map_pow, eq_intCast, map_intCast]
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B : Type u_2
a b : R✝
n : ℕ
inst✝⁷ : CommSemiring R✝
inst✝⁶ : Semiring A✝
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R✝ A✝
inst✝³ : Algebra R✝ B
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
p : R[X]
f : R[X] →ₐ[R] A
⊢ ∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * f X ^ n = ∑ x ∈ p.support, f (C (p.coeff x)) * f X ^ x
state_after: no goals
tactic: simp [Polynomial.C_eq_algebraMap]