ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddMonoidAlgebra.grade.decompose_single
theorem grade.decompose_single (i : ι) (r : R) :
    DirectSum.decompose (grade R : ι → Submodule _ _) (Finsupp.single i r : AddMonoidAlgebra _ _) =
      DirectSum.of (fun i : ι => grade R i) i ⟨Finsupp.single i r, single_mem_grade _ _⟩ 
Arguments: {ι : Type u_2} {R : Type u_3} [DecidableEq ι] [AddMonoid ι] [CommSemiring R] (i : ι) (r : R)
Goal: (DirectSum.decompose (AddMonoidAlgebra.grade R)) (Finsupp.single i r) =
  (DirectSum.of (fun i => ↥(AddMonoidAlgebra.grade R i)) i) ⟨Finsupp.single i r, ⋯⟩
-- AddMonoidAlgebra.gradeBy.isInternal
theorem gradeBy.isInternal : DirectSum.IsInternal (gradeBy R f) 
Arguments: {M : Type u_1} {ι : Type u_2} {R : Type u_3} [AddMonoid M] [DecidableEq ι] [AddMonoid ι] [CommSemiring R] (f : M →+ ι)
Goal: DirectSum.IsInternal (AddMonoidAlgebra.gradeBy R ⇑f)
-- AddMonoidAlgebra.grade.isInternal
theorem grade.isInternal : DirectSum.IsInternal (grade R : ι → Submodule R _) 
Arguments: {ι : Type u_2} {R : Type u_3} [DecidableEq ι] [AddMonoid ι] [CommSemiring R]
Goal: DirectSum.IsInternal (AddMonoidAlgebra.grade R)
-- CharP.quotient
theorem quotient (R : Type u) [CommRing R] (p : ℕ) [hp1 : Fact p.Prime] (hp2 : ↑p ∈ nonunits R) :
    CharP (R ⧸ (Ideal.span ({(p : R)} : Set R) : Ideal R)) p 
Arguments: (R : Type u) [CommRing R] (p : ℕ) [hp1 : Fact (Nat.Prime p)] (hp2 : ↑p ∈ nonunits R)
Goal: CharP (R ⧸ Ideal.span {↑p}) p
-- CharP.quotient'
theorem quotient' {R : Type*} [CommRing R] (p : ℕ) [CharP R p] (I : Ideal R)
    (h : ∀ x : ℕ, (x : R) ∈ I → (x : R) = 0) : CharP (R ⧸ I) p 
Arguments: {R : Type u_1} [CommRing R] (p : ℕ) [CharP R p] (I : Ideal R) (h : ∀ (x : ℕ), ↑x ∈ I → ↑x = 0)
Goal: CharP (R ⧸ I) p
-- CharP.quotient_iff
theorem quotient_iff {R : Type*} [CommRing R] (n : ℕ) [CharP R n] (I : Ideal R) :
    CharP (R ⧸ I) n ↔ ∀ x : ℕ, ↑x ∈ I → (x : R) = 0 
Arguments: {R : Type u_1} [CommRing R] (n : ℕ) [CharP R n] (I : Ideal R)
Goal: CharP (R ⧸ I) n ↔ ∀ (x : ℕ), ↑x ∈ I → ↑x = 0
-- CharP.quotient_iff_le_ker_natCast
theorem quotient_iff_le_ker_natCast {R : Type*} [CommRing R] (n : ℕ) [CharP R n] (I : Ideal R) :
    CharP (R ⧸ I) n ↔ I.comap (Nat.castRingHom R) ≤ RingHom.ker (Nat.castRingHom R) 
Arguments: {R : Type u_1} [CommRing R] (n : ℕ) [CharP R n] (I : Ideal R)
Goal: CharP (R ⧸ I) n ↔ Ideal.comap (Nat.castRingHom R) I ≤ RingHom.ker (Nat.castRingHom R)
-- Ideal.Quotient.index_eq_zero
theorem Ideal.Quotient.index_eq_zero {R : Type*} [CommRing R] (I : Ideal R) :
    (↑I.toAddSubgroup.index : R ⧸ I) = 0 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R)
