ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.splits_of_splits_gcd_left
theorem splits_of_splits_gcd_left [DecidableEq K] {f g : K[X]} (hf0 : f ≠ 0) (hf : Splits i f) :
    Splits i (EuclideanDomain.gcd f g) 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) [DecidableEq K] {f g : K[X]} (hf0 : f ≠ 0) (hf : Polynomial.Splits i f)
Goal: Polynomial.Splits i (EuclideanDomain.gcd f g)
-- Polynomial.splits_of_splits_gcd_right
theorem splits_of_splits_gcd_right [DecidableEq K] {f g : K[X]} (hg0 : g ≠ 0) (hg : Splits i g) :
    Splits i (EuclideanDomain.gcd f g) 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) [DecidableEq K] {f g : K[X]} (hg0 : g ≠ 0) (hg : Polynomial.Splits i g)
Goal: Polynomial.Splits i (EuclideanDomain.gcd f g)
-- Polynomial.splits_mul_iff
theorem splits_mul_iff {f g : K[X]} (hf : f ≠ 0) (hg : g ≠ 0) :
    (f * g).Splits i ↔ f.Splits i ∧ g.Splits i 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f g : K[X]} (hf : f ≠ 0) (hg : g ≠ 0)
Goal: Polynomial.Splits i (f * g) ↔ Polynomial.Splits i f ∧ Polynomial.Splits i g
-- Polynomial.splits_prod_iff
theorem splits_prod_iff {ι : Type u} {s : ι → K[X]} {t : Finset ι} :
    (∀ j ∈ t, s j ≠ 0) → ((∏ x ∈ t, s x).Splits i ↔ ∀ j ∈ t, (s j).Splits i) 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {ι : Type u} {s : ι → K[X]} {t : Finset ι}
Goal: (∀ j ∈ t, s j ≠ 0) → (Polynomial.Splits i (∏ x ∈ t, s x) ↔ ∀ j ∈ t, Polynomial.Splits i (s j))
-- Polynomial.degree_eq_one_of_irreducible_of_splits
theorem degree_eq_one_of_irreducible_of_splits {p : K[X]} (hp : Irreducible p)
    (hp_splits : Splits (RingHom.id K) p) : p.degree = 1 
Arguments: {K : Type v} [Field K] {p : K[X]} (hp : Irreducible p) (hp_splits : Polynomial.Splits (RingHom.id K) p)
Goal: p.degree = 1
-- Polynomial.exists_root_of_splits
theorem exists_root_of_splits {f : K[X]} (hs : Splits i f) (hf0 : degree f ≠ 0) :
    ∃ x, eval₂ i x f = 0 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} (hs : Polynomial.Splits i f) (hf0 : 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 ≠ 0) :
    (f.map i).roots ≠ 0 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} (hs : Polynomial.Splits i f) (hf0 : f.natDegree ≠ 0)
Goal: (Polynomial.map i f).roots ≠ 0
-- Polynomial.rootOfSplits'_eq_rootOfSplits
theorem rootOfSplits'_eq_rootOfSplits {f : K[X]} (hf : f.Splits i) (hfd) :
    rootOfSplits' i hf hfd = rootOfSplits i hf (f.degree_map i ▸ hfd) 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} (hf : Polynomial.Splits i f) (hfd : (Polynomial.map i f).degree ≠ 0)
Goal: Polynomial.rootOfSplits' i hf hfd = Polynomial.rootOfSplits i hf ⋯
-- 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} [Field K] [Field L] (i : K →+* L) {f : K[X]} (hf : Polynomial.Splits i f) (hfd : 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.natDegree = Multiset.card (p.map i).roots 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] {p : K[X]} {i : K →+* L} (hsplit : Polynomial.Splits i p)
Goal: 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 ≠ 0) (hsplit : Splits i p) :
    p.degree = Multiset.card (p.map i).roots 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] {p : K[X]} {i : K →+* L} (p_ne_zero : p ≠ 0) (hsplit : Polynomial.Splits i p)
Goal: p.degree = ↑(Multiset.card (Polynomial.map i p).roots)
-- Polynomial.roots_map
theorem roots_map {f : K[X]} (hf : f.Splits <| RingHom.id K) : (f.map i).roots = f.roots.map i 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} (hf : Polynomial.Splits (RingHom.id K) f)
Goal: (Polynomial.map i f).roots = Multiset.map (⇑i) f.roots
-- Polynomial.image_rootSet
theorem image_rootSet [Algebra R K] [Algebra R L] {p : R[X]} (h : p.Splits (algebraMap R K))
    (f : K →ₐ[R] L) : f '' p.rootSet K = p.rootSet L 
