File: Mathlib/RingTheory/Polynomial/Nilpotent.lean

full_name: Polynomial.isNilpotent_C_mul_pow_X_of_isNilpotent
code: lemma isNilpotent_C_mul_pow_X_of_isNilpotent (n : ℕ) (hnil : IsNilpotent r) :
    IsNilpotent ((C r) * X ^ n) 
goal: IsNilpotent (Polynomial.C r * Polynomial.X ^ n)

full_name: Polynomial.isNilpotent_pow_X_mul_C_of_isNilpotent
code: lemma isNilpotent_pow_X_mul_C_of_isNilpotent (n : ℕ) (hnil : IsNilpotent r) :
    IsNilpotent (X ^ n * (C r)) 
goal: IsNilpotent (Polynomial.X ^ n * Polynomial.C r)

full_name: Polynomial.isNilpotent_monomial_iff
code: @[simp] lemma isNilpotent_monomial_iff {n : ℕ} :
    IsNilpotent (monomial (R := R) n r) ↔ IsNilpotent r 
goal: IsNilpotent ((Polynomial.monomial n) r) ↔ IsNilpotent r

full_name: Polynomial.isNilpotent_C_iff
code: @[simp] lemma isNilpotent_C_iff :
    IsNilpotent (C r) ↔ IsNilpotent r 
goal: IsNilpotent (Polynomial.C r) ↔ IsNilpotent r

full_name: Polynomial.isNilpotent_X_mul_iff
code: @[simp] lemma isNilpotent_X_mul_iff :
    IsNilpotent (X * P) ↔ IsNilpotent P 
goal: IsNilpotent (Polynomial.X * P) ↔ IsNilpotent P

full_name: Polynomial.isNilpotent_mul_X_iff
code: @[simp] lemma isNilpotent_mul_X_iff :
    IsNilpotent (P * X) ↔ IsNilpotent P 
goal: IsNilpotent (P * Polynomial.X) ↔ IsNilpotent P

full_name: Polynomial.isNilpotent_iff
code: protected lemma isNilpotent_iff :
    IsNilpotent P ↔ ∀ i, IsNilpotent (coeff P i) 
goal: IsNilpotent P ↔ ∀ (i : ℕ), IsNilpotent (P.coeff i)

full_name: Polynomial.isNilpotent_reflect_iff
code: @[simp] lemma isNilpotent_reflect_iff {P : R[X]} {N : ℕ} (hN : P.natDegree ≤ N) :
    IsNilpotent (reflect N P) ↔ IsNilpotent P 
goal: IsNilpotent (Polynomial.reflect N P) ↔ IsNilpotent P

full_name: Polynomial.isNilpotent_reverse_iff
code: @[simp] lemma isNilpotent_reverse_iff :
    IsNilpotent P.reverse ↔ IsNilpotent P 
goal: IsNilpotent P.reverse ↔ IsNilpotent P

full_name: Polynomial.isUnit_of_coeff_isUnit_isNilpotent
code: /-- Let `P` be a polynomial over `R`. If its constant term is a unit and its other coefficients are
nilpotent, then `P` is a unit.

See also `Polynomial.isUnit_iff_coeff_isUnit_isNilpotent`. -/
theorem isUnit_of_coeff_isUnit_isNilpotent (hunit : IsUnit (P.coeff 0))
    (hnil : ∀ i, i ≠ 0 → IsNilpotent (P.coeff i)) : IsUnit P 
goal: IsUnit P

full_name: Polynomial.coeff_isUnit_isNilpotent_of_isUnit
code: /-- Let `P` be a polynomial over `R`. If `P` is a unit, then all its coefficients are nilpotent,
except its constant term which is a unit.

See also `Polynomial.isUnit_iff_coeff_isUnit_isNilpotent`. -/
theorem coeff_isUnit_isNilpotent_of_isUnit (hunit : IsUnit P) :
    IsUnit (P.coeff 0) ∧ (∀ i, i ≠ 0 → IsNilpotent (P.coeff i)) 
goal: IsUnit (P.coeff 0) ∧ ∀ (i : ℕ), i ≠ 0 → IsNilpotent (P.coeff i)

full_name: Polynomial.isUnit_iff_coeff_isUnit_isNilpotent
code: /-- Let `P` be a polynomial over `R`. `P` is a unit if and only if all its coefficients are
nilpotent, except its constant term which is a unit.

See also `Polynomial.isUnit_iff'`. -/
theorem isUnit_iff_coeff_isUnit_isNilpotent :
    IsUnit P ↔ IsUnit (P.coeff 0) ∧ (∀ i, i ≠ 0 → IsNilpotent (P.coeff i)) 
goal: IsUnit P ↔ IsUnit (P.coeff 0) ∧ ∀ (i : ℕ), i ≠ 0 → IsNilpotent (P.coeff i)

full_name: Polynomial.isUnit_C_add_X_mul_iff
code: @[simp] lemma isUnit_C_add_X_mul_iff :
    IsUnit (C r + X * P) ↔ IsUnit r ∧ IsNilpotent P 
goal: IsUnit (Polynomial.C r + Polynomial.X * P) ↔ IsUnit r ∧ IsNilpotent P

full_name: Polynomial.isUnit_iff'
code: lemma isUnit_iff' :
    IsUnit P ↔ IsUnit (eval 0 P) ∧ IsNilpotent (P /ₘ X)  
goal: IsUnit P ↔ IsUnit (Polynomial.eval 0 P) ∧ IsNilpotent (P /ₘ Polynomial.X)

full_name: Polynomial.not_isUnit_of_natDegree_pos_of_isReduced
code: theorem not_isUnit_of_natDegree_pos_of_isReduced [IsReduced R] (p : R[X])
    (hpl : 0 < p.natDegree) : ¬ IsUnit p 
goal: ¬IsUnit p

full_name: Polynomial.not_isUnit_of_degree_pos_of_isReduced
code: theorem not_isUnit_of_degree_pos_of_isReduced [IsReduced R] (p : R[X])
    (hpl : 0 < p.degree) : ¬ IsUnit p 
goal: ¬IsUnit p

full_name: Polynomial.isNilpotent_aeval_sub_of_isNilpotent_sub
code: lemma isNilpotent_aeval_sub_of_isNilpotent_sub (h : IsNilpotent (a - b)) :
    IsNilpotent (aeval a P - aeval b P) 
goal: IsNilpotent ((Polynomial.aeval a) P - (Polynomial.aeval b) P)

full_name: Polynomial.isUnit_aeval_of_isUnit_aeval_of_isNilpotent_sub
code: lemma isUnit_aeval_of_isUnit_aeval_of_isNilpotent_sub
    (hb : IsUnit (aeval b P)) (hab : IsNilpotent (a - b)) :
    IsUnit (aeval a P) 
goal: IsUnit ((Polynomial.aeval a) P)