ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- WittVector.wittZSMul_vars
theorem wittZSMul_vars (m : ℤ) (n : ℕ) :
    (wittZSMul p m n).vars ⊆ Finset.univ ×ˢ Finset.range (n + 1) 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (m : ℤ) (n : ℕ)
Goal: (WittVector.wittZSMul p m n).vars ⊆ Finset.univ ×ˢ Finset.range (n + 1)
-- WittVector.wittPow_vars
theorem wittPow_vars (m : ℕ) (n : ℕ) : (wittPow p m n).vars ⊆ Finset.univ ×ˢ Finset.range (n + 1) 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (m n : ℕ)
Goal: (WittVector.wittPow p m n).vars ⊆ Finset.univ ×ˢ Finset.range (n + 1)
-- wittPolynomial_eq_sum_C_mul_X_pow
theorem wittPolynomial_eq_sum_C_mul_X_pow (n : ℕ) :
    wittPolynomial p R n = ∑ i ∈ range (n + 1), C ((p : R) ^ i) * X i ^ p ^ (n - i) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] (n : ℕ)
Goal: W_ R n = ∑ i ∈ Finset.range (n + 1), MvPolynomial.C (↑p ^ i) * MvPolynomial.X i ^ p ^ (n - i)
-- map_wittPolynomial
@[simp]
theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n 
Arguments: (p : ℕ) {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) (n : ℕ)
Goal: (MvPolynomial.map f) (W_ R n) = W_ S n
-- constantCoeff_wittPolynomial
@[simp]
theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
    constantCoeff (wittPolynomial p R n) = 0 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [hp : Fact (Nat.Prime p)] (n : ℕ)
Goal: MvPolynomial.constantCoeff (W_ R n) = 0
-- wittPolynomial_zero
@[simp]
theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R]
Goal: W_ R 0 = MvPolynomial.X 0
-- wittPolynomial_one
@[simp]
theorem wittPolynomial_one : wittPolynomial p R 1 = C (p : R) * X 1 + X 0 ^ p 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R]
Goal: W_ R 1 = MvPolynomial.C ↑p * MvPolynomial.X 1 + MvPolynomial.X 0 ^ p
-- aeval_wittPolynomial
theorem aeval_wittPolynomial {A : Type*} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
    aeval f (W_ R n) = ∑ i ∈ range (n + 1), (p : A) ^ i * f i ^ p ^ (n - i) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] {A : Type u_3} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ)
Goal: (MvPolynomial.aeval f) (W_ R n) = ∑ i ∈ Finset.range (n + 1), ↑p ^ i * f i ^ p ^ (n - i)
-- wittPolynomial_zmod_self
@[simp]
theorem wittPolynomial_zmod_self (n : ℕ) :
    W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) 
Arguments: (p n : ℕ)
Goal: W_ (ZMod (p ^ (n + 1))) (n + 1) = (MvPolynomial.expand p) (W_ (ZMod (p ^ (n + 1))) n)
-- wittPolynomial_vars
theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars = range (n + 1) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [hp : NeZero p] [CharZero R] (n : ℕ)
Goal: (W_ R n).vars = Finset.range (n + 1)
-- wittPolynomial_vars_subset
theorem wittPolynomial_vars_subset (n : ℕ) : (wittPolynomial p R n).vars ⊆ range (n + 1) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [hp : NeZero p] (n : ℕ)
Goal: (W_ R n).vars ⊆ Finset.range (n + 1)
-- xInTermsOfW_eq
theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} : xInTermsOfW p R n =
    (X n - ∑ i ∈ range n, C ((p : R) ^ i) *
      xInTermsOfW p R i ^ p ^ (n - i)) * C ((⅟p : R) ^ n) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [Invertible ↑p] {n : ℕ}
Goal: xInTermsOfW p R n =
  (MvPolynomial.X n - ∑ i ∈ Finset.range n, MvPolynomial.C (↑p ^ i) * xInTermsOfW p R i ^ p ^ (n - i)) *
    MvPolynomial.C (⅟↑p ^ n)
-- constantCoeff_xInTermsOfW
@[simp]
theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n : ℕ) :
    constantCoeff (xInTermsOfW p R n) = 0 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [hp : Fact (Nat.Prime p)] [Invertible ↑p] (n : ℕ)
