File: Mathlib/Algebra/Polynomial/Smeval.lean

full_name: Polynomial.smul_pow
code: /-- Scalar multiplication together with taking a natural number power. -/
def smul_pow : ℕ → R → S 
goal: ℕ → R → S

full_name: Polynomial.wrapped._@.Mathlib.Algebra.Polynomial.Smeval._hyg.83
code: /-- Evaluate a polynomial `p` in the scalar semiring `R` at an element `x` in the target `S` using
scalar multiple `R`-action. -/
irreducible_def smeval : S 
goal: Subtype (Eq @Polynomial.definition✝)

full_name: Polynomial.definition._@.Mathlib.Algebra.Polynomial.Smeval._hyg.83
code: /-- Evaluate a polynomial `p` in the scalar semiring `R` at an element `x` in the target `S` using
scalar multiple `R`-action. -/
irreducible_def smeval : S 
goal: S

full_name: Polynomial.smeval
code: /-- Evaluate a polynomial `p` in the scalar semiring `R` at an element `x` in the target `S` using
scalar multiple `R`-action. -/
irreducible_def smeval : S 
goal: S

full_name: Polynomial.smeval_def
code: /-- Evaluate a polynomial `p` in the scalar semiring `R` at an element `x` in the target `S` using
scalar multiple `R`-action. -/
irreducible_def smeval : S 
goal: p.smeval x = p.sum (Polynomial.smul_pow x)

full_name: Polynomial.smeval_eq_sum
code: theorem smeval_eq_sum : p.smeval x = p.sum (smul_pow x) 
goal: p.smeval x = p.sum (Polynomial.smul_pow x)

full_name: Polynomial.smeval_C
code: @[simp]
theorem smeval_C : (C r).smeval x = r • x ^ 0 
goal: (Polynomial.C r).smeval x = r • x ^ 0

full_name: Polynomial.smeval_monomial
code: @[simp]
theorem smeval_monomial (n : ℕ) :
    (monomial n r).smeval x = r • x ^ n 
goal: ((Polynomial.monomial n) r).smeval x = r • x ^ n

full_name: Polynomial.eval_eq_smeval
code: theorem eval_eq_smeval : p.eval r = p.smeval r 
goal: Polynomial.eval r p = p.smeval r

full_name: Polynomial.eval₂_eq_smeval
code: theorem eval₂_eq_smeval (R : Type*) [Semiring R] {S : Type*} [Semiring S] (f : R →+* S) (p : R[X])
    (x : S) : letI : Module R S := RingHom.toModule f
    p.eval₂ f x = p.smeval x 
goal: Polynomial.eval₂ f x p = p.smeval x

full_name: Polynomial.smeval_zero
code: @[simp]
theorem smeval_zero : (0 : R[X]).smeval x = 0 
goal: Polynomial.smeval 0 x = 0

full_name: Polynomial.smeval_one
code: @[simp]
theorem smeval_one : (1 : R[X]).smeval x = 1 • x ^ 0 
goal: Polynomial.smeval 1 x = 1 • x ^ 0

full_name: Polynomial.smeval_X
code: @[simp]
theorem smeval_X :
    (X : R[X]).smeval x = x ^ 1 
goal: Polynomial.X.smeval x = x ^ 1

full_name: Polynomial.smeval_X_pow
code: @[simp]
theorem smeval_X_pow {n : ℕ} :
    (X ^ n : R[X]).smeval x = x ^ n 
goal: (Polynomial.X ^ n).smeval x = x ^ n

full_name: Polynomial.smeval_add
code: @[simp]
theorem smeval_add : (p + q).smeval x = p.smeval x + q.smeval x 
goal: (p + q).smeval x = p.smeval x + q.smeval x

full_name: Polynomial.smeval_natCast
code: theorem smeval_natCast (n : ℕ) : (n : R[X]).smeval x = n • x ^ 0 
goal: (↑n).smeval x = n • x ^ 0

full_name: Polynomial.smeval_smul
code: @[simp]
theorem smeval_smul (r : R) : (r • p).smeval x = r • p.smeval x 
goal: (r • p).smeval x = r • p.smeval x

full_name: Polynomial.smeval.linearMap
code: /-- `Polynomial.smeval` as a linear map. -/
def smeval.linearMap : R[X] →ₗ[R] S 
goal: Polynomial R →ₗ[R] S

full_name: Polynomial.smeval.linearMap_apply
code: @[simp]
theorem smeval.linearMap_apply : smeval.linearMap R x p = p.smeval x 
goal: (Polynomial.smeval.linearMap R x) p = p.smeval x

full_name: Polynomial.leval_coe_eq_smeval
code: theorem leval_coe_eq_smeval {R : Type*} [Semiring R] (r : R) :
    ⇑(leval r) = fun p => p.smeval r 
goal: ⇑(Polynomial.leval r) = fun p => p.smeval r

full_name: Polynomial.leval_eq_smeval.linearMap
code: theorem leval_eq_smeval.linearMap {R : Type*} [Semiring R] (r : R) :
    leval r = smeval.linearMap R r 
goal: Polynomial.leval r = Polynomial.smeval.linearMap R r

