ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Nat.floorDiv_eq_div
@[simp] lemma floorDiv_eq_div (a b : ℕ) : a ⌊/⌋ b = a / b 
Arguments: (a b : ℕ)
Goal: a ⌊/⌋ b = a / b
-- Nat.ceilDiv_eq_add_pred_div
lemma ceilDiv_eq_add_pred_div (a b : ℕ) : a ⌈/⌉ b = (a + b - 1) / b 
Arguments: (a b : ℕ)
Goal: a ⌈/⌉ b = (a + b - 1) / b
-- Pi.floorDiv_def
lemma floorDiv_def (f : ∀ i, π i) (a : α) : f ⌊/⌋ a = fun i ↦ f i ⌊/⌋ a 
Arguments: {ι : Type u_1} {α : Type u_2} {π : ι → Type u_4} [OrderedAddCommMonoid α] [(i : ι) → OrderedAddCommMonoid (π i)] [(i : ι) → SMulZeroClass α (π i)] [(i : ι) → FloorDiv α (π i)] (f : (i : ι) → π i) (a : α)
Goal: f ⌊/⌋ a = fun i => f i ⌊/⌋ a
-- Pi.floorDiv_apply
@[simp] lemma floorDiv_apply (f : ∀ i, π i) (a : α) (i : ι) : (f ⌊/⌋ a) i = f i ⌊/⌋ a 
Arguments: {ι : Type u_1} {α : Type u_2} {π : ι → Type u_4} [OrderedAddCommMonoid α] [(i : ι) → OrderedAddCommMonoid (π i)] [(i : ι) → SMulZeroClass α (π i)] [(i : ι) → FloorDiv α (π i)] (f : (i : ι) → π i) (a : α) (i : ι)
Goal: (f ⌊/⌋ a) i = f i ⌊/⌋ a
-- Pi.ceilDiv_def
lemma ceilDiv_def (f : ∀ i, π i) (a : α) : f ⌈/⌉ a = fun i ↦ f i ⌈/⌉ a 
Arguments: {ι : Type u_1} {α : Type u_2} {π : ι → Type u_4} [OrderedAddCommMonoid α] [(i : ι) → OrderedAddCommMonoid (π i)] [(i : ι) → SMulZeroClass α (π i)] [(i : ι) → CeilDiv α (π i)] (f : (i : ι) → π i) (a : α)
Goal: f ⌈/⌉ a = fun i => f i ⌈/⌉ a
-- Pi.ceilDiv_apply
@[simp] lemma ceilDiv_apply (f : ∀ i, π i) (a : α) (i : ι) : (f ⌈/⌉ a) i = f i ⌈/⌉ a 
Arguments: {ι : Type u_1} {α : Type u_2} {π : ι → Type u_4} [OrderedAddCommMonoid α] [(i : ι) → OrderedAddCommMonoid (π i)] [(i : ι) → SMulZeroClass α (π i)] [(i : ι) → CeilDiv α (π i)] (f : (i : ι) → π i) (a : α) (i : ι)
Goal: (f ⌈/⌉ a) i = f i ⌈/⌉ a
-- Finsupp.floorDiv_def
lemma floorDiv_def (f : ι →₀ β) (a : α) : f ⌊/⌋ a = f.mapRange (· ⌊/⌋ a) (zero_floorDiv _) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [FloorDiv α β] (f : ι →₀ β) (a : α)
Goal: f ⌊/⌋ a = Finsupp.mapRange (fun x => x ⌊/⌋ a) ⋯ f
-- Finsupp.coe_floorDiv
@[norm_cast] lemma coe_floorDiv (f : ι →₀ β) (a : α) : f ⌊/⌋ a = fun i ↦ f i ⌊/⌋ a 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [FloorDiv α β] (f : ι →₀ β) (a : α)
Goal: ⇑(f ⌊/⌋ a) = fun i => f i ⌊/⌋ a
-- Finsupp.floorDiv_apply
@[simp] lemma floorDiv_apply (f : ι →₀ β) (a : α) (i : ι) : (f ⌊/⌋ a) i = f i ⌊/⌋ a 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [FloorDiv α β] (f : ι →₀ β) (a : α) (i : ι)
Goal: (f ⌊/⌋ a) i = f i ⌊/⌋ a
-- Finsupp.support_floorDiv_subset
lemma support_floorDiv_subset : (f ⌊/⌋ a).support ⊆ f.support 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [FloorDiv α β] {f : ι →₀ β} {a : α}
Goal: (f ⌊/⌋ a).support ⊆ f.support
-- Finsupp.ceilDiv_def
lemma ceilDiv_def (f : ι →₀ β) (a : α) : f ⌈/⌉ a = f.mapRange (· ⌈/⌉ a) (zero_ceilDiv _) 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [CeilDiv α β] (f : ι →₀ β) (a : α)
Goal: f ⌈/⌉ a = Finsupp.mapRange (fun x => x ⌈/⌉ a) ⋯ f
-- Finsupp.coe_ceilDiv_def
@[norm_cast] lemma coe_ceilDiv_def (f : ι →₀ β) (a : α) : f ⌈/⌉ a = fun i ↦ f i ⌈/⌉ a 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [CeilDiv α β] (f : ι →₀ β) (a : α)
Goal: ⇑(f ⌈/⌉ a) = fun i => f i ⌈/⌉ a
-- Finsupp.ceilDiv_apply
@[simp] lemma ceilDiv_apply (f : ι →₀ β) (a : α) (i : ι) : (f ⌈/⌉ a) i = f i ⌈/⌉ a 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [CeilDiv α β] (f : ι →₀ β) (a : α) (i : ι)
Goal: (f ⌈/⌉ a) i = f i ⌈/⌉ a
-- Finsupp.support_ceilDiv_subset
lemma support_ceilDiv_subset : (f ⌈/⌉ a).support ⊆ f.support 
Arguments: {ι : Type u_1} {α : Type u_2} {β : Type u_3} [OrderedAddCommMonoid α] [OrderedAddCommMonoid β] [SMulZeroClass α β] [CeilDiv α β] {f : ι →₀ β} {a : α}
Goal: (f ⌈/⌉ a).support ⊆ f.support
-- abs_nnqsmul
@[simp] lemma abs_nnqsmul [DistribMulAction ℚ≥0 α] [PosSMulMono ℚ≥0 α] (q : ℚ≥0) (a : α) :
    |q • a| = q • |a| 