Goal: MvPolynomial.constantCoeff (xInTermsOfW p R n) = 0
-- xInTermsOfW_zero
@[simp]
theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = X 0 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [Invertible ↑p]
Goal: xInTermsOfW p R 0 = MvPolynomial.X 0
-- xInTermsOfW_vars_aux
theorem xInTermsOfW_vars_aux (n : ℕ) :
    n ∈ (xInTermsOfW p ℚ n).vars ∧ (xInTermsOfW p ℚ n).vars ⊆ range (n + 1) 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (n : ℕ)
Goal: n ∈ (xInTermsOfW p ℚ n).vars ∧ (xInTermsOfW p ℚ n).vars ⊆ Finset.range (n + 1)
-- xInTermsOfW_vars_subset
theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range (n + 1) 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (n : ℕ)
Goal: (xInTermsOfW p ℚ n).vars ⊆ Finset.range (n + 1)
-- xInTermsOfW_aux
theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
    xInTermsOfW p R n * C ((p : R) ^ n) =
      X n - ∑ i ∈ range n, C ((p : R) ^ i) * xInTermsOfW p R i ^ p ^ (n - i) 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [Invertible ↑p] (n : ℕ)
Goal: xInTermsOfW p R n * MvPolynomial.C (↑p ^ n) =
  MvPolynomial.X n - ∑ i ∈ Finset.range n, MvPolynomial.C (↑p ^ i) * xInTermsOfW p R i ^ p ^ (n - i)
-- bind₁_xInTermsOfW_wittPolynomial
@[simp]
theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
    bind₁ (xInTermsOfW p R) (W_ R k) = X k 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [Invertible ↑p] (k : ℕ)
Goal: (MvPolynomial.bind₁ (xInTermsOfW p R)) (W_ R k) = MvPolynomial.X k
-- bind₁_wittPolynomial_xInTermsOfW
@[simp]
theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
    bind₁ (W_ R) (xInTermsOfW p R n) = X n 
Arguments: (p : ℕ) (R : Type u_1) [CommRing R] [Invertible ↑p] (n : ℕ)
Goal: (MvPolynomial.bind₁ (W_ R)) (xInTermsOfW p R n) = MvPolynomial.X n
-- Polynomial.mem_degreeLE
theorem mem_degreeLE {n : WithBot ℕ} {f : R[X]} : f ∈ degreeLE R n ↔ degree f ≤ n 
Arguments: {R : Type u} [Semiring R] {n : WithBot ℕ} {f : R[X]}
Goal: f ∈ Polynomial.degreeLE R n ↔ f.degree ≤ n
-- Polynomial.degreeLE_mono
@[mono]
theorem degreeLE_mono {m n : WithBot ℕ} (H : m ≤ n) : degreeLE R m ≤ degreeLE R n 
Arguments: {R : Type u} [Semiring R] {m n : WithBot ℕ} (H : m ≤ n)
Goal: Polynomial.degreeLE R m ≤ Polynomial.degreeLE R n
-- Polynomial.degreeLE_eq_span_X_pow
theorem degreeLE_eq_span_X_pow [DecidableEq R] {n : ℕ} :
    degreeLE R n = Submodule.span R ↑((Finset.range (n + 1)).image fun n => (X : R[X]) ^ n) 
Arguments: {R : Type u} [Semiring R] [DecidableEq R] {n : ℕ}
Goal: Polynomial.degreeLE R ↑n = Submodule.span R ↑(Finset.image (fun n => Polynomial.X ^ n) (Finset.range (n + 1)))
-- Polynomial.mem_degreeLT
theorem mem_degreeLT {n : ℕ} {f : R[X]} : f ∈ degreeLT R n ↔ degree f < n 
Arguments: {R : Type u} [Semiring R] {n : ℕ} {f : R[X]}
Goal: f ∈ Polynomial.degreeLT R n ↔ f.degree < ↑n
-- Polynomial.degreeLT_mono
@[mono]
theorem degreeLT_mono {m n : ℕ} (H : m ≤ n) : degreeLT R m ≤ degreeLT R n 
Arguments: {R : Type u} [Semiring R] {m n : ℕ} (H : m ≤ n)
Goal: Polynomial.degreeLT R m ≤ Polynomial.degreeLT R n
-- Polynomial.degreeLT_eq_span_X_pow
theorem degreeLT_eq_span_X_pow [DecidableEq R] {n : ℕ} :
    degreeLT R n = Submodule.span R ↑((Finset.range n).image fun n => X ^ n : Finset R[X]) 
