ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.C_smul_derivation_apply
@[simp]
theorem C_smul_derivation_apply (D : Derivation R R[X] A) (a : R) (f : R[X]) :
    C a • D f = a • D f 
Arguments: {R : Type u_1} {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] (D : Derivation R (Polynomial R) A) (a : R) (f : Polynomial R)
Goal: Polynomial.C a • D f = a • D f
-- Polynomial.derivation_ext
@[ext]
theorem derivation_ext {D₁ D₂ : Derivation R R[X] A} (h : D₁ X = D₂ X) : D₁ = D₂ 
Arguments: {R : Type u_1} {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] {D₁ D₂ : Derivation R (Polynomial R) A} (h : D₁ Polynomial.X = D₂ Polynomial.X)
Goal: D₁ = D₂
-- Polynomial.mkDerivation_apply
lemma mkDerivation_apply (a : A) (f : R[X]) :
    mkDerivation R a f = derivative f • a 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] [IsScalarTower R (Polynomial R) A] (a : A) (f : Polynomial R)
Goal: ((Polynomial.mkDerivation R) a) f = Polynomial.derivative f • a
-- Polynomial.mkDerivation_X
@[simp]
theorem mkDerivation_X (a : A) : mkDerivation R a X = a 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] [IsScalarTower R (Polynomial R) A] (a : A)
Goal: ((Polynomial.mkDerivation R) a) Polynomial.X = a
-- Polynomial.mkDerivation_one_eq_derivative'
lemma mkDerivation_one_eq_derivative' : mkDerivation R (1 : R[X]) = derivative' 
Arguments: (R : Type u_1) [CommSemiring R]
Goal: (Polynomial.mkDerivation R) 1 = Polynomial.derivative'
-- Polynomial.mkDerivation_one_eq_derivative
lemma mkDerivation_one_eq_derivative (f : R[X]) : mkDerivation R (1 : R[X]) f = derivative f 
Arguments: (R : Type u_1) [CommSemiring R] (f : Polynomial R)
Goal: ((Polynomial.mkDerivation R) 1) f = Polynomial.derivative f
-- Polynomial.mkDerivationEquiv_apply
@[simp] lemma mkDerivationEquiv_apply (a : A) :
    mkDerivationEquiv R a = mkDerivation R a 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] [IsScalarTower R (Polynomial R) A] (a : A)
Goal: (Polynomial.mkDerivationEquiv R) a = (Polynomial.mkDerivation R) a
-- Polynomial.mkDerivationEquiv_symm_apply
@[simp] lemma mkDerivationEquiv_symm_apply (D : Derivation R R[X] A) :
    (mkDerivationEquiv R).symm D = D X 