Arguments: {R : Type u_1} {K : Type v} {L : Type w} [CommRing R] [Field K] [Field L] [Algebra R K] [Algebra R L] {p : R[X]} (h : Polynomial.Splits (algebraMap R K) p) (f : K →ₐ[R] L)
Goal: ⇑f '' p.rootSet K = p.rootSet L
-- Polynomial.adjoin_rootSet_eq_range
theorem adjoin_rootSet_eq_range [Algebra R K] [Algebra R L] {p : R[X]}
    (h : p.Splits (algebraMap R K)) (f : K →ₐ[R] L) :
    Algebra.adjoin R (p.rootSet L) = f.range ↔ Algebra.adjoin R (p.rootSet K) = ⊤ 
Arguments: {R : Type u_1} {K : Type v} {L : Type w} [CommRing R] [Field K] [Field L] [Algebra R K] [Algebra R L] {p : R[X]} (h : Polynomial.Splits (algebraMap R K) p) (f : K →ₐ[R] L)
Goal: Algebra.adjoin R (p.rootSet L) = f.range ↔ Algebra.adjoin R (p.rootSet K) = ⊤
-- Polynomial.eq_prod_roots_of_splits
theorem eq_prod_roots_of_splits {p : K[X]} {i : K →+* L} (hsplit : Splits i p) :
    p.map i = C (i p.leadingCoeff) * ((p.map i).roots.map fun a => X - C a).prod 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] {p : K[X]} {i : K →+* L} (hsplit : Polynomial.Splits i p)
Goal: Polynomial.map i p =
  Polynomial.C (i p.leadingCoeff) *
    (Multiset.map (fun a => Polynomial.X - Polynomial.C a) (Polynomial.map i p).roots).prod
-- Polynomial.eq_prod_roots_of_splits_id
theorem eq_prod_roots_of_splits_id {p : K[X]} (hsplit : Splits (RingHom.id K) p) :
    p = C p.leadingCoeff * (p.roots.map fun a => X - C a).prod 
Arguments: {K : Type v} [Field K] {p : K[X]} (hsplit : Polynomial.Splits (RingHom.id K) p)
Goal: p = Polynomial.C p.leadingCoeff * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) p.roots).prod
-- Polynomial.eq_prod_roots_of_monic_of_splits_id
theorem eq_prod_roots_of_monic_of_splits_id {p : K[X]} (m : Monic p)
    (hsplit : Splits (RingHom.id K) p) : p = (p.roots.map fun a => X - C a).prod 
Arguments: {K : Type v} [Field K] {p : K[X]} (m : p.Monic) (hsplit : Polynomial.Splits (RingHom.id K) p)
Goal: p = (Multiset.map (fun a => Polynomial.X - Polynomial.C a) p.roots).prod
-- Polynomial.eq_X_sub_C_of_splits_of_single_root
theorem eq_X_sub_C_of_splits_of_single_root {x : K} {h : K[X]} (h_splits : Splits i h)
    (h_roots : (h.map i).roots = {i x}) : h = C h.leadingCoeff * (X - C x) 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {x : K} {h : K[X]} (h_splits : Polynomial.Splits i h) (h_roots : (Polynomial.map i h).roots = {i x})
Goal: h = Polynomial.C h.leadingCoeff * (Polynomial.X - Polynomial.C x)
-- Polynomial.mem_lift_of_splits_of_roots_mem_range
theorem mem_lift_of_splits_of_roots_mem_range [Algebra R K] {f : K[X]}
    (hs : f.Splits (RingHom.id K)) (hm : f.Monic) (hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range) :
    f ∈ Polynomial.lifts (algebraMap R K) 
Arguments: (R : Type u_1) {K : Type v} [CommRing R] [Field K] [Algebra R K] {f : K[X]} (hs : Polynomial.Splits (RingHom.id K) f) (hm : f.Monic) (hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range)
Goal: f ∈ Polynomial.lifts (algebraMap R K)
-- Polynomial.splits_of_exists_multiset
theorem splits_of_exists_multiset {f : K[X]} {s : Multiset L}
    (hs : f.map i = C (i f.leadingCoeff) * (s.map fun a : L => X - C a).prod) : Splits i f 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} {s : Multiset L} (hs :
  Polynomial.map i f = Polynomial.C (i f.leadingCoeff) * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) s).prod)