Arguments: {α : Type u_1} [LinearOrderedAddCommGroup α] [DistribMulAction ℚ≥0 α] [PosSMulMono ℚ≥0 α] (q : ℚ≥0) (a : α)
Goal: |q • a| = q • |a|
-- abs_qsmul
@[simp] lemma abs_qsmul [Module ℚ α] [PosSMulMono ℚ α] (q : ℚ) (a : α) :
    |q • a| = |q| • |a| 
Arguments: {α : Type u_1} [LinearOrderedAddCommGroup α] [Module ℚ α] [PosSMulMono ℚ α] (q : ℚ) (a : α)
Goal: |q • a| = |q| • |a|
-- LinearOrderedField.cutMap_mono
theorem cutMap_mono (h : a₁ ≤ a₂) : cutMap β a₁ ⊆ cutMap β a₂ 
Arguments: {α : Type u_2} (β : Type u_3) [LinearOrderedField α] [DivisionRing β] {a₁ a₂ : α} (h : a₁ ≤ a₂)
Goal: LinearOrderedField.cutMap β a₁ ⊆ LinearOrderedField.cutMap β a₂
-- LinearOrderedField.mem_cutMap_iff
@[simp]
theorem mem_cutMap_iff : b ∈ cutMap β a ↔ ∃ q : ℚ, (q : α) < a ∧ (q : β) = b 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [DivisionRing β] {a : α} {b : β}
Goal: b ∈ LinearOrderedField.cutMap β a ↔ ∃ q, ↑q < a ∧ ↑q = b
-- LinearOrderedField.coe_mem_cutMap_iff
theorem coe_mem_cutMap_iff [CharZero β] : (q : β) ∈ cutMap β a ↔ (q : α) < a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [DivisionRing β] {a : α} {q : ℚ} [CharZero β]
Goal: ↑q ∈ LinearOrderedField.cutMap β a ↔ ↑q < a
-- LinearOrderedField.cutMap_self
theorem cutMap_self (a : α) : cutMap α a = Iio a ∩ range (Rat.cast : ℚ → α) 
Arguments: {α : Type u_2} [LinearOrderedField α] (a : α)
Goal: LinearOrderedField.cutMap α a = Set.Iio a ∩ Set.range Rat.cast
-- LinearOrderedField.cutMap_coe
theorem cutMap_coe (q : ℚ) : cutMap β (q : α) = Rat.cast '' {r : ℚ | (r : β) < q} 
Arguments: {α : Type u_2} (β : Type u_3) [LinearOrderedField α] [LinearOrderedField β] (q : ℚ)
Goal: LinearOrderedField.cutMap β ↑q = Rat.cast '' {r | ↑r < ↑q}
-- LinearOrderedField.cutMap_nonempty
theorem cutMap_nonempty (a : α) : (cutMap β a).Nonempty 
Arguments: {α : Type u_2} (β : Type u_3) [LinearOrderedField α] [LinearOrderedField β] [Archimedean α] (a : α)
Goal: (LinearOrderedField.cutMap β a).Nonempty
-- LinearOrderedField.cutMap_bddAbove
theorem cutMap_bddAbove (a : α) : BddAbove (cutMap β a) 
Arguments: {α : Type u_2} (β : Type u_3) [LinearOrderedField α] [LinearOrderedField β] [Archimedean α] (a : α)
Goal: BddAbove (LinearOrderedField.cutMap β a)
-- LinearOrderedField.cutMap_add
theorem cutMap_add (a b : α) : cutMap β (a + b) = cutMap β a + cutMap β b 
Arguments: {α : Type u_2} (β : Type u_3) [LinearOrderedField α] [LinearOrderedField β] [Archimedean α] (a b : α)
Goal: LinearOrderedField.cutMap β (a + b) = LinearOrderedField.cutMap β a + LinearOrderedField.cutMap β b
-- LinearOrderedField.inducedMap_mono
theorem inducedMap_mono : Monotone (inducedMap α β) 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α]
Goal: Monotone (LinearOrderedField.inducedMap α β)
-- LinearOrderedField.inducedMap_rat
theorem inducedMap_rat (q : ℚ) : inducedMap α β (q : α) = q 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] (q : ℚ)
Goal: LinearOrderedField.inducedMap α β ↑q = ↑q
-- LinearOrderedField.inducedMap_zero
@[simp]
theorem inducedMap_zero : inducedMap α β 0 = 0 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α]
Goal: LinearOrderedField.inducedMap α β 0 = 0
-- LinearOrderedField.inducedMap_one
@[simp]
theorem inducedMap_one : inducedMap α β 1 = 1 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α]
Goal: LinearOrderedField.inducedMap α β 1 = 1
-- LinearOrderedField.inducedMap_nonneg
theorem inducedMap_nonneg (ha : 0 ≤ a) : 0 ≤ inducedMap α β a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] {a : α} (ha : 0 ≤ a)
Goal: 0 ≤ LinearOrderedField.inducedMap α β a
-- LinearOrderedField.coe_lt_inducedMap_iff
theorem coe_lt_inducedMap_iff : (q : β) < inducedMap α β a ↔ (q : α) < a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] {a : α} {q : ℚ}
Goal: ↑q < LinearOrderedField.inducedMap α β a ↔ ↑q < a
-- LinearOrderedField.lt_inducedMap_iff
theorem lt_inducedMap_iff : b < inducedMap α β a ↔ ∃ q : ℚ, b < q ∧ (q : α) < a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] {a : α} {b : β}
Goal: b < LinearOrderedField.inducedMap α β a ↔ ∃ q, b < ↑q ∧ ↑q < a
-- LinearOrderedField.inducedMap_self
@[simp]
theorem inducedMap_self (b : β) : inducedMap β β b = b 
Arguments: {β : Type u_3} [ConditionallyCompleteLinearOrderedField β] (b : β)
Goal: LinearOrderedField.inducedMap β β b = b
-- LinearOrderedField.inducedMap_inducedMap
@[simp]
theorem inducedMap_inducedMap (a : α) : inducedMap β γ (inducedMap α β a) = inducedMap α γ a 
Arguments: (α : Type u_2) (β : Type u_3) (γ : Type u_4) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [ConditionallyCompleteLinearOrderedField γ] [Archimedean α] (a : α)
Goal: LinearOrderedField.inducedMap β γ (LinearOrderedField.inducedMap α β a) = LinearOrderedField.inducedMap α γ a
-- LinearOrderedField.inducedMap_inv_self
theorem inducedMap_inv_self (b : β) : inducedMap γ β (inducedMap β γ b) = b 
Arguments: (β : Type u_3) (γ : Type u_4) [ConditionallyCompleteLinearOrderedField β] [ConditionallyCompleteLinearOrderedField γ] (b : β)
Goal: LinearOrderedField.inducedMap γ β (LinearOrderedField.inducedMap β γ b) = b
-- LinearOrderedField.inducedMap_add
theorem inducedMap_add (x y : α) :
    inducedMap α β (x + y) = inducedMap α β x + inducedMap α β y 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] (x y : α)