Arguments: (R : Type u_1) {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [Module (Polynomial R) A] [IsScalarTower R (Polynomial R) A] (D : Derivation R (Polynomial R) A)
Goal: (Polynomial.mkDerivationEquiv R).symm D = D Polynomial.X
-- Derivation.compAEval_apply
/-
Note: `compAEval` is not defined using `Derivation.compAlgebraMap`.
This because `A` is not an `R[X]` algebra and it would be messy to create an algebra instance
within the definition.
-/
@[simps]
def compAEval : Derivation R R[X] <| AEval R M a 
Arguments: {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (d : Derivation R A M) (a : A) (f : Polynomial R)
Goal: (d.compAEval a) f = (Module.AEval.of R M a) (d ((Polynomial.aeval a) f))
-- Derivation.compAEval_eq
theorem compAEval_eq (d : Derivation R A M) (f : R[X]) :
    d.compAEval a f = derivative f • (AEval.of R M a (d a)) 
Arguments: {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (a : A) (d : Derivation R A M) (f : Polynomial R)
Goal: (d.compAEval a) f = Polynomial.derivative f • (Module.AEval.of R M a) (d a)
-- Derivation.comp_aeval_eq
theorem comp_aeval_eq (d : Derivation R A M) (f : R[X]) :
    d (aeval a f) = aeval a (derivative f) • d a 
Arguments: {R : Type u_1} {A : Type u_2} {M : Type u_3} [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (a : A) (d : Derivation R A M) (f : Polynomial R)
Goal: d ((Polynomial.aeval a) f) = (Polynomial.aeval a) (Polynomial.derivative f) • d a
-- Polynomial.smeval_def
irreducible_def smeval : S 
Arguments: {R : Type u_3} [Semiring R] (p : Polynomial R) {S : Type u_4} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: p.smeval x = p.sum (Polynomial.smul_pow x)
-- Polynomial.smeval_eq_sum
theorem smeval_eq_sum : p.smeval x = p.sum (smul_pow x) 
Arguments: {R : Type u_1} [Semiring R] (p : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: p.smeval x = p.sum (Polynomial.smul_pow x)
-- Polynomial.smeval_C
@[simp]
theorem smeval_C : (C r).smeval x = r • x ^ 0 
Arguments: {R : Type u_1} [Semiring R] (r : R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: (Polynomial.C r).smeval x = r • x ^ 0
-- Polynomial.smeval_monomial
@[simp]
theorem smeval_monomial (n : ℕ) :
    (monomial n r).smeval x = r • x ^ n 
Arguments: {R : Type u_1} [Semiring R] (r : R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S) (n : ℕ)
Goal: ((Polynomial.monomial n) r).smeval x = r • x ^ n
-- Polynomial.eval_eq_smeval
theorem eval_eq_smeval : p.eval r = p.smeval r 
Arguments: {R : Type u_1} [Semiring R] (r : R) (p : Polynomial R)
Goal: Polynomial.eval r p = p.smeval r
-- Polynomial.eval₂_eq_smeval
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 
Arguments: (R : Type u_3) [Semiring R] {S : Type u_4} [Semiring S] (f : R →+* S) (p : Polynomial R) (x : S)
Goal: Polynomial.eval₂ f x p = p.smeval x
-- Polynomial.smeval_zero
@[simp]
theorem smeval_zero : (0 : R[X]).smeval x = 0 
Arguments: (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: Polynomial.smeval 0 x = 0
-- Polynomial.smeval_one
@[simp]
theorem smeval_one : (1 : R[X]).smeval x = 1 • x ^ 0 
Arguments: (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: Polynomial.smeval 1 x = 1 • x ^ 0
-- Polynomial.smeval_X
@[simp]
theorem smeval_X :
    (X : R[X]).smeval x = x ^ 1 
Arguments: (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S)
Goal: Polynomial.X.smeval x = x ^ 1
-- Polynomial.smeval_X_pow
@[simp]
theorem smeval_X_pow {n : ℕ} :
    (X ^ n : R[X]).smeval x = x ^ n 
Arguments: (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [MulActionWithZero R S] (x : S) {n : ℕ}
Goal: (Polynomial.X ^ n).smeval x = x ^ n
-- Polynomial.smeval_add
@[simp]
theorem smeval_add : (p + q).smeval x = p.smeval x + q.smeval x 
Arguments: (R : Type u_1) [Semiring R] (p q : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [Module R S] (x : S)
Goal: (p + q).smeval x = p.smeval x + q.smeval x
-- Polynomial.smeval_natCast
theorem smeval_natCast (n : ℕ) : (n : R[X]).smeval x = n • x ^ 0 
Arguments: (R : Type u_1) [Semiring R] {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [Module R S] (x : S) (n : ℕ)
Goal: (↑n).smeval x = n • x ^ 0
-- Polynomial.smeval_smul
@[simp]
theorem smeval_smul (r : R) : (r • p).smeval x = r • p.smeval x 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [Module R S] (x : S) (r : R)
Goal: (r • p).smeval x = r • p.smeval x
-- Polynomial.smeval.linearMap_apply
@[simp]
theorem smeval.linearMap_apply : smeval.linearMap R x p = p.smeval x 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [AddCommMonoid S] [Pow S ℕ] [Module R S] (x : S)
Goal: (Polynomial.smeval.linearMap R x) p = p.smeval x
-- Polynomial.leval_coe_eq_smeval
theorem leval_coe_eq_smeval {R : Type*} [Semiring R] (r : R) :
    ⇑(leval r) = fun p => p.smeval r 
Arguments: {R : Type u_3} [Semiring R] (r : R)
Goal: ⇑(Polynomial.leval r) = fun p => p.smeval r
-- Polynomial.leval_eq_smeval.linearMap
theorem leval_eq_smeval.linearMap {R : Type*} [Semiring R] (r : R) :
    leval r = smeval.linearMap R r 
Arguments: {R : Type u_3} [Semiring R] (r : R)
Goal: Polynomial.leval r = Polynomial.smeval.linearMap R r
-- Polynomial.smeval_neg
@[simp]
theorem smeval_neg : (-p).smeval x = - p.smeval x 
Arguments: (R : Type u_1) [Ring R] {S : Type u_2} [AddCommGroup S] [Pow S ℕ] [Module R S] (p : Polynomial R) (x : S)
Goal: (-p).smeval x = -p.smeval x
-- Polynomial.smeval_sub
@[simp]
theorem smeval_sub : (p - q).smeval x = p.smeval x - q.smeval x 
Arguments: (R : Type u_1) [Ring R] {S : Type u_2} [AddCommGroup S] [Pow S ℕ] [Module R S] (p q : Polynomial R) (x : S)
Goal: (p - q).smeval x = p.smeval x - q.smeval x
-- Polynomial.smeval_neg_nat
theorem smeval_neg_nat (S : Type*) [NonAssocRing S] [Pow S ℕ] [NatPowAssoc S] (q : ℕ[X])
    (n : ℕ) : q.smeval (-(n : S)) = q.smeval (-n : ℤ) 
Arguments: (S : Type u_3) [NonAssocRing S] [Pow S ℕ] [NatPowAssoc S] (q : Polynomial ℕ) (n : ℕ)
Goal: q.smeval (-↑n) = ↑(q.smeval (-↑n))
-- Polynomial.smeval_at_natCast
theorem smeval_at_natCast (q : ℕ[X]) : ∀(n : ℕ), q.smeval (n : S) = q.smeval n 
Arguments: {S : Type u_2} [NonAssocSemiring S] [Pow S ℕ] [NatPowAssoc S] (q : Polynomial ℕ) (n : ℕ)
Goal: q.smeval ↑n = ↑(q.smeval n)
-- Polynomial.smeval_at_zero
theorem smeval_at_zero : p.smeval (0 : S) = (p.coeff 0) • (1 : S)  
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [Pow S ℕ] [NatPowAssoc S]
Goal: p.smeval 0 = p.coeff 0 • 1
-- Polynomial.smeval_mul_X
theorem smeval_mul_X : (p * X).smeval x = p.smeval x * x 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [Pow S ℕ] [NatPowAssoc S] (x : S)
Goal: (p * Polynomial.X).smeval x = p.smeval x * x
-- Polynomial.smeval_X_mul
theorem smeval_X_mul : (X * p).smeval x = x * p.smeval x 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S)
Goal: (Polynomial.X * p).smeval x = x * p.smeval x
-- Polynomial.smeval_assoc_X_pow
theorem smeval_assoc_X_pow (m n : ℕ) :
    p.smeval x * x ^ m * x ^ n = p.smeval x * (x ^ m * x ^ n) 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (m n : ℕ)
Goal: p.smeval x * x ^ m * x ^ n = p.smeval x * (x ^ m * x ^ n)
-- Polynomial.smeval_mul_X_pow
theorem smeval_mul_X_pow : ∀ (n : ℕ), (p * X^n).smeval x = p.smeval x * x^n
  
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (n : ℕ)
Goal: (p * Polynomial.X ^ n).smeval x = p.smeval x * x ^ n
-- Polynomial.smeval_X_pow_assoc
theorem smeval_X_pow_assoc (m n : ℕ) :
    x ^ m * x ^ n * p.smeval x = x ^ m * (x ^ n * p.smeval x) 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (m n : ℕ)
Goal: x ^ m * x ^ n * p.smeval x = x ^ m * (x ^ n * p.smeval x)
-- Polynomial.smeval_X_pow_mul
theorem smeval_X_pow_mul : ∀ (n : ℕ), (X^n * p).smeval x = x^n * p.smeval x
  
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (n : ℕ)
Goal: (Polynomial.X ^ n * p).smeval x = x ^ n * p.smeval x
-- Polynomial.smeval_C_mul
theorem smeval_C_mul : (C r * p).smeval x = r • p.smeval x 
Arguments: (R : Type u_1) [Semiring R] (r : R) (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [Pow S ℕ] (x : S)
Goal: (Polynomial.C r * p).smeval x = r • p.smeval x
-- Polynomial.smeval_monomial_mul
theorem smeval_monomial_mul (n : ℕ) :
    (monomial n r * p).smeval x = r • (x ^ n * p.smeval x) 
Arguments: (R : Type u_1) [Semiring R] (r : R) (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (n : ℕ)
Goal: ((Polynomial.monomial n) r * p).smeval x = r • (x ^ n * p.smeval x)
-- Polynomial.smeval_mul
theorem smeval_mul : (p * q).smeval x  = p.smeval x * q.smeval x 
Arguments: (R : Type u_1) [Semiring R] (p q : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S)
Goal: (p * q).smeval x = p.smeval x * q.smeval x
-- Polynomial.smeval_pow
theorem smeval_pow : ∀ (n : ℕ), (p^n).smeval x = (p.smeval x)^n
  
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S) (n : ℕ)
Goal: (p ^ n).smeval x = p.smeval x ^ n
-- Polynomial.smeval_comp
theorem smeval_comp : (p.comp q).smeval x  = p.smeval (q.smeval x) 
Arguments: (R : Type u_1) [Semiring R] (p q : Polynomial R) {S : Type u_2} [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] [SMulCommClass R S S] [Pow S ℕ] [NatPowAssoc S] (x : S)
Goal: (p.comp q).smeval x = p.smeval (q.smeval x)
-- Polynomial.smeval_commute_left
theorem smeval_commute_left (hc : Commute x y) : Commute (p.smeval x) y 
Arguments: (R : Type u_1) [Semiring R] (p : Polynomial R) {S : Type u_2} [Semiring S] [Module R S] [IsScalarTower R S S] [SMulCommClass R S S] {x y : S} (hc : Commute x y)
Goal: Commute (p.smeval x) y
-- Polynomial.smeval_commute
theorem smeval_commute (hc : Commute x y) : Commute (p.smeval x) (q.smeval y) 
Arguments: (R : Type u_1) [Semiring R] (p q : Polynomial R) {S : Type u_2} [Semiring S] [Module R S] [IsScalarTower R S S] [SMulCommClass R S S] {x y : S} (hc : Commute x y)
Goal: Commute (p.smeval x) (q.smeval y)
-- Polynomial.aeval_eq_smeval
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 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [Semiring S] [Algebra R S] (x : S) (p : Polynomial R)
Goal: (Polynomial.aeval x) p = p.smeval x
-- Polynomial.aeval_coe_eq_smeval
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 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [Semiring S] [Algebra R S] (x : S)
Goal: ⇑(Polynomial.aeval x) = fun p => p.smeval x
-- Polynomial.induction_on
@[elab_as_elim]
protected theorem induction_on {M : R[X] → Prop} (p : R[X]) (h_C : ∀ a, M (C a))
    (h_add : ∀ p q, M p → M q → M (p + q))
    (h_monomial : ∀ (n : ℕ) (a : R), M (C a * X ^ n) → M (C a * X ^ (n + 1))) : M p 
Arguments: {R : Type u} [Semiring R] {M : Polynomial R → Prop} (p : Polynomial R) (h_C : ∀ (a : R), M (Polynomial.C a)) (h_add : ∀ (p q : Polynomial R), M p → M q → M (p + q)) (h_monomial : ∀ (n : ℕ) (a : R), M (Polynomial.C a * Polynomial.X ^ n) → M (Polynomial.C a * Polynomial.X ^ (n + 1)))
Goal: M p
-- Polynomial.induction_on'
@[elab_as_elim]
protected theorem induction_on' {M : R[X] → Prop} (p : R[X]) (h_add : ∀ p q, M p → M q → M (p + q))
    (h_monomial : ∀ (n : ℕ) (a : R), M (monomial n a)) : M p 
Arguments: {R : Type u} [Semiring R] {M : Polynomial R → Prop} (p : Polynomial R) (h_add : ∀ (p q : Polynomial R), M p → M q → M (p + q)) (h_monomial : ∀ (n : ℕ) (a : R), M ((Polynomial.monomial n) a))
Goal: M p
-- Polynomial.span_le_of_C_coeff_mem
theorem span_le_of_C_coeff_mem (cf : ∀ i : ℕ, C (f.coeff i) ∈ I) :
    Ideal.span { g | ∃ i, g = C (f.coeff i) } ≤ I 
Arguments: {R : Type u} [Semiring R] {f : Polynomial R} {I : Ideal (Polynomial R)} (cf : ∀ (i : ℕ), Polynomial.C (f.coeff i) ∈ I)
Goal: Ideal.span {g | ∃ i, g = Polynomial.C (f.coeff i)} ≤ I
-- Polynomial.mem_span_C_coeff
theorem mem_span_C_coeff : f ∈ Ideal.span { g : R[X] | ∃ i : ℕ, g = C (coeff f i) } 
Arguments: {R : Type u} [Semiring R] {f : Polynomial R}
Goal: f ∈ Ideal.span {g | ∃ i, g = Polynomial.C (f.coeff i)}
-- Polynomial.exists_C_coeff_not_mem
theorem exists_C_coeff_not_mem : f ∉ I → ∃ i : ℕ, C (coeff f i) ∉ I 
Arguments: {R : Type u} [Semiring R] {f : Polynomial R} {I : Ideal (Polynomial R)}
Goal: f ∉ I → ∃ i, Polynomial.C (f.coeff i) ∉ I
-- Polynomial.splits_zero
@[simp]
theorem splits_zero : Splits i (0 : K[X]) 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L)
Goal: Polynomial.Splits i 0
-- Polynomial.splits_of_map_eq_C
theorem splits_of_map_eq_C {f : K[X]} {a : L} (h : f.map i = C a) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} {a : L} (h : Polynomial.map i f = Polynomial.C a)
Goal: Polynomial.Splits i f
-- Polynomial.splits_C
@[simp]
theorem splits_C (a : K) : Splits i (C a) 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) (a : K)
Goal: Polynomial.Splits i (Polynomial.C a)
-- Polynomial.splits_of_map_degree_eq_one
theorem splits_of_map_degree_eq_one {f : K[X]} (hf : degree (f.map i) = 1) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : (Polynomial.map i f).degree = 1)
Goal: Polynomial.Splits i f
-- Polynomial.splits_of_degree_le_one
theorem splits_of_degree_le_one {f : K[X]} (hf : degree f ≤ 1) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : f.degree ≤ 1)
Goal: Polynomial.Splits i f
-- Polynomial.splits_of_degree_eq_one
theorem splits_of_degree_eq_one {f : K[X]} (hf : degree f = 1) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : f.degree = 1)
Goal: Polynomial.Splits i f
-- Polynomial.splits_of_natDegree_le_one
theorem splits_of_natDegree_le_one {f : K[X]} (hf : natDegree f ≤ 1) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : f.natDegree ≤ 1)
Goal: Polynomial.Splits i f
-- Polynomial.splits_of_natDegree_eq_one
theorem splits_of_natDegree_eq_one {f : K[X]} (hf : natDegree f = 1) : Splits i f 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : f.natDegree = 1)
Goal: Polynomial.Splits i f
-- Polynomial.splits_mul
theorem splits_mul {f g : K[X]} (hf : Splits i f) (hg : Splits i g) : Splits i (f * g) 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f g : K[X]} (hf : Polynomial.Splits i f) (hg : Polynomial.Splits i g)
Goal: Polynomial.Splits i (f * g)
-- Polynomial.splits_of_splits_mul'
theorem splits_of_splits_mul' {f g : K[X]} (hfg : (f * g).map i ≠ 0) (h : Splits i (f * g)) :
    Splits i f ∧ Splits i g 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f g : K[X]} (hfg : Polynomial.map i (f * g) ≠ 0) (h : Polynomial.Splits i (f * g))
Goal: Polynomial.Splits i f ∧ Polynomial.Splits i g
-- Polynomial.splits_map_iff
theorem splits_map_iff (j : L →+* F) {f : K[X]} : Splits j (f.map i) ↔ Splits (j.comp i) f 
Arguments: {F : Type u} {K : Type v} {L : Type w} [CommRing K] [Field L] [Field F] (i : K →+* L) (j : L →+* F) {f : K[X]}
Goal: Polynomial.Splits j (Polynomial.map i f) ↔ Polynomial.Splits (j.comp i) f
-- Polynomial.splits_one
theorem splits_one : Splits i 1 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L)
Goal: Polynomial.Splits i 1
-- Polynomial.splits_of_isUnit
theorem splits_of_isUnit [IsDomain K] {u : K[X]} (hu : IsUnit u) : u.Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) [IsDomain K] {u : K[X]} (hu : IsUnit u)
Goal: Polynomial.Splits i u
-- Polynomial.splits_X_sub_C
theorem splits_X_sub_C {x : K} : (X - C x).Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {x : K}
Goal: Polynomial.Splits i (Polynomial.X - Polynomial.C x)
-- Polynomial.splits_X
theorem splits_X : X.Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L)
Goal: Polynomial.Splits i Polynomial.X
-- Polynomial.splits_prod
theorem splits_prod {ι : Type u} {s : ι → K[X]} {t : Finset ι} :
    (∀ j ∈ t, (s j).Splits i) → (∏ x ∈ t, s x).Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {ι : Type u} {s : ι → K[X]} {t : Finset ι}