Goal: ↑(Submodule.toAddSubgroup I).index = 0
-- iterateFrobenius_inj
theorem iterateFrobenius_inj : Function.Injective (iterateFrobenius R p n) 
Arguments: (R : Type u_1) [CommRing R] [IsReduced R] (p n : ℕ) [ExpChar R p]
Goal: Function.Injective ⇑(iterateFrobenius R p n)
-- frobenius_inj
theorem frobenius_inj : Function.Injective (frobenius R p) 
Arguments: (R : Type u_1) [CommRing R] [IsReduced R] (p : ℕ) [ExpChar R p]
Goal: Function.Injective ⇑(frobenius R p)
-- isSquare_of_charTwo'
theorem isSquare_of_charTwo' {R : Type*} [Finite R] [CommRing R] [IsReduced R] [CharP R 2]
    (a : R) : IsSquare a 
Arguments: {R : Type u_1} [Finite R] [CommRing R] [IsReduced R] [CharP R 2] (a : R)
Goal: IsSquare a
-- ExpChar.pow_prime_pow_mul_eq_one_iff
@[simp]
theorem ExpChar.pow_prime_pow_mul_eq_one_iff (p k m : ℕ) [ExpChar R p] (x : R) :
    x ^ (p ^ k * m) = 1 ↔ x ^ m = 1 
Arguments: {R : Type u_1} [CommRing R] [IsReduced R] (p k m : ℕ) [ExpChar R p] (x : R)
Goal: x ^ (p ^ k * m) = 1 ↔ x ^ m = 1
-- charP_zero_or_prime_power
theorem charP_zero_or_prime_power (R : Type*) [CommRing R] [LocalRing R] (q : ℕ)
    [char_R_q : CharP R q] : q = 0 ∨ IsPrimePow q 
Arguments: (R : Type u_1) [CommRing R] [LocalRing R] (q : ℕ) [char_R_q : CharP R q]
Goal: q = 0 ∨ IsPrimePow q
-- _private.Mathlib.Algebra.FreeAlgebra.0.FreeAlgebra.mk_mul
private theorem mk_mul (x y : Pre R X) :
    Quot.mk (Rel R X) (x * y) = (HMul.hMul (self := instHMul (α := FreeAlgebra R X))
    (Quot.mk (Rel R X) x) (Quot.mk (Rel R X) y)) 
Arguments: (R : Type u_1) [CommSemiring R] (X : Type u_2) (x y : FreeAlgebra.Pre R X)
Goal: Quot.mk (FreeAlgebra.Rel R X) (x * y) = Quot.mk (FreeAlgebra.Rel R X) x * Quot.mk (FreeAlgebra.Rel R X) y
-- FreeAlgebra.ι_def
irreducible_def ι : X → FreeAlgebra R X 
Arguments: (R : Type u_3) [CommSemiring R] {X : Type u_4} (m : X)
Goal: FreeAlgebra.ι R m = Quot.mk (FreeAlgebra.Rel R X) (FreeAlgebra.Pre.of m)
-- FreeAlgebra.quot_mk_eq_ι
@[simp]
theorem quot_mk_eq_ι (m : X) : Quot.mk (FreeAlgebra.Rel R X) m = ι R m 
Arguments: (R : Type u_1) [CommSemiring R] {X : Type u_2} (m : X)
Goal: Quot.mk (FreeAlgebra.Rel R X) (FreeAlgebra.Pre.of m) = FreeAlgebra.ι R m
-- FreeAlgebra.liftAux_eq
@[simp]
theorem liftAux_eq (f : X → A) : liftAux R f = lift R f 
Arguments: (R : Type u_1) [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (f : X → A)
Goal: FreeAlgebra.liftAux R f = (FreeAlgebra.lift R) f
-- FreeAlgebra.lift_symm_apply
@[simp]
theorem lift_symm_apply (F : FreeAlgebra R X →ₐ[R] A) : (lift R).symm F = F ∘ ι R 
Arguments: (R : Type u_1) [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (F : FreeAlgebra R X →ₐ[R] A)
Goal: (FreeAlgebra.lift R).symm F = ⇑F ∘ FreeAlgebra.ι R
-- FreeAlgebra.ι_comp_lift
@[simp]
theorem ι_comp_lift (f : X → A) : (lift R f : FreeAlgebra R X → A) ∘ ι R = f 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (f : X → A)
Goal: ⇑((FreeAlgebra.lift R) f) ∘ FreeAlgebra.ι R = f
-- FreeAlgebra.lift_ι_apply
@[simp]
theorem lift_ι_apply (f : X → A) (x) : lift R f (ι R x) = f x 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (f : X → A) (x : X)
Goal: ((FreeAlgebra.lift R) f) (FreeAlgebra.ι R x) = f x
-- FreeAlgebra.lift_unique
@[simp]
theorem lift_unique (f : X → A) (g : FreeAlgebra R X →ₐ[R] A) :
    (g : FreeAlgebra R X → A) ∘ ι R = f ↔ g = lift R f 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (f : X → A) (g : FreeAlgebra R X →ₐ[R] A)
Goal: ⇑g ∘ FreeAlgebra.ι R = f ↔ g = (FreeAlgebra.lift R) f
-- FreeAlgebra.lift_comp_ι
@[simp]
theorem lift_comp_ι (g : FreeAlgebra R X →ₐ[R] A) :
    lift R ((g : FreeAlgebra R X → A) ∘ ι R) = g 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] (g : FreeAlgebra R X →ₐ[R] A)
Goal: (FreeAlgebra.lift R) (⇑g ∘ FreeAlgebra.ι R) = g
-- FreeAlgebra.hom_ext
@[ext high]
theorem hom_ext {f g : FreeAlgebra R X →ₐ[R] A}
    (w : (f : FreeAlgebra R X → A) ∘ ι R = (g : FreeAlgebra R X → A) ∘ ι R) : f = g 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} {A : Type u_3} [Semiring A] [Algebra R A] {f g : FreeAlgebra R X →ₐ[R] A} (w : ⇑f ∘ FreeAlgebra.ι R = ⇑g ∘ FreeAlgebra.ι R)