Goal: LinearOrderedField.inducedMap α β (x + y) = LinearOrderedField.inducedMap α β x + LinearOrderedField.inducedMap α β y
-- LinearOrderedField.le_inducedMap_mul_self_of_mem_cutMap
theorem le_inducedMap_mul_self_of_mem_cutMap (ha : 0 < a) (b : β) (hb : b ∈ cutMap β (a * a)) :
    b ≤ inducedMap α β a * inducedMap α β a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] {a : α} (ha : 0 < a) (b : β) (hb : b ∈ LinearOrderedField.cutMap β (a * a))
Goal: b ≤ LinearOrderedField.inducedMap α β a * LinearOrderedField.inducedMap α β a
-- LinearOrderedField.exists_mem_cutMap_mul_self_of_lt_inducedMap_mul_self
theorem exists_mem_cutMap_mul_self_of_lt_inducedMap_mul_self (ha : 0 < a) (b : β)
    (hba : b < inducedMap α β a * inducedMap α β a) : ∃ c ∈ cutMap β (a * a), b < c 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α] {a : α} (ha : 0 < a) (b : β) (hba : b < LinearOrderedField.inducedMap α β a * LinearOrderedField.inducedMap α β a)
Goal: ∃ c ∈ LinearOrderedField.cutMap β (a * a), b < c
-- LinearOrderedField.inducedOrderRingHom_toFun
@[simps!]
def inducedOrderRingHom : α →+*o β 
Arguments: (α : Type u_2) (β : Type u_3) [LinearOrderedField α] [ConditionallyCompleteLinearOrderedField β] [Archimedean α]
Goal: ∀ (a : α), (LinearOrderedField.inducedOrderRingHom α β) a = (LinearOrderedField.inducedAddHom α β) a
-- LinearOrderedField.coe_inducedOrderRingIso
@[simp]
theorem coe_inducedOrderRingIso : ⇑(inducedOrderRingIso β γ) = inducedMap β γ 
Arguments: (β : Type u_3) (γ : Type u_4) [ConditionallyCompleteLinearOrderedField β] [ConditionallyCompleteLinearOrderedField γ]
Goal: ⇑(LinearOrderedField.inducedOrderRingIso β γ) = LinearOrderedField.inducedMap β γ
-- LinearOrderedField.inducedOrderRingIso_symm
@[simp]
theorem inducedOrderRingIso_symm : (inducedOrderRingIso β γ).symm = inducedOrderRingIso γ β 
Arguments: (β : Type u_3) (γ : Type u_4) [ConditionallyCompleteLinearOrderedField β] [ConditionallyCompleteLinearOrderedField γ]
Goal: (LinearOrderedField.inducedOrderRingIso β γ).symm = LinearOrderedField.inducedOrderRingIso γ β
-- LinearOrderedField.inducedOrderRingIso_self
@[simp]
theorem inducedOrderRingIso_self : inducedOrderRingIso β β = OrderRingIso.refl β 
Arguments: (β : Type u_3) [ConditionallyCompleteLinearOrderedField β]
Goal: LinearOrderedField.inducedOrderRingIso β β = OrderRingIso.refl β
-- ringHom_monotone
theorem ringHom_monotone (hR : ∀ r : R, 0 ≤ r → ∃ s : R, s ^ 2 = r) (f : R →+* S) : Monotone f 
Arguments: {R : Type u_5} {S : Type u_6} [OrderedRing R] [LinearOrderedRing S] (hR : ∀ (r : R), 0 ≤ r → ∃ s, s ^ 2 = r) (f : R →+* S)
Goal: Monotone ⇑f
-- AddHom.le_map_tsub
theorem AddHom.le_map_tsub [Preorder β] [Add β] [Sub β] [OrderedSub β] (f : AddHom α β)
    (hf : Monotone f) (a b : α) : f a - f b ≤ f (a - b) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Add α] [Sub α] [OrderedSub α] [Preorder β] [Add β] [Sub β] [OrderedSub β] (f : AddHom α β) (hf : Monotone ⇑f) (a b : α)