Goal: (∀ j ∈ t, Polynomial.Splits i (s j)) → Polynomial.Splits i (∏ x ∈ t, s x)
-- Polynomial.splits_pow
theorem splits_pow {f : K[X]} (hf : f.Splits i) (n : ℕ) : (f ^ n).Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : Polynomial.Splits i f) (n : ℕ)
Goal: Polynomial.Splits i (f ^ n)
-- Polynomial.splits_X_pow
theorem splits_X_pow (n : ℕ) : (X ^ n).Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) (n : ℕ)
Goal: Polynomial.Splits i (Polynomial.X ^ n)
-- Polynomial.splits_id_iff_splits
theorem splits_id_iff_splits {f : K[X]} : (f.map i).Splits (RingHom.id L) ↔ f.Splits i 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]}
Goal: Polynomial.Splits (RingHom.id L) (Polynomial.map i f) ↔ Polynomial.Splits i f
-- Polynomial.exists_root_of_splits'
theorem exists_root_of_splits' {f : K[X]} (hs : Splits i f) (hf0 : degree (f.map i) ≠ 0) :
    ∃ x, eval₂ i x f = 0 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hs : Polynomial.Splits i f) (hf0 : (Polynomial.map i f).degree ≠ 0)
Goal: ∃ x, Polynomial.eval₂ i x f = 0
-- Polynomial.roots_ne_zero_of_splits'
theorem roots_ne_zero_of_splits' {f : K[X]} (hs : Splits i f) (hf0 : natDegree (f.map i) ≠ 0) :
    (f.map i).roots ≠ 0 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hs : Polynomial.Splits i f) (hf0 : (Polynomial.map i f).natDegree ≠ 0)