Goal: Polynomial.Splits i f
-- Polynomial.splits_of_splits_id
theorem splits_of_splits_id {f : K[X]} : Splits (RingHom.id K) f → Splits i f 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]}
Goal: Polynomial.Splits (RingHom.id K) f → Polynomial.Splits i f
-- Polynomial.splits_iff_exists_multiset
theorem splits_iff_exists_multiset {f : K[X]} :
    Splits i f ↔
      ∃ s : Multiset L, f.map i = C (i f.leadingCoeff) * (s.map fun a : L => X - C a).prod 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]}
Goal: Polynomial.Splits i f ↔
  ∃ s,
    Polynomial.map i f =
      Polynomial.C (i f.leadingCoeff) * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) s).prod
-- Polynomial.splits_of_comp
theorem splits_of_comp (j : L →+* F) {f : K[X]} (h : Splits (j.comp i) f)
    (roots_mem_range : ∀ a ∈ (f.map (j.comp i)).roots, a ∈ j.range) : Splits i f 
Arguments: {F : Type u} {K : Type v} {L : Type w} [Field K] [Field L] [Field F] (i : K →+* L) (j : L →+* F) {f : K[X]} (h : Polynomial.Splits (j.comp i) f) (roots_mem_range : ∀ a ∈ (Polynomial.map (j.comp i) f).roots, a ∈ j.range)
Goal: Polynomial.Splits i f
-- Polynomial.splits_id_of_splits
theorem splits_id_of_splits {f : K[X]} (h : Splits i f)
    (roots_mem_range : ∀ a ∈ (f.map i).roots, a ∈ i.range) : Splits (RingHom.id K) f 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] (i : K →+* L) {f : K[X]} (h : Polynomial.Splits i f) (roots_mem_range : ∀ a ∈ (Polynomial.map i f).roots, a ∈ i.range)
Goal: Polynomial.Splits (RingHom.id K) f
-- Polynomial.splits_comp_of_splits
theorem splits_comp_of_splits (i : R →+* K) (j : K →+* L) {f : R[X]} (h : Splits i f) :
    Splits (j.comp i) f 
Arguments: {R : Type u_1} {K : Type v} {L : Type w} [CommRing R] [Field K] [Field L] (i : R →+* K) (j : K →+* L) {f : R[X]} (h : Polynomial.Splits i f)
Goal: Polynomial.Splits (j.comp i) f
-- Polynomial.splits_of_algHom
theorem splits_of_algHom {f : R[X]} (h : Splits (algebraMap R K) f) (e : K →ₐ[R] L) :
    Splits (algebraMap R L) f 
Arguments: {R : Type u_1} {K : Type v} {L : Type w} [CommRing R] [Field K] [Field L] [Algebra R K] [Algebra R L] {f : R[X]} (h : Polynomial.Splits (algebraMap R K) f) (e : K →ₐ[R] L)
Goal: Polynomial.Splits (algebraMap R L) f
-- Polynomial.splits_of_isScalarTower
theorem splits_of_isScalarTower {f : R[X]} [Algebra K L] [IsScalarTower R K L]
    (h : Splits (algebraMap R K) f) : Splits (algebraMap R L) f 
Arguments: {R : Type u_1} {K : Type v} (L : Type w) [CommRing R] [Field K] [Field L] [Algebra R K] [Algebra R L] {f : R[X]} [Algebra K L] [IsScalarTower R K L] (h : Polynomial.Splits (algebraMap R K) f)
Goal: Polynomial.Splits (algebraMap R L) f
-- Polynomial.splits_iff_card_roots
theorem splits_iff_card_roots {p : K[X]} :
    Splits (RingHom.id K) p ↔ Multiset.card p.roots = p.natDegree 
Arguments: {K : Type v} [Field K] {p : K[X]}
Goal: Polynomial.Splits (RingHom.id K) p ↔ Multiset.card p.roots = p.natDegree
-- Polynomial.aeval_root_derivative_of_splits
theorem aeval_root_derivative_of_splits [Algebra K L] [DecidableEq L] {P : K[X]} (hmo : P.Monic)
    (hP : P.Splits (algebraMap K L)) {r : L} (hr : r ∈ P.aroots L) :
    aeval r (Polynomial.derivative P) =
    (((P.aroots L).erase r).map fun a => r - a).prod 