Arguments: {R : Type u} [Semiring R] [DecidableEq R] {n : ℕ}
Goal: Polynomial.degreeLT R n = Submodule.span R ↑(Finset.image (fun n => Polynomial.X ^ n) (Finset.range n))
-- Polynomial.degreeLTEquiv_eq_zero_iff_eq_zero
theorem degreeLTEquiv_eq_zero_iff_eq_zero {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n) :
    degreeLTEquiv _ _ ⟨p, hp⟩ = 0 ↔ p = 0 
Arguments: {R : Type u} [Semiring R] {n : ℕ} {p : R[X]} (hp : p ∈ Polynomial.degreeLT R n)
Goal: (Polynomial.degreeLTEquiv R n) ⟨p, hp⟩ = 0 ↔ p = 0
-- Polynomial.eval_eq_sum_degreeLTEquiv
theorem eval_eq_sum_degreeLTEquiv {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n) (x : R) :
    p.eval x = ∑ i, degreeLTEquiv _ _ ⟨p, hp⟩ i * x ^ (i : ℕ) 
Arguments: {R : Type u} [Semiring R] {n : ℕ} {p : R[X]} (hp : p ∈ Polynomial.degreeLT R n) (x : R)
Goal: Polynomial.eval x p = ∑ i : Fin n, (Polynomial.degreeLTEquiv R n) ⟨p, hp⟩ i * x ^ ↑i
-- Polynomial.degreeLT_succ_eq_degreeLE
theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n 
Arguments: {R : Type u} [Semiring R] {n : ℕ}
Goal: Polynomial.degreeLT R (n + 1) = Polynomial.degreeLE R ↑n
-- Polynomial.exists_degree_le_of_mem_span
theorem exists_degree_le_of_mem_span {s : Set R[X]} {p : R[X]}
    (hs : s.Nonempty) (hp : p ∈ Submodule.span R s) :
    ∃ p' ∈ s, degree p ≤ degree p' 
Arguments: {R : Type u} [Semiring R] {s : Set R[X]} {p : R[X]} (hs : s.Nonempty) (hp : p ∈ Submodule.span R s)
Goal: ∃ p' ∈ s, p.degree ≤ p'.degree
-- Polynomial.exists_degree_le_of_mem_span_of_finite
theorem exists_degree_le_of_mem_span_of_finite {s : Set R[X]} (s_fin : s.Finite) (hs : s.Nonempty) :
    ∃ p' ∈ s, ∀ (p : R[X]), p ∈ Submodule.span R s → degree p ≤ degree p' 
Arguments: {R : Type u} [Semiring R] {s : Set R[X]} (s_fin : s.Finite) (hs : s.Nonempty)
Goal: ∃ p' ∈ s, ∀ p ∈ Submodule.span R s, p.degree ≤ p'.degree
-- Polynomial.span_le_degreeLE_of_finite
theorem span_le_degreeLE_of_finite {s : Set R[X]} (s_fin : s.Finite) :
    ∃ n : ℕ, Submodule.span R s ≤ degreeLE R n 
Arguments: {R : Type u} [Semiring R] {s : Set R[X]} (s_fin : s.Finite)
Goal: ∃ n, Submodule.span R s ≤ Polynomial.degreeLE R ↑n
-- Polynomial.span_of_finite_le_degreeLT
theorem span_of_finite_le_degreeLT {s : Set R[X]} (s_fin : s.Finite) :
    ∃ n : ℕ, Submodule.span R s ≤ degreeLT R n 