Goal: f a - f b ≤ f (a - b)
-- le_mul_tsub
theorem le_mul_tsub {R : Type*} [Distrib R] [Preorder R] [Sub R] [OrderedSub R]
    [CovariantClass R R (· * ·) (· ≤ ·)] {a b c : R} : a * b - a * c ≤ a * (b - c) 
Arguments: {R : Type u_3} [Distrib R] [Preorder R] [Sub R] [OrderedSub R] [CovariantClass R R (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a b c : R}
Goal: a * b - a * c ≤ a * (b - c)
-- le_tsub_mul
theorem le_tsub_mul {R : Type*} [CommSemiring R] [Preorder R] [Sub R] [OrderedSub R]
    [CovariantClass R R (· * ·) (· ≤ ·)] {a b c : R} : a * c - b * c ≤ (a - b) * c 
Arguments: {R : Type u_3} [CommSemiring R] [Preorder R] [Sub R] [OrderedSub R] [CovariantClass R R (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a b c : R}
Goal: a * c - b * c ≤ (a - b) * c
-- OrderIso.map_tsub
theorem OrderIso.map_tsub {M N : Type*} [Preorder M] [Add M] [Sub M] [OrderedSub M]
    [PartialOrder N] [Add N] [Sub N] [OrderedSub N] (e : M ≃o N)
    (h_add : ∀ a b, e (a + b) = e a + e b) (a b : M) : e (a - b) = e a - e b 
Arguments: {M : Type u_3} {N : Type u_4} [Preorder M] [Add M] [Sub M] [OrderedSub M] [PartialOrder N] [Add N] [Sub N] [OrderedSub N] (e : M ≃o N) (h_add : ∀ (a b : M), e (a + b) = e a + e b) (a b : M)
Goal: e (a - b) = e a - e b
-- AddMonoidHom.le_map_tsub
theorem AddMonoidHom.le_map_tsub [Preorder β] [AddCommMonoid β] [Sub β] [OrderedSub β] (f : α →+ β)
    (hf : Monotone f) (a b : α) : f a - f b ≤ f (a - b) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [AddCommMonoid α] [Sub α] [OrderedSub α] [Preorder β] [AddCommMonoid β] [Sub β] [OrderedSub β] (f : α →+ β) (hf : Monotone ⇑f) (a b : α)
Goal: f a - f b ≤ f (a - b)
-- Polynomial.rootMultiplicity_sub_one_le_derivative_rootMultiplicity_of_ne_zero
theorem rootMultiplicity_sub_one_le_derivative_rootMultiplicity_of_ne_zero
    (p : R[X]) (t : R) (hnezero : derivative p ≠ 0) :
    p.rootMultiplicity t - 1 ≤ p.derivative.rootMultiplicity t 
Arguments: {R : Type u} [CommRing R] (p : R[X]) (t : R) (hnezero : Polynomial.derivative p ≠ 0)
Goal: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (Polynomial.derivative p)
-- Polynomial.derivative_rootMultiplicity_of_root_of_mem_nonZeroDivisors
theorem derivative_rootMultiplicity_of_root_of_mem_nonZeroDivisors
    {p : R[X]} {t : R} (hpt : Polynomial.IsRoot p t)
    (hnzd : (p.rootMultiplicity t : R) ∈ nonZeroDivisors R) :
    (derivative p).rootMultiplicity t = p.rootMultiplicity t - 1 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} (hpt : p.IsRoot t) (hnzd : ↑(Polynomial.rootMultiplicity t p) ∈ nonZeroDivisors R)
Goal: Polynomial.rootMultiplicity t (Polynomial.derivative p) = Polynomial.rootMultiplicity t p - 1
-- Polynomial.isRoot_iterate_derivative_of_lt_rootMultiplicity
theorem isRoot_iterate_derivative_of_lt_rootMultiplicity {p : R[X]} {t : R} {n : ℕ}
    (hn : n < p.rootMultiplicity t) : (derivative^[n] p).IsRoot t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} {n : ℕ} (hn : n < Polynomial.rootMultiplicity t p)