Goal: f = g
-- FreeAlgebra.algebraMap_leftInverse
theorem algebraMap_leftInverse :
    Function.LeftInverse algebraMapInv (algebraMap R <| FreeAlgebra R X) 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2}
Goal: Function.LeftInverse ⇑FreeAlgebra.algebraMapInv ⇑(algebraMap R (FreeAlgebra R X))
-- FreeAlgebra.algebraMap_inj
@[simp]
theorem algebraMap_inj (x y : R) :
    algebraMap R (FreeAlgebra R X) x = algebraMap R (FreeAlgebra R X) y ↔ x = y 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} (x y : R)
Goal: (algebraMap R (FreeAlgebra R X)) x = (algebraMap R (FreeAlgebra R X)) y ↔ x = y
-- FreeAlgebra.algebraMap_eq_zero_iff
@[simp]
theorem algebraMap_eq_zero_iff (x : R) : algebraMap R (FreeAlgebra R X) x = 0 ↔ x = 0 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} (x : R)
Goal: (algebraMap R (FreeAlgebra R X)) x = 0 ↔ x = 0
-- FreeAlgebra.algebraMap_eq_one_iff
@[simp]
theorem algebraMap_eq_one_iff (x : R) : algebraMap R (FreeAlgebra R X) x = 1 ↔ x = 1 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} (x : R)
Goal: (algebraMap R (FreeAlgebra R X)) x = 1 ↔ x = 1
-- FreeAlgebra.ι_injective
theorem ι_injective [Nontrivial R] : Function.Injective (ι R : X → FreeAlgebra R X) 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} [Nontrivial R]
Goal: Function.Injective (FreeAlgebra.ι R)
-- FreeAlgebra.ι_inj
@[simp]
theorem ι_inj [Nontrivial R] (x y : X) : ι R x = ι R y ↔ x = y 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} [Nontrivial R] (x y : X)
Goal: FreeAlgebra.ι R x = FreeAlgebra.ι R y ↔ x = y
-- FreeAlgebra.ι_ne_algebraMap
@[simp]
theorem ι_ne_algebraMap [Nontrivial R] (x : X) (r : R) : ι R x ≠ algebraMap R _ r 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} [Nontrivial R] (x : X) (r : R)
Goal: FreeAlgebra.ι R x ≠ (algebraMap R (FreeAlgebra R X)) r
-- FreeAlgebra.ι_ne_zero
@[simp]
theorem ι_ne_zero [Nontrivial R] (x : X) : ι R x ≠ 0 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} [Nontrivial R] (x : X)
Goal: FreeAlgebra.ι R x ≠ 0
-- FreeAlgebra.ι_ne_one
@[simp]
theorem ι_ne_one [Nontrivial R] (x : X) : ι R x ≠ 1 
Arguments: {R : Type u_1} [CommSemiring R] {X : Type u_2} [Nontrivial R] (x : X)
Goal: FreeAlgebra.ι R x ≠ 1
-- FreeAlgebra.induction
@[elab_as_elim, induction_eliminator]
theorem induction {C : FreeAlgebra R X → Prop}
    (h_grade0 : ∀ r, C (algebraMap R (FreeAlgebra R X) r)) (h_grade1 : ∀ x, C (ι R x))
    (h_mul : ∀ a b, C a → C b → C (a * b)) (h_add : ∀ a b, C a → C b → C (a + b))
    (a : FreeAlgebra R X) : C a 