Arguments: {R : Type u} [Semiring R] {s : Set R[X]} (s_fin : s.Finite)
Goal: ∃ n, Submodule.span R s ≤ Polynomial.degreeLT R n
-- Polynomial.not_finite
theorem not_finite [Nontrivial R] : ¬ Module.Finite R R[X] 
Arguments: {R : Type u} [Semiring R] [Nontrivial R]
Goal: ¬Module.Finite R R[X]
-- Polynomial.coeffs_zero
theorem coeffs_zero : coeffs (0 : R[X]) = ∅ 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.coeffs 0 = ∅
-- Polynomial.mem_coeffs_iff
theorem mem_coeffs_iff {p : R[X]} {c : R} : c ∈ p.coeffs ↔ ∃ n ∈ p.support, c = p.coeff n 
Arguments: {R : Type u} [Semiring R] {p : R[X]} {c : R}
Goal: c ∈ p.coeffs ↔ ∃ n ∈ p.support, c = p.coeff n
-- Polynomial.coeffs_one
theorem coeffs_one : coeffs (1 : R[X]) ⊆ {1} 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.coeffs 1 ⊆ {1}
-- Polynomial.coeff_mem_coeffs
theorem coeff_mem_coeffs (p : R[X]) (n : ℕ) (h : p.coeff n ≠ 0) : p.coeff n ∈ p.coeffs 
Arguments: {R : Type u} [Semiring R] (p : R[X]) (n : ℕ) (h : p.coeff n ≠ 0)
Goal: p.coeff n ∈ p.coeffs
-- Polynomial.geom_sum_X_comp_X_add_one_eq_sum
theorem geom_sum_X_comp_X_add_one_eq_sum (n : ℕ) :
    (∑ i ∈ range n, (X : R[X]) ^ i).comp (X + 1) =
      (Finset.range n).sum fun i : ℕ => (n.choose (i + 1) : R[X]) * X ^ i 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: (∑ i ∈ Finset.range n, Polynomial.X ^ i).comp (Polynomial.X + 1) =
  ∑ i ∈ Finset.range n, ↑(n.choose (i + 1)) * Polynomial.X ^ i
-- Polynomial.Monic.geom_sum
theorem Monic.geom_sum {P : R[X]} (hP : P.Monic) (hdeg : 0 < P.natDegree) {n : ℕ} (hn : n ≠ 0) :
    (∑ i ∈ range n, P ^ i).Monic 
Arguments: {R : Type u} [Semiring R] {P : R[X]} (hP : P.Monic) (hdeg : 0 < P.natDegree) {n : ℕ} (hn : n ≠ 0)
Goal: (∑ i ∈ Finset.range n, P ^ i).Monic
-- Polynomial.Monic.geom_sum'
theorem Monic.geom_sum' {P : R[X]} (hP : P.Monic) (hdeg : 0 < P.degree) {n : ℕ} (hn : n ≠ 0) :
    (∑ i ∈ range n, P ^ i).Monic 
Arguments: {R : Type u} [Semiring R] {P : R[X]} (hP : P.Monic) (hdeg : 0 < P.degree) {n : ℕ} (hn : n ≠ 0)
Goal: (∑ i ∈ Finset.range n, P ^ i).Monic
-- Polynomial.monic_geom_sum_X
theorem monic_geom_sum_X {n : ℕ} (hn : n ≠ 0) : (∑ i ∈ range n, (X : R[X]) ^ i).Monic 
Arguments: {R : Type u} [Semiring R] {n : ℕ} (hn : n ≠ 0)
Goal: (∑ i ∈ Finset.range n, Polynomial.X ^ i).Monic
-- Polynomial.coeff_restriction
@[simp]
theorem coeff_restriction {p : R[X]} {n : ℕ} : ↑(coeff (restriction p) n) = coeff p n 
Arguments: {R : Type u} [Ring R] {p : R[X]} {n : ℕ}
Goal: ↑(p.restriction.coeff n) = p.coeff n
-- Polynomial.coeff_restriction'
theorem coeff_restriction' {p : R[X]} {n : ℕ} : (coeff (restriction p) n).1 = coeff p n 
Arguments: {R : Type u} [Ring R] {p : R[X]} {n : ℕ}
Goal: ↑(p.restriction.coeff n) = p.coeff n
-- Polynomial.support_restriction
@[simp]
theorem support_restriction (p : R[X]) : support (restriction p) = support p 
Arguments: {R : Type u} [Ring R] (p : R[X])
Goal: p.restriction.support = p.support
-- Polynomial.map_restriction
@[simp]
theorem map_restriction {R : Type u} [CommRing R] (p : R[X]) :
    p.restriction.map (algebraMap _ _) = p 