Goal: ((⇑Polynomial.derivative)^[n] p).IsRoot t
-- Polynomial.eval_iterate_derivative_rootMultiplicity
theorem eval_iterate_derivative_rootMultiplicity {p : R[X]} {t : R} :
    (derivative^[p.rootMultiplicity t] p).eval t =
      (p.rootMultiplicity t).factorial • (p /ₘ (X - C t) ^ p.rootMultiplicity t).eval t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R}
Goal: Polynomial.eval t ((⇑Polynomial.derivative)^[Polynomial.rootMultiplicity t p] p) =
  (Polynomial.rootMultiplicity t p).factorial •
    Polynomial.eval t (p /ₘ (Polynomial.X - Polynomial.C t) ^ Polynomial.rootMultiplicity t p)
-- Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors
theorem lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors
    {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
    (hroot : ∀ m ≤ n, (derivative^[m] p).IsRoot t)
    (hnzd : (n.factorial : R) ∈ nonZeroDivisors R) :
    n < p.rootMultiplicity t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) (hroot : ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t) (hnzd : ↑n.factorial ∈ nonZeroDivisors R)
Goal: n < Polynomial.rootMultiplicity t p
-- Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors'
theorem lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors'
    {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
    (hroot : ∀ m ≤ n, (derivative^[m] p).IsRoot t)
    (hnzd : ∀ m ≤ n, m ≠ 0 → (m : R) ∈ nonZeroDivisors R) :
    n < p.rootMultiplicity t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) (hroot : ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t) (hnzd : ∀ m ≤ n, m ≠ 0 → ↑m ∈ nonZeroDivisors R)