Arguments: {K : Type v} {L : Type w} [Field K] [Field L] [Algebra K L] [DecidableEq L] {P : K[X]} (hmo : P.Monic) (hP : Polynomial.Splits (algebraMap K L) P) {r : L} (hr : r ∈ P.aroots L)
Goal: (Polynomial.aeval r) (Polynomial.derivative P) = (Multiset.map (fun a => r - a) ((P.aroots L).erase r)).prod
-- Polynomial.prod_roots_eq_coeff_zero_of_monic_of_split
theorem prod_roots_eq_coeff_zero_of_monic_of_split {P : K[X]} (hmo : P.Monic)
    (hP : P.Splits (RingHom.id K)) : coeff P 0 = (-1) ^ P.natDegree * P.roots.prod 
Arguments: {K : Type v} [Field K] {P : K[X]} (hmo : P.Monic) (hP : Polynomial.Splits (RingHom.id K) P)
Goal: P.coeff 0 = (-1) ^ P.natDegree * P.roots.prod
-- Polynomial.sum_roots_eq_nextCoeff_of_monic_of_split
theorem sum_roots_eq_nextCoeff_of_monic_of_split {P : K[X]} (hmo : P.Monic)
    (hP : P.Splits (RingHom.id K)) : P.nextCoeff = -P.roots.sum 
Arguments: {K : Type v} [Field K] {P : K[X]} (hmo : P.Monic) (hP : Polynomial.Splits (RingHom.id K) P)
Goal: P.nextCoeff = -P.roots.sum
-- Module.AEval.of_aeval_smul
lemma of_aeval_smul (f : R[X]) (m : M) : of R M a (aeval a f • m) = f • of R M a m 
Arguments: {R : Type u_1} {A : Type u_3} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (f : R[X]) (m : M)
Goal: (Module.AEval.of R M a) ((Polynomial.aeval a) f • m) = f • (Module.AEval.of R M a) m
-- Module.AEval.of_symm_smul
@[simp] lemma of_symm_smul (f : R[X]) (m : AEval R M a) :
    (of R M a).symm (f • m) = aeval a f • (of R M a).symm m 
Arguments: {R : Type u_1} {A : Type u_3} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (f : R[X]) (m : Module.AEval R M a)
Goal: (Module.AEval.of R M a).symm (f • m) = (Polynomial.aeval a) f • (Module.AEval.of R M a).symm m
-- Module.AEval.C_smul
@[simp] lemma C_smul (t : R) (m : AEval R M a) : C t • m = t • m 
Arguments: {R : Type u_1} {A : Type u_3} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (t : R) (m : Module.AEval R M a)
Goal: Polynomial.C t • m = t • m
-- Module.AEval.X_smul_of
lemma X_smul_of (m : M) : (X : R[X]) • (of R M a m) = of R M a (a • m) 
Arguments: {R : Type u_2} {A : Type u_3} {M : Type u_1} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (m : M)
Goal: Polynomial.X • (Module.AEval.of R M a) m = (Module.AEval.of R M a) (a • m)
-- Module.AEval.of_symm_X_smul
lemma of_symm_X_smul (m : AEval R M a) :
    (of R M a).symm ((X : R[X]) • m) = a • (of R M a).symm m 
Arguments: {R : Type u_1} {A : Type u_3} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] (m : Module.AEval R M a)
Goal: (Module.AEval.of R M a).symm (Polynomial.X • m) = a • (Module.AEval.of R M a).symm m
-- Module.AEval.annihilator_eq_ker_aeval
lemma annihilator_eq_ker_aeval [FaithfulSMul A M] :
    annihilator R[X] (AEval R M a) = RingHom.ker (aeval a) 
Arguments: {R : Type u_3} {A : Type u_1} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] [FaithfulSMul A M]
Goal: Module.annihilator R[X] (Module.AEval R M a) = RingHom.ker (Polynomial.aeval a)
-- Module.AEval.annihilator_top_eq_ker_aeval
@[simp]
lemma annihilator_top_eq_ker_aeval [FaithfulSMul A M] :
    (⊤ : Submodule R[X] <| AEval R M a).annihilator = RingHom.ker (aeval a) 