Arguments: {R : Type u} [CommRing R] (p : R[X])
Goal: Polynomial.map (algebraMap (↥(Subring.closure ↑p.coeffs)) R) p.restriction = p
-- Polynomial.degree_restriction
@[simp]
theorem degree_restriction {p : R[X]} : (restriction p).degree = p.degree 
Arguments: {R : Type u} [Ring R] {p : R[X]}
Goal: p.restriction.degree = p.degree
-- Polynomial.natDegree_restriction
@[simp]
theorem natDegree_restriction {p : R[X]} : (restriction p).natDegree = p.natDegree 
Arguments: {R : Type u} [Ring R] {p : R[X]}
Goal: p.restriction.natDegree = p.natDegree
-- Polynomial.monic_restriction
@[simp]
theorem monic_restriction {p : R[X]} : Monic (restriction p) ↔ Monic p 
Arguments: {R : Type u} [Ring R] {p : R[X]}
Goal: p.restriction.Monic ↔ p.Monic
-- Polynomial.restriction_zero
@[simp]
theorem restriction_zero : restriction (0 : R[X]) = 0 
Arguments: {R : Type u} [Ring R]
Goal: Polynomial.restriction 0 = 0
-- Polynomial.restriction_one
@[simp]
theorem restriction_one : restriction (1 : R[X]) = 1 
Arguments: {R : Type u} [Ring R]
Goal: Polynomial.restriction 1 = 1
-- Polynomial.eval₂_restriction
theorem eval₂_restriction {p : R[X]} :
    eval₂ f x p =
      eval₂ (f.comp (Subring.subtype (Subring.closure (p.coeffs : Set R)))) x p.restriction 
Arguments: {R : Type u} {S : Type u_1} [Ring R] [Semiring S] {f : R →+* S} {x : S} {p : R[X]}
Goal: Polynomial.eval₂ f x p = Polynomial.eval₂ (f.comp (Subring.closure ↑p.coeffs).subtype) x p.restriction
-- Polynomial.coeff_toSubring
@[simp]
theorem coeff_toSubring {n : ℕ} : ↑(coeff (toSubring p T hp) n) = coeff p n 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T) {n : ℕ}
Goal: ↑((p.toSubring T hp).coeff n) = p.coeff n
-- Polynomial.coeff_toSubring'
theorem coeff_toSubring' {n : ℕ} : (coeff (toSubring p T hp) n).1 = coeff p n 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T) {n : ℕ}
Goal: ↑((p.toSubring T hp).coeff n) = p.coeff n
-- Polynomial.support_toSubring
@[simp]
theorem support_toSubring : support (toSubring p T hp) = support p 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T)
Goal: (p.toSubring T hp).support = p.support
-- Polynomial.degree_toSubring
@[simp]
theorem degree_toSubring : (toSubring p T hp).degree = p.degree 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T)
Goal: (p.toSubring T hp).degree = p.degree
-- Polynomial.natDegree_toSubring
@[simp]
theorem natDegree_toSubring : (toSubring p T hp).natDegree = p.natDegree 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T)
Goal: (p.toSubring T hp).natDegree = p.natDegree
-- Polynomial.monic_toSubring
@[simp]
theorem monic_toSubring : Monic (toSubring p T hp) ↔ Monic p 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T)
Goal: (p.toSubring T hp).Monic ↔ p.Monic
-- Polynomial.toSubring_zero
@[simp]
theorem toSubring_zero : toSubring (0 : R[X]) T (by simp [coeffs]) = 0 
Arguments: {R : Type u} [Ring R] (T : Subring R)
Goal: Polynomial.toSubring 0 T ⋯ = 0
-- Polynomial.toSubring_one
@[simp]
theorem toSubring_one :
    toSubring (1 : R[X]) T
        (Set.Subset.trans coeffs_one <| Finset.singleton_subset_set_iff.2 T.one_mem) =
      1 