full_name: Polynomial.smeval_neg
code: @[simp]
theorem smeval_neg : (-p).smeval x = - p.smeval x 
goal: (-p).smeval x = -p.smeval x

full_name: Polynomial.smeval_sub
code: @[simp]
theorem smeval_sub : (p - q).smeval x = p.smeval x - q.smeval x 
goal: (p - q).smeval x = p.smeval x - q.smeval x

full_name: Polynomial.smeval_neg_nat
code: theorem smeval_neg_nat (S : Type*) [NonAssocRing S] [Pow S ℕ] [NatPowAssoc S] (q : ℕ[X])
    (n : ℕ) : q.smeval (-(n : S)) = q.smeval (-n : ℤ) 
goal: q.smeval (-↑n) = ↑(q.smeval (-↑n))

full_name: Polynomial.smeval_at_natCast
code: theorem smeval_at_natCast (q : ℕ[X]) : ∀(n : ℕ), q.smeval (n : S) = q.smeval n 
goal: q.smeval ↑n = ↑(q.smeval n)

full_name: Polynomial.smeval_at_zero
code: theorem smeval_at_zero : p.smeval (0 : S) = (p.coeff 0) • (1 : S)  
goal: p.smeval 0 = p.coeff 0 • 1

full_name: Polynomial.smeval_mul_X
code: theorem smeval_mul_X : (p * X).smeval x = p.smeval x * x 
goal: (p * Polynomial.X).smeval x = p.smeval x * x

full_name: Polynomial.smeval_X_mul
code: theorem smeval_X_mul : (X * p).smeval x = x * p.smeval x 
goal: (Polynomial.X * p).smeval x = x * p.smeval x

full_name: Polynomial.smeval_assoc_X_pow
code: theorem smeval_assoc_X_pow (m n : ℕ) :
    p.smeval x * x ^ m * x ^ n = p.smeval x * (x ^ m * x ^ n) 
goal: p.smeval x * x ^ m * x ^ n = p.smeval x * (x ^ m * x ^ n)

full_name: Polynomial.smeval_mul_X_pow
code: theorem smeval_mul_X_pow : ∀ (n : ℕ), (p * X^n).smeval x = p.smeval x * x^n
  
goal: (p * Polynomial.X ^ n).smeval x = p.smeval x * x ^ n

full_name: Polynomial.smeval_X_pow_assoc
code: theorem smeval_X_pow_assoc (m n : ℕ) :
    x ^ m * x ^ n * p.smeval x = x ^ m * (x ^ n * p.smeval x) 
goal: x ^ m * x ^ n * p.smeval x = x ^ m * (x ^ n * p.smeval x)

full_name: Polynomial.smeval_X_pow_mul
code: theorem smeval_X_pow_mul : ∀ (n : ℕ), (X^n * p).smeval x = x^n * p.smeval x
  
goal: (Polynomial.X ^ n * p).smeval x = x ^ n * p.smeval x

full_name: Polynomial.smeval_C_mul
code: theorem smeval_C_mul : (C r * p).smeval x = r • p.smeval x 
goal: (Polynomial.C r * p).smeval x = r • p.smeval x

full_name: Polynomial.smeval_monomial_mul
code: theorem smeval_monomial_mul (n : ℕ) :
    (monomial n r * p).smeval x = r • (x ^ n * p.smeval x) 
goal: ((Polynomial.monomial n) r * p).smeval x = r • (x ^ n * p.smeval x)

full_name: Polynomial.smeval_mul
code: theorem smeval_mul : (p * q).smeval x  = p.smeval x * q.smeval x 
goal: (p * q).smeval x = p.smeval x * q.smeval x

full_name: Polynomial.smeval_pow
code: theorem smeval_pow : ∀ (n : ℕ), (p^n).smeval x = (p.smeval x)^n
  
goal: (p ^ n).smeval x = p.smeval x ^ n

full_name: Polynomial.smeval_comp
code: theorem smeval_comp : (p.comp q).smeval x  = p.smeval (q.smeval x) 
goal: (p.comp q).smeval x = p.smeval (q.smeval x)

full_name: Polynomial.smeval_commute_left
code: theorem smeval_commute_left (hc : Commute x y) : Commute (p.smeval x) y 
goal: Commute (p.smeval x) y

full_name: Polynomial.smeval_commute
code: theorem smeval_commute (hc : Commute x y) : Commute (p.smeval x) (q.smeval y) 
goal: Commute (p.smeval x) (q.smeval y)

full_name: Polynomial.aeval_eq_smeval
code: theorem aeval_eq_smeval {R : Type*} [CommSemiring R] {S : Type*} [Semiring S] [Algebra R S]
    (x : S) (p : R[X]) : aeval x p = p.smeval x 
goal: (Polynomial.aeval x) p = p.smeval x

full_name: Polynomial.aeval_coe_eq_smeval
code: theorem aeval_coe_eq_smeval {R : Type*} [CommSemiring R] {S : Type*} [Semiring S] [Algebra R S]
    (x : S) : ⇑(aeval x) = fun (p : R[X]) => p.smeval x 
goal: ⇑(Polynomial.aeval x) = fun p => p.smeval x