Arguments: (R : Type u_1) [CommSemiring R] (X : Type u_2) {C : FreeAlgebra R X → Prop} (h_grade0 : ∀ (r : R), C ((algebraMap R (FreeAlgebra R X)) r)) (h_grade1 : ∀ (x : X), C (FreeAlgebra.ι R x)) (h_mul : ∀ (a b : FreeAlgebra R X), C a → C b → C (a * b)) (h_add : ∀ (a b : FreeAlgebra R X), C a → C b → C (a + b)) (a : FreeAlgebra R X)
Goal: C a
-- FreeAlgebra.adjoin_range_ι
@[simp]
theorem adjoin_range_ι : Algebra.adjoin R (Set.range (ι R : X → FreeAlgebra R X)) = ⊤ 
Arguments: (R : Type u_1) [CommSemiring R] (X : Type u_2)
Goal: Algebra.adjoin R (Set.range (FreeAlgebra.ι R)) = ⊤
-- Algebra.adjoin_range_eq_range_freeAlgebra_lift
theorem _root_.Algebra.adjoin_range_eq_range_freeAlgebra_lift (f : X → A) :
    Algebra.adjoin R (Set.range f) = (FreeAlgebra.lift R f).range 
Arguments: (R : Type u_1) [CommSemiring R] (X : Type u_2) {A : Type u_3} [Semiring A] [Algebra R A] (f : X → A)
Goal: Algebra.adjoin R (Set.range f) = ((FreeAlgebra.lift R) f).range
-- Algebra.adjoin_eq_range_freeAlgebra_lift
theorem _root_.Algebra.adjoin_eq_range_freeAlgebra_lift (s : Set A) :
    Algebra.adjoin R s = (FreeAlgebra.lift R ((↑) : s → A)).range 
Arguments: (R : Type u_1) [CommSemiring R] {A : Type u_3} [Semiring A] [Algebra R A] (s : Set A)
Goal: Algebra.adjoin R s = ((FreeAlgebra.lift R) Subtype.val).range
-- CharTwo.two_eq_zero
theorem two_eq_zero : (2 : R) = 0 
Arguments: {R : Type u_1} [Semiring R] [CharP R 2]
Goal: 2 = 0
-- CharTwo.add_self_eq_zero
@[simp]
theorem add_self_eq_zero (x : R) : x + x = 0 
Arguments: {R : Type u_1} [Semiring R] [CharP R 2] (x : R)
Goal: x + x = 0
-- CharTwo.neg_eq
@[simp]
theorem neg_eq (x : R) : -x = x 
Arguments: {R : Type u_1} [Ring R] [CharP R 2] (x : R)
Goal: -x = x
-- CharTwo.neg_eq'
theorem neg_eq' : Neg.neg = (id : R → R) 
Arguments: {R : Type u_1} [Ring R] [CharP R 2]
Goal: Neg.neg = id
-- CharTwo.sub_eq_add
@[simp]
theorem sub_eq_add (x y : R) : x - y = x + y 
Arguments: {R : Type u_1} [Ring R] [CharP R 2] (x y : R)
Goal: x - y = x + y
-- CharTwo.sub_eq_add'
theorem sub_eq_add' : HSub.hSub = ((· + ·) : R → R → R) 
Arguments: {R : Type u_1} [Ring R] [CharP R 2]
Goal: HSub.hSub = fun x x_1 => x + x_1
-- CharTwo.add_sq
theorem add_sq (x y : R) : (x + y) ^ 2 = x ^ 2 + y ^ 2 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (x y : R)
Goal: (x + y) ^ 2 = x ^ 2 + y ^ 2
-- CharTwo.add_mul_self
theorem add_mul_self (x y : R) : (x + y) * (x + y) = x * x + y * y 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (x y : R)
Goal: (x + y) * (x + y) = x * x + y * y
-- CharTwo.list_sum_sq
theorem list_sum_sq (l : List R) : l.sum ^ 2 = (l.map (· ^ 2)).sum 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (l : List R)
Goal: l.sum ^ 2 = (List.map (fun x => x ^ 2) l).sum
-- CharTwo.list_sum_mul_self
theorem list_sum_mul_self (l : List R) : l.sum * l.sum = (List.map (fun x => x * x) l).sum 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (l : List R)
Goal: l.sum * l.sum = (List.map (fun x => x * x) l).sum
-- CharTwo.multiset_sum_sq
theorem multiset_sum_sq (l : Multiset R) : l.sum ^ 2 = (l.map (· ^ 2)).sum 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (l : Multiset R)
Goal: l.sum ^ 2 = (Multiset.map (fun x => x ^ 2) l).sum
-- CharTwo.multiset_sum_mul_self
theorem multiset_sum_mul_self (l : Multiset R) :
    l.sum * l.sum = (Multiset.map (fun x => x * x) l).sum 