Arguments: {R : Type u} [Ring R] (T : Subring R)
Goal: Polynomial.toSubring 1 T ⋯ = 1
-- Polynomial.map_toSubring
@[simp]
theorem map_toSubring : (p.toSubring T hp).map (Subring.subtype T) = p 
Arguments: {R : Type u} [Ring R] (p : R[X]) (T : Subring R) (hp : ↑p.coeffs ⊆ ↑T)
Goal: Polynomial.map T.subtype (p.toSubring T hp) = p
-- Polynomial.coeff_ofSubring
theorem coeff_ofSubring (p : T[X]) (n : ℕ) : coeff (ofSubring T p) n = (coeff p n : T) 
Arguments: {R : Type u} [Ring R] (T : Subring R) (p : (↥T)[X]) (n : ℕ)
Goal: (Polynomial.ofSubring T p).coeff n = ↑(p.coeff n)
-- Polynomial.coeffs_ofSubring
@[simp]
theorem coeffs_ofSubring {p : T[X]} : (↑(p.ofSubring T).coeffs : Set R) ⊆ T 
Arguments: {R : Type u} [Ring R] (T : Subring R) {p : (↥T)[X]}
Goal: ↑(Polynomial.ofSubring T p).coeffs ⊆ ↑T
-- Polynomial.mem_ker_modByMonic
theorem mem_ker_modByMonic (hq : q.Monic) {p : R[X]} :
    p ∈ LinearMap.ker (modByMonicHom q) ↔ q ∣ p 
Arguments: {R : Type u} [CommRing R] {q : R[X]} (hq : q.Monic) {p : R[X]}
Goal: p ∈ LinearMap.ker q.modByMonicHom ↔ q ∣ p
-- Polynomial.ker_modByMonicHom
@[simp]
theorem ker_modByMonicHom (hq : q.Monic) :
    LinearMap.ker (Polynomial.modByMonicHom q) = (Ideal.span {q}).restrictScalars R 
Arguments: {R : Type u} [CommRing R] {q : R[X]} (hq : q.Monic)
Goal: LinearMap.ker q.modByMonicHom = Submodule.restrictScalars R (Ideal.span {q})
-- Ideal.mem_ofPolynomial
theorem mem_ofPolynomial (x) : x ∈ I.ofPolynomial ↔ x ∈ I 
Arguments: {R : Type u} [Semiring R] {I : Ideal R[X]} (x : R[X])
Goal: x ∈ I.ofPolynomial ↔ x ∈ I
-- Ideal.polynomial_mem_ideal_of_coeff_mem_ideal
theorem polynomial_mem_ideal_of_coeff_mem_ideal (I : Ideal R[X]) (p : R[X])
    (hp : ∀ n : ℕ, p.coeff n ∈ I.comap (C : R →+* R[X])) : p ∈ I 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R[X]) (p : R[X]) (hp : ∀ (n : ℕ), p.coeff n ∈ Ideal.comap Polynomial.C I)
Goal: p ∈ I
-- Ideal.mem_map_C_iff
theorem mem_map_C_iff {I : Ideal R} {f : R[X]} :
    f ∈ (Ideal.map (C : R →+* R[X]) I : Ideal R[X]) ↔ ∀ n : ℕ, f.coeff n ∈ I 
Arguments: {R : Type u} [CommSemiring R] {I : Ideal R} {f : R[X]}
Goal: f ∈ Ideal.map Polynomial.C I ↔ ∀ (n : ℕ), f.coeff n ∈ I
-- Polynomial.ker_mapRingHom
theorem _root_.Polynomial.ker_mapRingHom (f : R →+* S) :
    LinearMap.ker (Polynomial.mapRingHom f).toSemilinearMap = f.ker.map (C : R →+* R[X]) 
Arguments: {R : Type u} {S : Type u_1} [CommSemiring R] [Semiring S] (f : R →+* S)
Goal: LinearMap.ker (Polynomial.mapRingHom f).toSemilinearMap = Ideal.map Polynomial.C (RingHom.ker f)
-- Ideal.mem_leadingCoeffNth
theorem mem_leadingCoeffNth (n : ℕ) (x) :
    x ∈ I.leadingCoeffNth n ↔ ∃ p ∈ I, degree p ≤ n ∧ p.leadingCoeff = x 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R[X]) (n : ℕ) (x : R)