Arguments: {R : Type u_3} {A : Type u_1} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] [FaithfulSMul A M]
Goal: ⊤.annihilator = RingHom.ker (Polynomial.aeval a)
-- Module.AEval.mem_comapSubmodule
@[simp] lemma mem_comapSubmodule {x : M} :
    x ∈ comapSubmodule R M a q ↔ of R M a x ∈ q 
Arguments: {R : Type u_2} {A : Type u_3} {M : Type u_1} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] {q : Submodule R[X] (Module.AEval R M a)} {x : M}
Goal: x ∈ (Module.AEval.comapSubmodule R M a) q ↔ (Module.AEval.of R M a) x ∈ q
-- Module.AEval.comapSubmodule_le_comap
@[simp] lemma comapSubmodule_le_comap :
    comapSubmodule R M a q ≤ (comapSubmodule R M a q).comap (Algebra.lsmul R R M a) 
Arguments: {R : Type u_2} {A : Type u_3} {M : Type u_1} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] {q : Submodule R[X] (Module.AEval R M a)}
Goal: (Module.AEval.comapSubmodule R M a) q ≤
  Submodule.comap ((Algebra.lsmul R R M) a) ((Module.AEval.comapSubmodule R M a) q)
-- Module.AEval.mem_mapSubmodule
@[simp] lemma mem_mapSubmodule {m : AEval R M a} :
    m ∈ mapSubmodule a hp ↔ (of R M a).symm m ∈ p 
Arguments: {R : Type u_1} {A : Type u_3} {M : Type u_2} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] {p : Submodule R M} (hp : p ≤ Submodule.comap ((Algebra.lsmul R R M) a) p) {m : Module.AEval R M a}
Goal: m ∈ Module.AEval.mapSubmodule a hp ↔ (Module.AEval.of R M a).symm m ∈ p
-- Module.AEval.mapSubmodule_comapSubmodule
@[simp] lemma mapSubmodule_comapSubmodule (h := comapSubmodule_le_comap a) :
    mapSubmodule a (p := comapSubmodule R M a q) h = q 
Arguments: {R : Type u_2} {A : Type u_3} {M : Type u_1} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] {q : Submodule R[X] (Module.AEval R M a)} (h :
  (Module.AEval.comapSubmodule R M a) q ≤
    Submodule.comap ((Algebra.lsmul R R M) a) ((Module.AEval.comapSubmodule R M a) q) :=
  ⋯)
Goal: Module.AEval.mapSubmodule a h = q
-- Module.AEval.comapSubmodule_mapSubmodule
@[simp] lemma comapSubmodule_mapSubmodule :
    comapSubmodule R M a (mapSubmodule a hp) = p 
Arguments: {R : Type u_2} {A : Type u_3} {M : Type u_1} [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M] {p : Submodule R M} (hp : p ≤ Submodule.comap ((Algebra.lsmul R R M) a) p)
Goal: (Module.AEval.comapSubmodule R M a) (Module.AEval.mapSubmodule a hp) = p
-- Module.AEval.injective_comapSubmodule
lemma injective_comapSubmodule : Injective (comapSubmodule R M a) 
Arguments: (R : Type u_2) {A : Type u_3} (M : Type u_1) [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M]
Goal: Function.Injective ⇑(Module.AEval.comapSubmodule R M a)
-- Module.AEval.range_comapSubmodule
lemma range_comapSubmodule :
    range (comapSubmodule R M a) = {p | p ≤ p.comap (Algebra.lsmul R R M a)} 