Goal: n < Polynomial.rootMultiplicity t p
-- Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors
theorem lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors
    {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
    (hnzd : (n.factorial : R) ∈ nonZeroDivisors R) :
    n < p.rootMultiplicity t ↔ ∀ m ≤ n, (derivative^[m] p).IsRoot t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) (hnzd : ↑n.factorial ∈ nonZeroDivisors R)
Goal: n < Polynomial.rootMultiplicity t p ↔ ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t
-- Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors'
theorem lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors'
    {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
    (hnzd : ∀ m ≤ n, m ≠ 0 → (m : R) ∈ nonZeroDivisors R) :
    n < p.rootMultiplicity t ↔ ∀ m ≤ n, (derivative^[m] p).IsRoot t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) (hnzd : ∀ m ≤ n, m ≠ 0 → ↑m ∈ nonZeroDivisors R)
Goal: n < Polynomial.rootMultiplicity t p ↔ ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t
-- Polynomial.one_lt_rootMultiplicity_iff_isRoot_iterate_derivative
theorem one_lt_rootMultiplicity_iff_isRoot_iterate_derivative
    {p : R[X]} {t : R} (h : p ≠ 0) :
    1 < p.rootMultiplicity t ↔ ∀ m ≤ 1, (derivative^[m] p).IsRoot t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} (h : p ≠ 0)
Goal: 1 < Polynomial.rootMultiplicity t p ↔ ∀ m ≤ 1, ((⇑Polynomial.derivative)^[m] p).IsRoot t
-- Polynomial.one_lt_rootMultiplicity_iff_isRoot
theorem one_lt_rootMultiplicity_iff_isRoot
    {p : R[X]} {t : R} (h : p ≠ 0) :
    1 < p.rootMultiplicity t ↔ p.IsRoot t ∧ (derivative p).IsRoot t 
Arguments: {R : Type u} [CommRing R] {p : R[X]} {t : R} (h : p ≠ 0)
Goal: 1 < Polynomial.rootMultiplicity t p ↔ p.IsRoot t ∧ (Polynomial.derivative p).IsRoot t
-- Polynomial.one_lt_rootMultiplicity_iff_isRoot_gcd
theorem one_lt_rootMultiplicity_iff_isRoot_gcd
    [GCDMonoid R[X]] {p : R[X]} {t : R} (h : p ≠ 0) :
    1 < p.rootMultiplicity t ↔ (gcd p (derivative p)).IsRoot t 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [GCDMonoid R[X]] {p : R[X]} {t : R} (h : p ≠ 0)
Goal: 1 < Polynomial.rootMultiplicity t p ↔ (gcd p (Polynomial.derivative p)).IsRoot t
-- Polynomial.derivative_rootMultiplicity_of_root
theorem derivative_rootMultiplicity_of_root [CharZero R] {p : R[X]} {t : R} (hpt : p.IsRoot t) :
    p.derivative.rootMultiplicity t = p.rootMultiplicity t - 1 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [CharZero R] {p : R[X]} {t : R} (hpt : p.IsRoot t)
