Module docstring
{"# Degree of univariate monomials "}
{"# Degree of univariate monomials "}
Polynomial.natDegree_le_pred
      theorem
     (hf : p.natDegree ≤ n) (hn : p.coeff n = 0) : p.natDegree ≤ n - 1
        lemma natDegree_le_pred (hf : p.natDegree ≤ n) (hn : p.coeff n = 0) : p.natDegree ≤ n - 1 := by
  obtain _ | n := n
  · exact hf
  · refine (Nat.le_succ_iff_eq_or_le.1 hf).resolve_left fun h ↦ ?_
    rw [← Nat.succ_eq_add_one, ← h, coeff_natDegree, leadingCoeff_eq_zero] at hn
    aesop
        Polynomial.monomial_natDegree_leadingCoeff_eq_self
      theorem
     (h : #p.support ≤ 1) : monomial p.natDegree p.leadingCoeff = p
        theorem monomial_natDegree_leadingCoeff_eq_self (h : #p.support ≤ 1) :
    monomial p.natDegree p.leadingCoeff = p := by
  classical
  rcases card_support_le_one_iff_monomial.1 h with ⟨n, a, rfl⟩
  by_cases ha : a = 0 <;> simp [ha]
        Polynomial.C_mul_X_pow_eq_self
      theorem
     (h : #p.support ≤ 1) : C p.leadingCoeff * X ^ p.natDegree = p
        theorem C_mul_X_pow_eq_self (h : #p.support ≤ 1) : C p.leadingCoeff * X ^ p.natDegree = p := by
  rw [C_mul_X_pow_eq_monomial, monomial_natDegree_leadingCoeff_eq_self h]