Arguments: (R : Type u_2) {A : Type u_3} (M : Type u_1) [CommSemiring R] [Semiring A] (a : A) [Algebra R A] [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M]
Goal: Set.range ⇑(Module.AEval.comapSubmodule R M a) = {p | p ≤ Submodule.comap ((Algebra.lsmul R R M) a) p}
-- Module.AEval'_def
lemma AEval'_def : AEval' φ = AEval R M φ 
Arguments: {R : Type u_2} {M : Type u_1} [CommSemiring R] [AddCommMonoid M] [Module R M] (φ : M →ₗ[R] M)
Goal: Module.AEval' φ = Module.AEval R M φ
-- Module.AEval'.X_smul_of
lemma AEval'.X_smul_of (m : M) : (X : R[X]) • AEval'.of φ m = AEval'.of φ (φ m) 
Arguments: {R : Type u_2} {M : Type u_1} [CommSemiring R] [AddCommMonoid M] [Module R M] (φ : M →ₗ[R] M) (m : M)
Goal: Polynomial.X • (Module.AEval'.of φ) m = (Module.AEval'.of φ) (φ m)
-- Module.AEval'.of_symm_X_smul
lemma AEval'.of_symm_X_smul (m : AEval' φ) :
    (AEval'.of φ).symm ((X : R[X]) • m) = φ ((AEval'.of φ).symm m) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (φ : M →ₗ[R] M) (m : Module.AEval' φ)
Goal: (Module.AEval'.of φ).symm (Polynomial.X • m) = φ ((Module.AEval'.of φ).symm m)
-- Polynomial.neg_cancelLeads
@[simp]
theorem neg_cancelLeads : -p.cancelLeads q = q.cancelLeads p 
Arguments: {R : Type u_1} [Ring R] {p q : Polynomial R}
Goal: -p.cancelLeads q = q.cancelLeads p
-- Polynomial.natDegree_cancelLeads_lt_of_natDegree_le_natDegree_of_comm
theorem natDegree_cancelLeads_lt_of_natDegree_le_natDegree_of_comm
    (comm : p.leadingCoeff * q.leadingCoeff = q.leadingCoeff * p.leadingCoeff)
    (h : p.natDegree ≤ q.natDegree) (hq : 0 < q.natDegree) :
    (p.cancelLeads q).natDegree < q.natDegree 
Arguments: {R : Type u_1} [Ring R] {p q : Polynomial R} (comm : p.leadingCoeff * q.leadingCoeff = q.leadingCoeff * p.leadingCoeff) (h : p.natDegree ≤ q.natDegree) (hq : 0 < q.natDegree)
Goal: (p.cancelLeads q).natDegree < q.natDegree
-- Polynomial.dvd_cancelLeads_of_dvd_of_dvd
theorem dvd_cancelLeads_of_dvd_of_dvd {r : R[X]} (pq : p ∣ q) (pr : p ∣ r) : p ∣ q.cancelLeads r 
Arguments: {R : Type u_1} [CommRing R] {p q r : Polynomial R} (pq : p ∣ q) (pr : p ∣ r)
Goal: p ∣ q.cancelLeads r
-- Polynomial.natDegree_cancelLeads_lt_of_natDegree_le_natDegree
theorem natDegree_cancelLeads_lt_of_natDegree_le_natDegree (h : p.natDegree ≤ q.natDegree)
    (hq : 0 < q.natDegree) : (p.cancelLeads q).natDegree < q.natDegree 
Arguments: {R : Type u_1} [CommRing R] {p q : Polynomial R} (h : p.natDegree ≤ q.natDegree) (hq : 0 < q.natDegree)
Goal: (p.cancelLeads q).natDegree < q.natDegree
-- Polynomial.forall_iff_forall_finsupp
theorem forall_iff_forall_finsupp (P : R[X] → Prop) :
    (∀ p, P p) ↔ ∀ q : R[ℕ], P ⟨q⟩ 
Arguments: {R : Type u} [Semiring R] (P : R[X] → Prop)
Goal: (∀ (p : R[X]), P p) ↔ ∀ (q : R[ℕ]), P { toFinsupp := q }
-- Polynomial.exists_iff_exists_finsupp
theorem exists_iff_exists_finsupp (P : R[X] → Prop) :
    (∃ p, P p) ↔ ∃ q : R[ℕ], P ⟨q⟩ 
Arguments: {R : Type u} [Semiring R] (P : R[X] → Prop)
Goal: (∃ p, P p) ↔ ∃ q, P { toFinsupp := q }
-- Polynomial.eta
@[simp]
theorem eta (f : R[X]) : Polynomial.ofFinsupp f.toFinsupp = f 
Arguments: {R : Type u} [Semiring R] (f : R[X])
Goal: { toFinsupp := f.toFinsupp } = f
-- _private.Mathlib.Algebra.Polynomial.Basic.0.Polynomial.add_def
private irreducible_def add : R[X] → R[X] → R[X]
  
Arguments: {R : Type u_1} [Semiring R]
Goal: ∀ (x x_1 : R[X]),
  Polynomial.add x x_1 =
    match x, x_1 with
    | { toFinsupp := a }, { toFinsupp := b } => { toFinsupp := a + b }
-- _private.Mathlib.Algebra.Polynomial.Basic.0.Polynomial.neg_def
private irreducible_def neg {R : Type u} [Ring R] : R[X] → R[X]
  