Goal: x ∈ I.leadingCoeffNth n ↔ ∃ p ∈ I, p.degree ≤ ↑n ∧ p.leadingCoeff = x
-- Ideal.mem_leadingCoeffNth_zero
theorem mem_leadingCoeffNth_zero (x) : x ∈ I.leadingCoeffNth 0 ↔ C x ∈ I 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R[X]) (x : R)
Goal: x ∈ I.leadingCoeffNth 0 ↔ Polynomial.C x ∈ I
-- Ideal.leadingCoeffNth_mono
theorem leadingCoeffNth_mono {m n : ℕ} (H : m ≤ n) : I.leadingCoeffNth m ≤ I.leadingCoeffNth n 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R[X]) {m n : ℕ} (H : m ≤ n)
Goal: I.leadingCoeffNth m ≤ I.leadingCoeffNth n
-- Ideal.mem_leadingCoeff
theorem mem_leadingCoeff (x) : x ∈ I.leadingCoeff ↔ ∃ p ∈ I, Polynomial.leadingCoeff p = x 
Arguments: {R : Type u} [CommSemiring R] (I : Ideal R[X]) (x : R)
Goal: x ∈ I.leadingCoeff ↔ ∃ p ∈ I, p.leadingCoeff = x
-- Polynomial.coeff_prod_mem_ideal_pow_tsub
theorem _root_.Polynomial.coeff_prod_mem_ideal_pow_tsub {ι : Type*} (s : Finset ι) (f : ι → R[X])
    (I : Ideal R) (n : ι → ℕ) (h : ∀ i ∈ s, ∀ (k), (f i).coeff k ∈ I ^ (n i - k)) (k : ℕ) :
    (s.prod f).coeff k ∈ I ^ (s.sum n - k) 
Arguments: {R : Type u} [CommSemiring R] {ι : Type u_2} (s : Finset ι) (f : ι → R[X]) (I : Ideal R) (n : ι → ℕ) (h : ∀ i ∈ s, ∀ (k : ℕ), (f i).coeff k ∈ I ^ (n i - k)) (k : ℕ)
Goal: (s.prod f).coeff k ∈ I ^ (s.sum n - k)
-- Ideal.polynomial_not_isField
theorem polynomial_not_isField : ¬IsField R[X] 
Arguments: {R : Type u} [Ring R]
Goal: ¬IsField R[X]
-- Ideal.eq_zero_of_constant_mem_of_maximal
theorem eq_zero_of_constant_mem_of_maximal (hR : IsField R) (I : Ideal R[X]) [hI : I.IsMaximal]
    (x : R) (hx : C x ∈ I) : x = 0 
Arguments: {R : Type u} [Ring R] (hR : IsField R) (I : Ideal R[X]) [hI : I.IsMaximal] (x : R) (hx : Polynomial.C x ∈ I)
Goal: x = 0
-- Ideal.isPrime_map_C_iff_isPrime
theorem isPrime_map_C_iff_isPrime (P : Ideal R) :
    IsPrime (map (C : R →+* R[X]) P : Ideal R[X]) ↔ IsPrime P 
Arguments: {R : Type u} [CommRing R] (P : Ideal R)
Goal: (Ideal.map Polynomial.C P).IsPrime ↔ P.IsPrime
-- Ideal.isPrime_map_C_of_isPrime
theorem isPrime_map_C_of_isPrime {P : Ideal R} (H : IsPrime P) :
    IsPrime (map (C : R →+* R[X]) P : Ideal R[X]) 
Arguments: {R : Type u} [CommRing R] {P : Ideal R} (H : P.IsPrime)
Goal: (Ideal.map Polynomial.C P).IsPrime
-- Ideal.is_fg_degreeLE
theorem is_fg_degreeLE [IsNoetherianRing R] (I : Ideal R[X]) (n : ℕ) :
    Submodule.FG (I.degreeLE n) 
Arguments: {R : Type u} [CommRing R] [IsNoetherianRing R] (I : Ideal R[X]) (n : ℕ)
Goal: (I.degreeLE ↑n).FG
-- Polynomial.prime_C_iff
theorem prime_C_iff : Prime (C r) ↔ Prime r 
Arguments: {R : Type u} [CommRing R] {r : R}
Goal: Prime (Polynomial.C r) ↔ Prime r
-- _private.Mathlib.RingTheory.Polynomial.Basic.0.MvPolynomial.prime_C_iff_of_fintype
private theorem prime_C_iff_of_fintype {R : Type u} (σ : Type v) {r : R} [CommRing R] [Fintype σ] :
    Prime (C r : MvPolynomial σ R) ↔ Prime r 
Arguments: {R : Type u} (σ : Type v) {r : R} [CommRing R] [Fintype σ]
Goal: Prime (MvPolynomial.C r) ↔ Prime r
-- MvPolynomial.prime_C_iff
theorem prime_C_iff : Prime (C r : MvPolynomial σ R) ↔ Prime r 
Arguments: {R : Type u} (σ : Type v) [CommRing R] {r : R}
Goal: Prime (MvPolynomial.C r) ↔ Prime r
-- MvPolynomial.prime_rename_iff
theorem prime_rename_iff (s : Set σ) {p : MvPolynomial s R} :
    Prime (rename ((↑) : s → σ) p) ↔ Prime (p : MvPolynomial s R) 