Goal: Polynomial.rootMultiplicity t (Polynomial.derivative p) = Polynomial.rootMultiplicity t p - 1
-- Polynomial.rootMultiplicity_sub_one_le_derivative_rootMultiplicity
theorem rootMultiplicity_sub_one_le_derivative_rootMultiplicity [CharZero R] (p : R[X]) (t : R) :
    p.rootMultiplicity t - 1 ≤ p.derivative.rootMultiplicity t 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [CharZero R] (p : R[X]) (t : R)
Goal: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (Polynomial.derivative p)
-- Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative
theorem lt_rootMultiplicity_of_isRoot_iterate_derivative
    [CharZero R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
    (hroot : ∀ m ≤ n, (derivative^[m] p).IsRoot t) :
    n < p.rootMultiplicity t 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [CharZero R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) (hroot : ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t)
Goal: n < Polynomial.rootMultiplicity t p
-- Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative
theorem lt_rootMultiplicity_iff_isRoot_iterate_derivative
    [CharZero R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0) :
    n < p.rootMultiplicity t ↔ ∀ m ≤ n, (derivative^[m] p).IsRoot t 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [CharZero R] {p : R[X]} {t : R} {n : ℕ} (h : p ≠ 0)
Goal: n < Polynomial.rootMultiplicity t p ↔ ∀ m ≤ n, ((⇑Polynomial.derivative)^[m] p).IsRoot t
-- Polynomial.coe_normUnit
@[simp]
theorem coe_normUnit {p : R[X]} : (normUnit p : R[X]) = C ↑(normUnit p.leadingCoeff) 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R] {p : R[X]}
Goal: ↑(normUnit p) = Polynomial.C ↑(normUnit p.leadingCoeff)
-- Polynomial.leadingCoeff_normalize
theorem leadingCoeff_normalize (p : R[X]) :
    leadingCoeff (normalize p) = normalize (leadingCoeff p) 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R] (p : R[X])
Goal: (normalize p).leadingCoeff = normalize p.leadingCoeff
-- Polynomial.Monic.normalize_eq_self
theorem Monic.normalize_eq_self {p : R[X]} (hp : p.Monic) : normalize p = p 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R] {p : R[X]} (hp : p.Monic)
Goal: normalize p = p
-- Polynomial.roots_normalize
theorem roots_normalize {p : R[X]} : (normalize p).roots = p.roots 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R] {p : R[X]}
Goal: (normalize p).roots = p.roots
-- Polynomial.normUnit_X
theorem normUnit_X : normUnit (X : Polynomial R) = 1 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R]
Goal: normUnit Polynomial.X = 1
-- Polynomial.X_eq_normalize
theorem X_eq_normalize : (X : Polynomial R) = normalize X 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [NormalizationMonoid R]
Goal: Polynomial.X = normalize Polynomial.X
-- Polynomial.degree_pos_of_ne_zero_of_nonunit
theorem degree_pos_of_ne_zero_of_nonunit (hp0 : p ≠ 0) (hp : ¬IsUnit p) : 0 < degree p 
Arguments: {R : Type u} [DivisionRing R] {p : R[X]} (hp0 : p ≠ 0) (hp : ¬IsUnit p)
Goal: 0 < p.degree
-- Polynomial.map_eq_zero
@[simp]
theorem map_eq_zero [Semiring S] [Nontrivial S] (f : R →+* S) : p.map f = 0 ↔ p = 0 
Arguments: {R : Type u} {S : Type v} [DivisionRing R] {p : R[X]} [Semiring S] [Nontrivial S] (f : R →+* S)
Goal: Polynomial.map f p = 0 ↔ p = 0
-- Polynomial.map_ne_zero
theorem map_ne_zero [Semiring S] [Nontrivial S] {f : R →+* S} (hp : p ≠ 0) : p.map f ≠ 0 
Arguments: {R : Type u} {S : Type v} [DivisionRing R] {p : R[X]} [Semiring S] [Nontrivial S] {f : R →+* S} (hp : p ≠ 0)
Goal: Polynomial.map f p ≠ 0
-- Polynomial.degree_map
@[simp]
theorem degree_map [Semiring S] [Nontrivial S] (p : R[X]) (f : R →+* S) :
    degree (p.map f) = degree p 
Arguments: {R : Type u} {S : Type v} [DivisionRing R] [Semiring S] [Nontrivial S] (p : R[X]) (f : R →+* S)
Goal: (Polynomial.map f p).degree = p.degree