Arguments: {R : Type u_1} [Ring R]
Goal: ∀ (x : R[X]),
  Polynomial.neg x =
    match x with
    | { toFinsupp := a } => { toFinsupp := -a }
-- _private.Mathlib.Algebra.Polynomial.Basic.0.Polynomial.mul_def
private irreducible_def mul : R[X] → R[X] → R[X]
  
Arguments: {R : Type u_1} [Semiring R]
Goal: ∀ (x x_1 : R[X]),
  Polynomial.mul x x_1 =
    match x, x_1 with
    | { toFinsupp := a }, { toFinsupp := b } => { toFinsupp := a * b }
-- Polynomial.add_eq_add
@[simp] theorem add_eq_add : add p q = p + q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: Polynomial.add p q = p + q
-- Polynomial.mul_eq_mul
@[simp] theorem mul_eq_mul : mul p q = p * q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: Polynomial.mul p q = p * q
-- Polynomial.ofFinsupp_zero
@[simp]
theorem ofFinsupp_zero : (⟨0⟩ : R[X]) = 0 
Arguments: {R : Type u} [Semiring R]
Goal: { toFinsupp := 0 } = 0
-- Polynomial.ofFinsupp_one
@[simp]
theorem ofFinsupp_one : (⟨1⟩ : R[X]) = 1 
Arguments: {R : Type u} [Semiring R]
Goal: { toFinsupp := 1 } = 1
-- Polynomial.ofFinsupp_add
@[simp]
theorem ofFinsupp_add {a b} : (⟨a + b⟩ : R[X]) = ⟨a⟩ + ⟨b⟩ 
Arguments: {R : Type u} [Semiring R] {a b : R[ℕ]}
Goal: { toFinsupp := a + b } = { toFinsupp := a } + { toFinsupp := b }
-- Polynomial.ofFinsupp_neg
@[simp]
theorem ofFinsupp_neg {R : Type u} [Ring R] {a} : (⟨-a⟩ : R[X]) = -⟨a⟩ 
Arguments: {R : Type u} [Ring R] {a : R[ℕ]}
Goal: { toFinsupp := -a } = -{ toFinsupp := a }
-- Polynomial.ofFinsupp_sub
@[simp]
theorem ofFinsupp_sub {R : Type u} [Ring R] {a b} : (⟨a - b⟩ : R[X]) = ⟨a⟩ - ⟨b⟩ 
Arguments: {R : Type u} [Ring R] {a b : R[ℕ]}
Goal: { toFinsupp := a - b } = { toFinsupp := a } - { toFinsupp := b }
-- Polynomial.ofFinsupp_mul
@[simp]
theorem ofFinsupp_mul (a b) : (⟨a * b⟩ : R[X]) = ⟨a⟩ * ⟨b⟩ 
Arguments: {R : Type u} [Semiring R] (a b : R[ℕ])
Goal: { toFinsupp := a * b } = { toFinsupp := a } * { toFinsupp := b }
-- Polynomial.ofFinsupp_smul
@[simp]
theorem ofFinsupp_smul {S : Type*} [SMulZeroClass S R] (a : S) (b) :
    (⟨a • b⟩ : R[X]) = (a • ⟨b⟩ : R[X]) 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [SMulZeroClass S R] (a : S) (b : R[ℕ])
Goal: { toFinsupp := a • b } = a • { toFinsupp := b }
-- Polynomial.ofFinsupp_pow
@[simp]
theorem ofFinsupp_pow (a) (n : ℕ) : (⟨a ^ n⟩ : R[X]) = ⟨a⟩ ^ n 
Arguments: {R : Type u} [Semiring R] (a : R[ℕ]) (n : ℕ)
Goal: { toFinsupp := a ^ n } = { toFinsupp := a } ^ n
-- Polynomial.toFinsupp_zero
@[simp]
theorem toFinsupp_zero : (0 : R[X]).toFinsupp = 0 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.toFinsupp 0 = 0
-- Polynomial.toFinsupp_one
@[simp]
theorem toFinsupp_one : (1 : R[X]).toFinsupp = 1 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.toFinsupp 1 = 1
-- Polynomial.toFinsupp_add
@[simp]
theorem toFinsupp_add (a b : R[X]) : (a + b).toFinsupp = a.toFinsupp + b.toFinsupp 
Arguments: {R : Type u} [Semiring R] (a b : R[X])
Goal: (a + b).toFinsupp = a.toFinsupp + b.toFinsupp