Arguments: {R : Type u} {σ : Type v} [CommRing R] (s : Set σ) {p : MvPolynomial (↑s) R}
Goal: Prime ((MvPolynomial.rename Subtype.val) p) ↔ Prime p
-- Polynomial.isNoetherianRing
protected theorem Polynomial.isNoetherianRing [inst : IsNoetherianRing R] : IsNoetherianRing R[X] 
Arguments: {R : Type u} [CommRing R] [inst : IsNoetherianRing R]
Goal: IsNoetherianRing R[X]
-- Polynomial.exists_irreducible_of_degree_pos
theorem exists_irreducible_of_degree_pos {R : Type u} [CommRing R] [IsDomain R] [WfDvdMonoid R]
    {f : R[X]} (hf : 0 < f.degree) : ∃ g, Irreducible g ∧ g ∣ f 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [WfDvdMonoid R] {f : R[X]} (hf : 0 < f.degree)
Goal: ∃ g, Irreducible g ∧ g ∣ f
-- Polynomial.exists_irreducible_of_natDegree_pos
theorem exists_irreducible_of_natDegree_pos {R : Type u} [CommRing R] [IsDomain R] [WfDvdMonoid R]
    {f : R[X]} (hf : 0 < f.natDegree) : ∃ g, Irreducible g ∧ g ∣ f 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [WfDvdMonoid R] {f : R[X]} (hf : 0 < f.natDegree)
Goal: ∃ g, Irreducible g ∧ g ∣ f
-- Polynomial.exists_irreducible_of_natDegree_ne_zero
theorem exists_irreducible_of_natDegree_ne_zero {R : Type u} [CommRing R] [IsDomain R]
    [WfDvdMonoid R] {f : R[X]} (hf : f.natDegree ≠ 0) : ∃ g, Irreducible g ∧ g ∣ f 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [WfDvdMonoid R] {f : R[X]} (hf : f.natDegree ≠ 0)
Goal: ∃ g, Irreducible g ∧ g ∣ f
-- Polynomial.linearIndependent_powers_iff_aeval
theorem linearIndependent_powers_iff_aeval (f : M →ₗ[R] M) (v : M) :
    (LinearIndependent R fun n : ℕ => (f ^ n) v) ↔ ∀ p : R[X], aeval f p v = 0 → p = 0 
Arguments: {R : Type u} {M : Type w} [CommRing R] [AddCommGroup M] [Module R M] (f : M →ₗ[R] M) (v : M)
Goal: (LinearIndependent R fun n => (f ^ n) v) ↔ ∀ (p : R[X]), ((Polynomial.aeval f) p) v = 0 → p = 0
-- Polynomial.disjoint_ker_aeval_of_coprime
theorem disjoint_ker_aeval_of_coprime (f : M →ₗ[R] M) {p q : R[X]} (hpq : IsCoprime p q) :
    Disjoint (LinearMap.ker (aeval f p)) (LinearMap.ker (aeval f q)) 
Arguments: {R : Type u} {M : Type w} [CommRing R] [AddCommGroup M] [Module R M] (f : M →ₗ[R] M) {p q : R[X]} (hpq : IsCoprime p q)
Goal: Disjoint (LinearMap.ker ((Polynomial.aeval f) p)) (LinearMap.ker ((Polynomial.aeval f) q))
-- Polynomial.sup_aeval_range_eq_top_of_coprime
theorem sup_aeval_range_eq_top_of_coprime (f : M →ₗ[R] M) {p q : R[X]} (hpq : IsCoprime p q) :
    LinearMap.range (aeval f p) ⊔ LinearMap.range (aeval f q) = ⊤ 
Arguments: {R : Type u} {M : Type w} [CommRing R] [AddCommGroup M] [Module R M] (f : M →ₗ[R] M) {p q : R[X]} (hpq : IsCoprime p q)
Goal: LinearMap.range ((Polynomial.aeval f) p) ⊔ LinearMap.range ((Polynomial.aeval f) q) = ⊤