Goal: (Polynomial.map i f).roots ≠ 0
-- Polynomial.map_rootOfSplits'
theorem map_rootOfSplits' {f : K[X]} (hf : f.Splits i) (hfd) :
    f.eval₂ i (rootOfSplits' i hf hfd) = 0 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] (i : K →+* L) {f : K[X]} (hf : Polynomial.Splits i f) (hfd : (Polynomial.map i f).degree ≠ 0)
Goal: Polynomial.eval₂ i (Polynomial.rootOfSplits' i hf hfd) f = 0
-- Polynomial.natDegree_eq_card_roots'
theorem natDegree_eq_card_roots' {p : K[X]} {i : K →+* L} (hsplit : Splits i p) :
    (p.map i).natDegree = Multiset.card (p.map i).roots 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] {p : K[X]} {i : K →+* L} (hsplit : Polynomial.Splits i p)
Goal: (Polynomial.map i p).natDegree = Multiset.card (Polynomial.map i p).roots
-- Polynomial.degree_eq_card_roots'
theorem degree_eq_card_roots' {p : K[X]} {i : K →+* L} (p_ne_zero : p.map i ≠ 0)
    (hsplit : Splits i p) : (p.map i).degree = Multiset.card (p.map i).roots 
Arguments: {K : Type v} {L : Type w} [CommRing K] [Field L] {p : K[X]} {i : K →+* L} (p_ne_zero : Polynomial.map i p ≠ 0) (hsplit : Polynomial.Splits i p)
Goal: (Polynomial.map i p).degree = ↑(Multiset.card (Polynomial.map i p).roots)
-- Polynomial.splits_iff
theorem splits_iff (f : K[X]) :
    Splits i f ↔ f = 0 ∨ ∀ {g : L[X]}, Irreducible g → g ∣ f.map i → degree g = 1 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) (f : K[X])