Arguments: {R : Type u_1} [CommSemiring R] [CharP R 2] (l : Multiset R)
Goal: l.sum * l.sum = (Multiset.map (fun x => x * x) l).sum
-- CharTwo.sum_sq
theorem sum_sq (s : Finset ι) (f : ι → R) : (∑ i ∈ s, f i) ^ 2 = ∑ i ∈ s, f i ^ 2 
Arguments: {R : Type u_1} {ι : Type u_2} [CommSemiring R] [CharP R 2] (s : Finset ι) (f : ι → R)
Goal: (∑ i ∈ s, f i) ^ 2 = ∑ i ∈ s, f i ^ 2
-- CharTwo.sum_mul_self
theorem sum_mul_self (s : Finset ι) (f : ι → R) :
    ((∑ i ∈ s, f i) * ∑ i ∈ s, f i) = ∑ i ∈ s, f i * f i 
Arguments: {R : Type u_1} {ι : Type u_2} [CommSemiring R] [CharP R 2] (s : Finset ι) (f : ι → R)
Goal: (∑ i ∈ s, f i) * ∑ i ∈ s, f i = ∑ i ∈ s, f i * f i
-- neg_one_eq_one_iff
theorem neg_one_eq_one_iff [Nontrivial R] : (-1 : R) = 1 ↔ ringChar R = 2 
Arguments: {R : Type u_1} [Ring R] [Nontrivial R]
Goal: -1 = 1 ↔ ringChar R = 2
-- orderOf_neg_one
@[simp]
theorem orderOf_neg_one [Nontrivial R] : orderOf (-1 : R) = if ringChar R = 2 then 1 else 2 
Arguments: {R : Type u_1} [Ring R] [Nontrivial R]
Goal: orderOf (-1) = if ringChar R = 2 then 1 else 2
-- Commute.add_pow_prime_pow_eq
protected theorem add_pow_prime_pow_eq (hp : p.Prime) (h : Commute x y) (n : ℕ) :
    (x + y) ^ p ^ n =
      x ^ p ^ n + y ^ p ^ n +
        p * ∑ k ∈ Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p) 
Arguments: {R : Type u_1} [Semiring R] {p : ℕ} {x y : R} (hp : Nat.Prime p) (h : Commute x y) (n : ℕ)
Goal: (x + y) ^ p ^ n =
  x ^ p ^ n + y ^ p ^ n + ↑p * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p)
-- Commute.add_pow_prime_eq
protected theorem add_pow_prime_eq (hp : p.Prime) (h : Commute x y) :
    (x + y) ^ p =
      x ^ p + y ^ p + p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p) 
Arguments: {R : Type u_1} [Semiring R] {p : ℕ} {x y : R} (hp : Nat.Prime p) (h : Commute x y)
Goal: (x + y) ^ p = x ^ p + y ^ p + ↑p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p)
-- Commute.exists_add_pow_prime_pow_eq
protected theorem exists_add_pow_prime_pow_eq (hp : p.Prime) (h : Commute x y) (n : ℕ) :
    ∃ r, (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + p * r 
Arguments: {R : Type u_1} [Semiring R] {p : ℕ} {x y : R} (hp : Nat.Prime p) (h : Commute x y) (n : ℕ)
Goal: ∃ r, (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * r
-- Commute.exists_add_pow_prime_eq
protected theorem exists_add_pow_prime_eq (hp : p.Prime) (h : Commute x y) :
    ∃ r, (x + y) ^ p = x ^ p + y ^ p + p * r 
Arguments: {R : Type u_1} [Semiring R] {p : ℕ} {x y : R} (hp : Nat.Prime p) (h : Commute x y)
Goal: ∃ r, (x + y) ^ p = x ^ p + y ^ p + ↑p * r
-- add_pow_prime_pow_eq
theorem add_pow_prime_pow_eq (hp : p.Prime) (x y : R) (n : ℕ) :
    (x + y) ^ p ^ n =
      x ^ p ^ n + y ^ p ^ n +
        p * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p) 
Arguments: {R : Type u_1} [CommSemiring R] {p : ℕ} (hp : Nat.Prime p) (x y : R) (n : ℕ)
Goal: (x + y) ^ p ^ n =
  x ^ p ^ n + y ^ p ^ n + ↑p * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p)