Goal: Polynomial.Splits i f ↔ f = 0 ∨ ∀ {g : L[X]}, Irreducible g → g ∣ Polynomial.map i f → g.degree = 1
-- Polynomial.Splits.def
theorem Splits.def {i : K →+* L} {f : K[X]} (h : Splits i f) :
    f = 0 ∨ ∀ {g : L[X]}, Irreducible g → g ∣ f.map i → degree g = 1 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] {i : K →+* L} {f : K[X]} (h : Polynomial.Splits i f)
Goal: f = 0 ∨ ∀ {g : L[X]}, Irreducible g → g ∣ Polynomial.map i f → g.degree = 1
-- Polynomial.splits_of_splits_mul
theorem splits_of_splits_mul {f g : K[X]} (hfg : f * g ≠ 0) (h : Splits i (f * g)) :
    Splits i f ∧ Splits i g 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f g : K[X]} (hfg : f * g ≠ 0) (h : Polynomial.Splits i (f * g))
Goal: Polynomial.Splits i f ∧ Polynomial.Splits i g
-- Polynomial.splits_of_splits_of_dvd
theorem splits_of_splits_of_dvd {f g : K[X]} (hf0 : f ≠ 0) (hf : Splits i f) (hgf : g ∣ f) :
    Splits i g 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f g : K[X]} (hf0 : f ≠ 0) (hf : Polynomial.Splits i f) (hgf : g ∣ f)
Goal: Polynomial.Splits i g