-- add_pow_prime_eq
theorem add_pow_prime_eq (hp : p.Prime) (x y : R) :
    (x + y) ^ p =
      x ^ p + y ^ p + p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p) 
Arguments: {R : Type u_1} [CommSemiring R] {p : ℕ} (hp : Nat.Prime p) (x y : R)
Goal: (x + y) ^ p = x ^ p + y ^ p + ↑p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p)
-- exists_add_pow_prime_pow_eq
theorem exists_add_pow_prime_pow_eq (hp : p.Prime) (x y : R) (n : ℕ) :
    ∃ r, (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + p * r 
Arguments: {R : Type u_1} [CommSemiring R] {p : ℕ} (hp : Nat.Prime p) (x y : R) (n : ℕ)
Goal: ∃ r, (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * r
-- exists_add_pow_prime_eq
theorem exists_add_pow_prime_eq (hp : p.Prime) (x y : R) :
    ∃ r, (x + y) ^ p = x ^ p + y ^ p + p * r 
Arguments: {R : Type u_1} [CommSemiring R] {p : ℕ} (hp : Nat.Prime p) (x y : R)
Goal: ∃ r, (x + y) ^ p = x ^ p + y ^ p + ↑p * r
-- add_pow_char_of_commute
theorem add_pow_char_of_commute [Semiring R] {p : ℕ} [hp : Fact p.Prime] [CharP R p] (x y : R)
    (h : Commute x y) : (x + y) ^ p = x ^ p + y ^ p 
Arguments: (R : Type u_1) [Semiring R] {p : ℕ} [hp : Fact (Nat.Prime p)] [CharP R p] (x y : R) (h : Commute x y)
Goal: (x + y) ^ p = x ^ p + y ^ p
-- add_pow_char_pow_of_commute
theorem add_pow_char_pow_of_commute [Semiring R] {p n : ℕ} [hp : Fact p.Prime] [CharP R p]
    (x y : R) (h : Commute x y) : (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n 
Arguments: (R : Type u_1) [Semiring R] {p n : ℕ} [hp : Fact (Nat.Prime p)] [CharP R p] (x y : R) (h : Commute x y)
Goal: (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n
-- sub_pow_char_of_commute
theorem sub_pow_char_of_commute [Ring R] {p : ℕ} [Fact p.Prime] [CharP R p] (x y : R)
    (h : Commute x y) : (x - y) ^ p = x ^ p - y ^ p 
Arguments: (R : Type u_1) [Ring R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] (x y : R) (h : Commute x y)
Goal: (x - y) ^ p = x ^ p - y ^ p
-- sub_pow_char_pow_of_commute
theorem sub_pow_char_pow_of_commute [Ring R] {p : ℕ} [Fact p.Prime] [CharP R p] {n : ℕ} (x y : R)
    (h : Commute x y) : (x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n 
Arguments: (R : Type u_1) [Ring R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] {n : ℕ} (x y : R) (h : Commute x y)
Goal: (x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n
-- add_pow_char
theorem add_pow_char [CommSemiring R] {p : ℕ} [Fact p.Prime] [CharP R p] (x y : R) :
    (x + y) ^ p = x ^ p + y ^ p 
Arguments: (R : Type u_1) [CommSemiring R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] (x y : R)
Goal: (x + y) ^ p = x ^ p + y ^ p
-- add_pow_char_pow
theorem add_pow_char_pow [CommSemiring R] {p : ℕ} [Fact p.Prime] [CharP R p] {n : ℕ} (x y : R) :
    (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n 
Arguments: (R : Type u_1) [CommSemiring R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] {n : ℕ} (x y : R)
Goal: (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n
-- add_pow_eq_add_pow_mod_mul_pow_add_pow_div
theorem add_pow_eq_add_pow_mod_mul_pow_add_pow_div
    [CommSemiring R] {p : ℕ} [Fact p.Prime] [CharP R p] {n : ℕ} (x y : R) :
    (x + y) ^ n = (x + y) ^ (n % p) * (x ^ p + y ^ p) ^ (n / p) 
Arguments: (R : Type u_1) [CommSemiring R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] {n : ℕ} (x y : R)
Goal: (x + y) ^ n = (x + y) ^ (n % p) * (x ^ p + y ^ p) ^ (n / p)
-- sub_pow_char
theorem sub_pow_char [CommRing R] {p : ℕ} [Fact p.Prime] [CharP R p] (x y : R) :
    (x - y) ^ p = x ^ p - y ^ p 
Arguments: (R : Type u_1) [CommRing R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] (x y : R)
Goal: (x - y) ^ p = x ^ p - y ^ p
-- sub_pow_char_pow
theorem sub_pow_char_pow [CommRing R] {p : ℕ} [Fact p.Prime] [CharP R p] {n : ℕ} (x y : R) :
    (x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n 
Arguments: (R : Type u_1) [CommRing R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] {n : ℕ} (x y : R)
Goal: (x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n
-- sub_pow_eq_sub_pow_mod_mul_pow_sub_pow_div
theorem sub_pow_eq_sub_pow_mod_mul_pow_sub_pow_div
    [CommRing R] {p : ℕ} [Fact p.Prime] [CharP R p] {n : ℕ} (x y : R) :
    (x - y) ^ n = (x - y) ^ (n % p) * (x ^ p - y ^ p) ^ (n / p) 
Arguments: (R : Type u_1) [CommRing R] {p : ℕ} [Fact (Nat.Prime p)] [CharP R p] {n : ℕ} (x y : R)
Goal: (x - y) ^ n = (x - y) ^ (n % p) * (x ^ p - y ^ p) ^ (n / p)
-- CharP.neg_one_pow_char
theorem CharP.neg_one_pow_char [Ring R] (p : ℕ) [CharP R p] [Fact p.Prime] :
    (-1 : R) ^ p = -1 
Arguments: (R : Type u_1) [Ring R] (p : ℕ) [CharP R p] [Fact (Nat.Prime p)]
Goal: (-1) ^ p = -1
-- CharP.neg_one_pow_char_pow
theorem CharP.neg_one_pow_char_pow [Ring R] (p n : ℕ) [CharP R p] [Fact p.Prime] :
    (-1 : R) ^ p ^ n = -1 
Arguments: (R : Type u_1) [Ring R] (p n : ℕ) [CharP R p] [Fact (Nat.Prime p)]
Goal: (-1) ^ p ^ n = -1
-- CharP.char_ne_zero_of_finite
theorem char_ne_zero_of_finite (p : ℕ) [CharP R p] [Finite R] : p ≠ 0 
Arguments: (R : Type u_1) [NonAssocRing R] (p : ℕ) [CharP R p] [Finite R]
Goal: p ≠ 0
-- CharP.ringChar_ne_zero_of_finite
theorem ringChar_ne_zero_of_finite [Finite R] : ringChar R ≠ 0 
Arguments: (R : Type u_1) [NonAssocRing R] [Finite R]
Goal: ringChar R ≠ 0
-- CharP.char_is_prime
theorem char_is_prime (p : ℕ) [CharP R p] : p.Prime 
Arguments: (R : Type u_1) [Ring R] [NoZeroDivisors R] [Nontrivial R] [Finite R] (p : ℕ) [CharP R p]
Goal: Nat.Prime p
-- not_ringChar_dvd_of_invertible
theorem not_ringChar_dvd_of_invertible {t : ℕ} [Invertible (t : K)] : ¬ringChar K ∣ t 
Arguments: {K : Type u_1} [Field K] {t : ℕ} [Invertible ↑t]
Goal: ¬ringChar K ∣ t
-- Finset.prod_range
@[to_additive]
theorem prod_range [CommMonoid β] {n : ℕ} (f : ℕ → β) :
    ∏ i ∈ Finset.range n, f i = ∏ i : Fin n, f i 
Arguments: {β : Type u_2} [CommMonoid β] {n : ℕ} (f : ℕ → β)
Goal: ∏ i ∈ Finset.range n, f i = ∏ i : Fin n, f ↑i
-- Finset.sum_range
@[to_additive]
theorem prod_range [CommMonoid β] {n : ℕ} (f : ℕ → β) :
    ∏ i ∈ Finset.range n, f i = ∏ i : Fin n, f i 
Arguments: {β : Type u_2} [AddCommMonoid β] {n : ℕ} (f : ℕ → β)
Goal: ∑ i ∈ Finset.range n, f i = ∑ i : Fin n, f ↑i
-- Fin.prod_ofFn
@[to_additive]
theorem prod_ofFn [CommMonoid β] {n : ℕ} (f : Fin n → β) : (List.ofFn f).prod = ∏ i, f i 
Arguments: {β : Type u_2} [CommMonoid β] {n : ℕ} (f : Fin n → β)
Goal: (List.ofFn f).prod = ∏ i : Fin n, f i
-- Fin.sum_ofFn
@[to_additive]
theorem prod_ofFn [CommMonoid β] {n : ℕ} (f : Fin n → β) : (List.ofFn f).prod = ∏ i, f i 
Arguments: {β : Type u_2} [AddCommMonoid β] {n : ℕ} (f : Fin n → β)
Goal: (List.ofFn f).sum = ∑ i : Fin n, f i
-- Fin.sum_univ_def
@[to_additive]
theorem prod_univ_def [CommMonoid β] {n : ℕ} (f : Fin n → β) :
    ∏ i, f i = ((List.finRange n).map f).prod 
Arguments: {β : Type u_2} [AddCommMonoid β] {n : ℕ} (f : Fin n → β)
Goal: ∑ i : Fin n, f i = (List.map f (List.finRange n)).sum
-- Fin.prod_univ_def
@[to_additive]
theorem prod_univ_def [CommMonoid β] {n : ℕ} (f : Fin n → β) :
    ∏ i, f i = ((List.finRange n).map f).prod 
Arguments: {β : Type u_2} [CommMonoid β] {n : ℕ} (f : Fin n → β)
Goal: ∏ i : Fin n, f i = (List.map f (List.finRange n)).prod
-- Fin.prod_univ_zero
@[to_additive "A sum of a function `f : Fin 0 → β` is `0` because `Fin 0` is empty"]
theorem prod_univ_zero [CommMonoid β] (f : Fin 0 → β) : ∏ i, f i = 1 
Arguments: {β : Type u_2} [CommMonoid β] (f : Fin 0 → β)
Goal: ∏ i : Fin 0, f i = 1
-- Fin.sum_univ_zero
@[to_additive "A sum of a function `f : Fin 0 → β` is `0` because `Fin 0` is empty"]
theorem prod_univ_zero [CommMonoid β] (f : Fin 0 → β) : ∏ i, f i = 1 
Arguments: {β : Type u_2} [AddCommMonoid β] (f : Fin 0 → β)
Goal: ∑ i : Fin 0, f i = 0
-- Fin.prod_univ_succAbove
@[to_additive "A sum of a function `f : Fin (n + 1) → β` over all `Fin (n + 1)` is the sum of
`f x`, for some `x : Fin (n + 1)` plus the remaining product"]
theorem prod_univ_succAbove [CommMonoid β] {n : ℕ} (f : Fin (n + 1) → β) (x : Fin (n + 1)) :
    ∏ i, f i = f x * ∏ i : Fin n, f (x.succAbove i) 
Arguments: {β : Type u_2} [CommMonoid β] {n : ℕ} (f : Fin (n + 1) → β) (x : Fin (n + 1))
Goal: ∏ i : Fin (n + 1), f i = f x * ∏ i : Fin n, f (x.succAbove i)
-- Fin.sum_univ_succAbove
@[to_additive "A sum of a function `f : Fin (n + 1) → β` over all `Fin (n + 1)` is the sum of
`f x`, for some `x : Fin (n + 1)` plus the remaining product"]
theorem prod_univ_succAbove [CommMonoid β] {n : ℕ} (f : Fin (n + 1) → β) (x : Fin (n + 1)) :
    ∏ i, f i = f x * ∏ i : Fin n, f (x.succAbove i) 
Arguments: {β : Type u_2} [AddCommMonoid β] {n : ℕ} (f : Fin (n + 1) → β) (x : Fin (n + 1))
Goal: ∑ i : Fin (n + 1), f i = f x + ∑ i : Fin n, f (x.succAbove i)