ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Finset.prod_Ioc_succ_top
@[to_additive]
theorem prod_Ioc_succ_top {a b : ℕ} (hab : a ≤ b) (f : ℕ → M) :
    (∏ k ∈ Ioc a (b + 1), f k) = (∏ k ∈ Ioc a b, f k) * f (b + 1) 
Arguments: {M : Type u_2} [CommMonoid M] {a b : ℕ} (hab : a ≤ b) (f : ℕ → M)
Goal: ∏ k ∈ Finset.Ioc a (b + 1), f k = (∏ k ∈ Finset.Ioc a b, f k) * f (b + 1)
-- Finset.prod_Icc_succ_top
@[to_additive]
theorem prod_Icc_succ_top {a b : ℕ} (hab : a ≤ b + 1) (f : ℕ → M) :
    (∏ k in Icc a (b + 1), f k) = (∏ k in Icc a b, f k) * f (b + 1) 
Arguments: {M : Type u_2} [CommMonoid M] {a b : ℕ} (hab : a ≤ b + 1) (f : ℕ → M)
Goal: ∏ k ∈ Finset.Icc a (b + 1), f k = (∏ k ∈ Finset.Icc a b, f k) * f (b + 1)
-- Finset.sum_Icc_succ_top
@[to_additive]
theorem prod_Icc_succ_top {a b : ℕ} (hab : a ≤ b + 1) (f : ℕ → M) :
    (∏ k in Icc a (b + 1), f k) = (∏ k in Icc a b, f k) * f (b + 1) 
Arguments: {M : Type u_2} [AddCommMonoid M] {a b : ℕ} (hab : a ≤ b + 1) (f : ℕ → M)
Goal: ∑ k ∈ Finset.Icc a (b + 1), f k = ∑ k ∈ Finset.Icc a b, f k + f (b + 1)
-- Finset.sum_range_add_sum_Ico
@[to_additive]
theorem prod_range_mul_prod_Ico (f : ℕ → M) {m n : ℕ} (h : m ≤ n) :
    ((∏ k ∈ range m, f k) * ∏ k ∈ Ico m n, f k) = ∏ k ∈ range n, f k 
Arguments: {M : Type u_2} [AddCommMonoid M] (f : ℕ → M) {m n : ℕ} (h : m ≤ n)
Goal: ∑ k ∈ Finset.range m, f k + ∑ k ∈ Finset.Ico m n, f k = ∑ k ∈ Finset.range n, f k
-- Finset.prod_range_mul_prod_Ico
@[to_additive]
theorem prod_range_mul_prod_Ico (f : ℕ → M) {m n : ℕ} (h : m ≤ n) :
    ((∏ k ∈ range m, f k) * ∏ k ∈ Ico m n, f k) = ∏ k ∈ range n, f k 
Arguments: {M : Type u_2} [CommMonoid M] (f : ℕ → M) {m n : ℕ} (h : m ≤ n)
Goal: (∏ k ∈ Finset.range m, f k) * ∏ k ∈ Finset.Ico m n, f k = ∏ k ∈ Finset.range n, f k
-- Finset.sum_Ico_eq_add_neg
@[to_additive]
theorem prod_Ico_eq_mul_inv {δ : Type*} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n) :
    ∏ k ∈ Ico m n, f k = (∏ k ∈ range n, f k) * (∏ k ∈ range m, f k)⁻¹ 
Arguments: {δ : Type u_3} [AddCommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n)
Goal: ∑ k ∈ Finset.Ico m n, f k = ∑ k ∈ Finset.range n, f k + -∑ k ∈ Finset.range m, f k
-- Finset.prod_Ico_eq_mul_inv
@[to_additive]
theorem prod_Ico_eq_mul_inv {δ : Type*} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n) :
    ∏ k ∈ Ico m n, f k = (∏ k ∈ range n, f k) * (∏ k ∈ range m, f k)⁻¹ 
Arguments: {δ : Type u_3} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n)
Goal: ∏ k ∈ Finset.Ico m n, f k = (∏ k ∈ Finset.range n, f k) * (∏ k ∈ Finset.range m, f k)⁻¹
-- Finset.prod_Ico_eq_div
@[to_additive]
theorem prod_Ico_eq_div {δ : Type*} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n) :
    ∏ k ∈ Ico m n, f k = (∏ k ∈ range n, f k) / ∏ k ∈ range m, f k 
Arguments: {δ : Type u_3} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n)
Goal: ∏ k ∈ Finset.Ico m n, f k = (∏ k ∈ Finset.range n, f k) / ∏ k ∈ Finset.range m, f k
-- Finset.sum_Ico_eq_sub
@[to_additive]
theorem prod_Ico_eq_div {δ : Type*} [CommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n) :
    ∏ k ∈ Ico m n, f k = (∏ k ∈ range n, f k) / ∏ k ∈ range m, f k 
Arguments: {δ : Type u_3} [AddCommGroup δ] (f : ℕ → δ) {m n : ℕ} (h : m ≤ n)
Goal: ∑ k ∈ Finset.Ico m n, f k = ∑ k ∈ Finset.range n, f k - ∑ k ∈ Finset.range m, f k
-- Finset.sum_range_sub_sum_range
@[to_additive]
theorem prod_range_div_prod_range {α : Type*} [CommGroup α] {f : ℕ → α} {n m : ℕ} (hnm : n ≤ m) :
    ((∏ k ∈ range m, f k) / ∏ k ∈ range n, f k) =
    ∏ k ∈ (range m).filter fun k => n ≤ k, f k 
Arguments: {α : Type u_3} [AddCommGroup α] {f : ℕ → α} {n m : ℕ} (hnm : n ≤ m)
Goal: ∑ k ∈ Finset.range m, f k - ∑ k ∈ Finset.range n, f k = ∑ k ∈ Finset.filter (fun k => n ≤ k) (Finset.range m), f k
-- Finset.prod_range_div_prod_range
@[to_additive]
theorem prod_range_div_prod_range {α : Type*} [CommGroup α] {f : ℕ → α} {n m : ℕ} (hnm : n ≤ m) :
    ((∏ k ∈ range m, f k) / ∏ k ∈ range n, f k) =
    ∏ k ∈ (range m).filter fun k => n ≤ k, f k 
Arguments: {α : Type u_3} [CommGroup α] {f : ℕ → α} {n m : ℕ} (hnm : n ≤ m)
Goal: (∏ k ∈ Finset.range m, f k) / ∏ k ∈ Finset.range n, f k = ∏ k ∈ Finset.filter (fun k => n ≤ k) (Finset.range m), f k
-- Finset.sum_Ico_Ico_comm
theorem sum_Ico_Ico_comm {M : Type*} [AddCommMonoid M] (a b : ℕ) (f : ℕ → ℕ → M) :
    (∑ i ∈ Finset.Ico a b, ∑ j ∈ Finset.Ico i b, f i j) =
      ∑ j ∈ Finset.Ico a b, ∑ i ∈ Finset.Ico a (j + 1), f i j 
Arguments: {M : Type u_3} [AddCommMonoid M] (a b : ℕ) (f : ℕ → ℕ → M)
Goal: ∑ i ∈ Finset.Ico a b, ∑ j ∈ Finset.Ico i b, f i j = ∑ j ∈ Finset.Ico a b, ∑ i ∈ Finset.Ico a (j + 1), f i j
-- Finset.sum_Ico_Ico_comm'
theorem sum_Ico_Ico_comm' {M : Type*} [AddCommMonoid M] (a b : ℕ) (f : ℕ → ℕ → M) :
    (∑ i ∈ Finset.Ico a b, ∑ j ∈ Finset.Ico (i + 1) b, f i j) =
      ∑ j ∈ Finset.Ico a b, ∑ i ∈ Finset.Ico a j, f i j 
Arguments: {M : Type u_3} [AddCommMonoid M] (a b : ℕ) (f : ℕ → ℕ → M)
Goal: ∑ i ∈ Finset.Ico a b, ∑ j ∈ Finset.Ico (i + 1) b, f i j = ∑ j ∈ Finset.Ico a b, ∑ i ∈ Finset.Ico a j, f i j
-- Finset.sum_Ico_eq_sum_range
@[to_additive]
theorem prod_Ico_eq_prod_range (f : ℕ → M) (m n : ℕ) :
    ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k) 
Arguments: {M : Type u_2} [AddCommMonoid M] (f : ℕ → M) (m n : ℕ)
Goal: ∑ k ∈ Finset.Ico m n, f k = ∑ k ∈ Finset.range (n - m), f (m + k)
-- Finset.prod_Ico_eq_prod_range
@[to_additive]
theorem prod_Ico_eq_prod_range (f : ℕ → M) (m n : ℕ) :
    ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k) 
Arguments: {M : Type u_2} [CommMonoid M] (f : ℕ → M) (m n : ℕ)
Goal: ∏ k ∈ Finset.Ico m n, f k = ∏ k ∈ Finset.range (n - m), f (m + k)
-- Finset.prod_Ico_reflect
theorem prod_Ico_reflect (f : ℕ → M) (k : ℕ) {m n : ℕ} (h : m ≤ n + 1) :
    (∏ j ∈ Ico k m, f (n - j)) = ∏ j ∈ Ico (n + 1 - m) (n + 1 - k), f j 
Arguments: {M : Type u_2} [CommMonoid M] (f : ℕ → M) (k : ℕ) {m n : ℕ} (h : m ≤ n + 1)
Goal: ∏ j ∈ Finset.Ico k m, f (n - j) = ∏ j ∈ Finset.Ico (n + 1 - m) (n + 1 - k), f j
-- Finset.sum_Ico_reflect
theorem sum_Ico_reflect {δ : Type*} [AddCommMonoid δ] (f : ℕ → δ) (k : ℕ) {m n : ℕ}
    (h : m ≤ n + 1) : (∑ j ∈ Ico k m, f (n - j)) = ∑ j ∈ Ico (n + 1 - m) (n + 1 - k), f j 
Arguments: {δ : Type u_3} [AddCommMonoid δ] (f : ℕ → δ) (k : ℕ) {m n : ℕ} (h : m ≤ n + 1)
Goal: ∑ j ∈ Finset.Ico k m, f (n - j) = ∑ j ∈ Finset.Ico (n + 1 - m) (n + 1 - k), f j
-- Finset.prod_range_reflect
theorem prod_range_reflect (f : ℕ → M) (n : ℕ) :
    (∏ j ∈ range n, f (n - 1 - j)) = ∏ j ∈ range n, f j 
Arguments: {M : Type u_2} [CommMonoid M] (f : ℕ → M) (n : ℕ)
Goal: ∏ j ∈ Finset.range n, f (n - 1 - j) = ∏ j ∈ Finset.range n, f j
-- Finset.sum_range_reflect
theorem sum_range_reflect {δ : Type*} [AddCommMonoid δ] (f : ℕ → δ) (n : ℕ) :
    (∑ j ∈ range n, f (n - 1 - j)) = ∑ j ∈ range n, f j 
Arguments: {δ : Type u_3} [AddCommMonoid δ] (f : ℕ → δ) (n : ℕ)
Goal: ∑ j ∈ Finset.range n, f (n - 1 - j) = ∑ j ∈ Finset.range n, f j
-- Finset.prod_Ico_id_eq_factorial
@[simp]
theorem prod_Ico_id_eq_factorial : ∀ n : ℕ, (∏ x ∈ Ico 1 (n + 1), x) = n !
  
Arguments: (n : ℕ)
Goal: ∏ x ∈ Finset.Ico 1 (n + 1), x = n !
-- Finset.prod_range_add_one_eq_factorial
@[simp]
theorem prod_range_add_one_eq_factorial : ∀ n : ℕ, (∏ x ∈ range n, (x + 1)) = n !
  
Arguments: (n : ℕ)
Goal: ∏ x ∈ Finset.range n, (x + 1) = n !
-- Finset.sum_range_id_mul_two
theorem sum_range_id_mul_two (n : ℕ) : (∑ i ∈ range n, i) * 2 = n * (n - 1) 
Arguments: (n : ℕ)
Goal: (∑ i ∈ Finset.range n, i) * 2 = n * (n - 1)
-- Finset.sum_range_id
theorem sum_range_id (n : ℕ) : ∑ i ∈ range n, i = n * (n - 1) / 2 
Arguments: (n : ℕ)
Goal: ∑ i ∈ Finset.range n, i = n * (n - 1) / 2
-- Finset.prod_range_diag_flip
@[to_additive]
lemma prod_range_diag_flip (n : ℕ) (f : ℕ → ℕ → M) :
    (∏ m ∈ range n, ∏ k ∈ range (m + 1), f k (m - k)) =
      ∏ m ∈ range n, ∏ k ∈ range (n - m), f m k 
Arguments: {M : Type u_2} [CommMonoid M] (n : ℕ) (f : ℕ → ℕ → M)
Goal: ∏ m ∈ Finset.range n, ∏ k ∈ Finset.range (m + 1), f k (m - k) = ∏ m ∈ Finset.range n, ∏ k ∈ Finset.range (n - m), f m k
-- Finset.sum_range_diag_flip
@[to_additive]
lemma prod_range_diag_flip (n : ℕ) (f : ℕ → ℕ → M) :
    (∏ m ∈ range n, ∏ k ∈ range (m + 1), f k (m - k)) =
      ∏ m ∈ range n, ∏ k ∈ range (n - m), f m k 
Arguments: {M : Type u_2} [AddCommMonoid M] (n : ℕ) (f : ℕ → ℕ → M)
Goal: ∑ m ∈ Finset.range n, ∑ k ∈ Finset.range (m + 1), f k (m - k) = ∑ m ∈ Finset.range n, ∑ k ∈ Finset.range (n - m), f m k
-- Finset.prod_range_succ_div_prod
@[to_additive]
theorem prod_range_succ_div_prod : ((∏ i ∈ range (n + 1), f i) / ∏ i ∈ range n, f i) = f n 
Arguments: {M : Type u_3} (f : ℕ → M) {n : ℕ} [CommGroup M]
Goal: (∏ i ∈ Finset.range (n + 1), f i) / ∏ i ∈ Finset.range n, f i = f n
-- Finset.sum_range_succ_sub_sum
@[to_additive]
theorem prod_range_succ_div_prod : ((∏ i ∈ range (n + 1), f i) / ∏ i ∈ range n, f i) = f n 
Arguments: {M : Type u_3} (f : ℕ → M) {n : ℕ} [AddCommGroup M]
Goal: ∑ i ∈ Finset.range (n + 1), f i - ∑ i ∈ Finset.range n, f i = f n
-- Finset.sum_range_succ_sub_top
@[to_additive]
theorem prod_range_succ_div_top : (∏ i ∈ range (n + 1), f i) / f n = ∏ i ∈ range n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {n : ℕ} [AddCommGroup M]
Goal: ∑ i ∈ Finset.range (n + 1), f i - f n = ∑ i ∈ Finset.range n, f i
-- Finset.prod_range_succ_div_top
@[to_additive]
theorem prod_range_succ_div_top : (∏ i ∈ range (n + 1), f i) / f n = ∏ i ∈ range n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {n : ℕ} [CommGroup M]
Goal: (∏ i ∈ Finset.range (n + 1), f i) / f n = ∏ i ∈ Finset.range n, f i
-- Finset.sum_Ico_sub_bot
@[to_additive]
theorem prod_Ico_div_bot (hmn : m < n) : (∏ i ∈ Ico m n, f i) / f m = ∏ i ∈ Ico (m + 1) n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {m n : ℕ} [AddCommGroup M] (hmn : m < n)
Goal: ∑ i ∈ Finset.Ico m n, f i - f m = ∑ i ∈ Finset.Ico (m + 1) n, f i
-- Finset.prod_Ico_div_bot
@[to_additive]
theorem prod_Ico_div_bot (hmn : m < n) : (∏ i ∈ Ico m n, f i) / f m = ∏ i ∈ Ico (m + 1) n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {m n : ℕ} [CommGroup M] (hmn : m < n)
Goal: (∏ i ∈ Finset.Ico m n, f i) / f m = ∏ i ∈ Finset.Ico (m + 1) n, f i
-- Finset.prod_Ico_succ_div_top
@[to_additive]
theorem prod_Ico_succ_div_top (hmn : m ≤ n) :
    (∏ i ∈ Ico m (n + 1), f i) / f n = ∏ i ∈ Ico m n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {m n : ℕ} [CommGroup M] (hmn : m ≤ n)
Goal: (∏ i ∈ Finset.Ico m (n + 1), f i) / f n = ∏ i ∈ Finset.Ico m n, f i
-- Finset.sum_Ico_succ_sub_top
@[to_additive]
theorem prod_Ico_succ_div_top (hmn : m ≤ n) :
    (∏ i ∈ Ico m (n + 1), f i) / f n = ∏ i ∈ Ico m n, f i 
Arguments: {M : Type u_3} (f : ℕ → M) {m n : ℕ} [AddCommGroup M] (hmn : m ≤ n)
Goal: ∑ i ∈ Finset.Ico m (n + 1), f i - f n = ∑ i ∈ Finset.Ico m n, f i
-- ExpChar.eq
theorem ExpChar.eq {p q : ℕ} (hp : ExpChar R p) (hq : ExpChar R q) : p = q 
Arguments: {R : Type u} [Semiring R] {p q : ℕ} (hp : ExpChar R p) (hq : ExpChar R q)
Goal: p = q
-- ExpChar.congr
theorem ExpChar.congr {p : ℕ} (q : ℕ) [hq : ExpChar R q] (h : q = p) : ExpChar R p 
Arguments: (R : Type u) [Semiring R] {p : ℕ} (q : ℕ) [hq : ExpChar R q] (h : q = p)
Goal: ExpChar R p
-- ringExpChar.eq
theorem ringExpChar.eq (q : ℕ) [h : ExpChar R q] : ringExpChar R = q 
Arguments: (R : Type u) [Semiring R] (q : ℕ) [h : ExpChar R q]
Goal: ringExpChar R = q
-- ringExpChar.eq_one
@[simp]
theorem ringExpChar.eq_one (R : Type*) [NonAssocSemiring R] [CharZero R] : ringExpChar R = 1 
Arguments: (R : Type u_1) [NonAssocSemiring R] [CharZero R]
Goal: ringExpChar R = 1
-- expChar_one_of_char_zero
theorem expChar_one_of_char_zero (q : ℕ) [hp : CharP R 0] [hq : ExpChar R q] : q = 1 
Arguments: (R : Type u) [Semiring R] (q : ℕ) [hp : CharP R 0] [hq : ExpChar R q]
Goal: q = 1
-- char_eq_expChar_iff
theorem char_eq_expChar_iff (p q : ℕ) [hp : CharP R p] [hq : ExpChar R q] : p = q ↔ p.Prime 
Arguments: (R : Type u) [Semiring R] (p q : ℕ) [hp : CharP R p] [hq : ExpChar R q]
Goal: p = q ↔ Nat.Prime p
-- char_zero_of_expChar_one
theorem char_zero_of_expChar_one (p : ℕ) [hp : CharP R p] [hq : ExpChar R 1] : p = 0 
Arguments: (R : Type u) [Semiring R] [Nontrivial R] (p : ℕ) [hp : CharP R p] [hq : ExpChar R 1]
Goal: p = 0
-- charZero_of_expChar_one'
theorem charZero_of_expChar_one' [hq : ExpChar R 1] : CharZero R 
Arguments: (R : Type u) [Semiring R] [Nontrivial R] [hq : ExpChar R 1]
Goal: CharZero R
-- expChar_one_iff_char_zero
theorem expChar_one_iff_char_zero (p q : ℕ) [CharP R p] [ExpChar R q] : q = 1 ↔ p = 0 
Arguments: (R : Type u) [Semiring R] [Nontrivial R] (p q : ℕ) [CharP R p] [ExpChar R q]
Goal: q = 1 ↔ p = 0
-- char_prime_of_ne_zero
theorem char_prime_of_ne_zero {p : ℕ} [hp : CharP R p] (p_ne_zero : p ≠ 0) : Nat.Prime p 
Arguments: (R : Type u) [Semiring R] [Nontrivial R] [NoZeroDivisors R] {p : ℕ} [hp : CharP R p] (p_ne_zero : p ≠ 0)
Goal: Nat.Prime p
-- expChar_is_prime_or_one
theorem expChar_is_prime_or_one (q : ℕ) [hq : ExpChar R q] : Nat.Prime q ∨ q = 1 
Arguments: (R : Type u) [Semiring R] (q : ℕ) [hq : ExpChar R q]
Goal: Nat.Prime q ∨ q = 1
-- expChar_pos
theorem expChar_pos (q : ℕ) [ExpChar R q] : 0 < q 
Arguments: (R : Type u) [Semiring R] (q : ℕ) [ExpChar R q]
Goal: 0 < q
-- expChar_pow_pos
theorem expChar_pow_pos (q : ℕ) [ExpChar R q] (n : ℕ) : 0 < q ^ n 
Arguments: (R : Type u) [Semiring R] (q : ℕ) [ExpChar R q] (n : ℕ)
Goal: 0 < q ^ n
-- ExpChar.exists
theorem ExpChar.exists [Ring R] [IsDomain R] : ∃ q, ExpChar R q 
Arguments: (R : Type u) [Ring R] [IsDomain R]
Goal: ∃ q, ExpChar R q
-- ExpChar.exists_unique
theorem ExpChar.exists_unique [Ring R] [IsDomain R] : ∃! q, ExpChar R q 
Arguments: (R : Type u) [Ring R] [IsDomain R]
Goal: ∃! q, ExpChar R q
-- ringExpChar.of_eq
theorem ringExpChar.of_eq [Ring R] [IsDomain R] {q : ℕ} (h : ringExpChar R = q) : ExpChar R q 
Arguments: {R : Type u} [Ring R] [IsDomain R] {q : ℕ} (h : ringExpChar R = q)
Goal: ExpChar R q
-- ringExpChar.eq_iff
theorem ringExpChar.eq_iff [Ring R] [IsDomain R] {q : ℕ} : ringExpChar R = q ↔ ExpChar R q 
Arguments: {R : Type u} [Ring R] [IsDomain R] {q : ℕ}
Goal: ringExpChar R = q ↔ ExpChar R q
-- expChar_of_injective_ringHom
theorem expChar_of_injective_ringHom {R A : Type*}
    [Semiring R] [Semiring A] {f : R →+* A} (h : Function.Injective f)
    (q : ℕ) [hR : ExpChar R q] : ExpChar A q 
Arguments: {R : Type u_1} {A : Type u_2} [Semiring R] [Semiring A] {f : R →+* A} (h : Function.Injective ⇑f) (q : ℕ) [hR : ExpChar R q]
Goal: ExpChar A q
-- RingHom.expChar
theorem RingHom.expChar {R A : Type*} [Semiring R] [Semiring A] (f : R →+* A)
    (H : Function.Injective f) (p : ℕ) [ExpChar A p] : ExpChar R p 
Arguments: {R : Type u_1} {A : Type u_2} [Semiring R] [Semiring A] (f : R →+* A) (H : Function.Injective ⇑f) (p : ℕ) [ExpChar A p]
Goal: ExpChar R p
-- RingHom.expChar_iff
theorem RingHom.expChar_iff {R A : Type*} [Semiring R] [Semiring A] (f : R →+* A)
    (H : Function.Injective f) (p : ℕ) : ExpChar R p ↔ ExpChar A p 
Arguments: {R : Type u_1} {A : Type u_2} [Semiring R] [Semiring A] (f : R →+* A) (H : Function.Injective ⇑f) (p : ℕ)
Goal: ExpChar R p ↔ ExpChar A p
-- expChar_of_injective_algebraMap
theorem expChar_of_injective_algebraMap {R A : Type*}
    [CommSemiring R] [Semiring A] [Algebra R A] (h : Function.Injective (algebraMap R A))
    (q : ℕ) [ExpChar R q] : ExpChar A q 
Arguments: {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (h : Function.Injective ⇑(algebraMap R A)) (q : ℕ) [ExpChar R q]
Goal: ExpChar A q
-- add_pow_expChar_of_commute
theorem add_pow_expChar_of_commute [Semiring R] {q : ℕ} [hR : ExpChar R q]
    (x y : R) (h : Commute x y) : (x + y) ^ q = x ^ q + y ^ q 
Arguments: (R : Type u) [Semiring R] {q : ℕ} [hR : ExpChar R q] (x y : R) (h : Commute x y)
Goal: (x + y) ^ q = x ^ q + y ^ q
-- add_pow_expChar_pow_of_commute
theorem add_pow_expChar_pow_of_commute [Semiring R] {q : ℕ} [hR : ExpChar R q]
    {n : ℕ} (x y : R) (h : Commute x y) : (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n 
Arguments: (R : Type u) [Semiring R] {q : ℕ} [hR : ExpChar R q] {n : ℕ} (x y : R) (h : Commute x y)
Goal: (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n
-- sub_pow_expChar_of_commute
theorem sub_pow_expChar_of_commute [Ring R] {q : ℕ} [hR : ExpChar R q]
    (x y : R) (h : Commute x y) : (x - y) ^ q = x ^ q - y ^ q 
Arguments: (R : Type u) [Ring R] {q : ℕ} [hR : ExpChar R q] (x y : R) (h : Commute x y)
Goal: (x - y) ^ q = x ^ q - y ^ q
-- sub_pow_expChar_pow_of_commute
theorem sub_pow_expChar_pow_of_commute [Ring R] {q : ℕ} [hR : ExpChar R q]
    {n : ℕ} (x y : R) (h : Commute x y) : (x - y) ^ q ^ n = x ^ q ^ n - y ^ q ^ n 
Arguments: (R : Type u) [Ring R] {q : ℕ} [hR : ExpChar R q] {n : ℕ} (x y : R) (h : Commute x y)
Goal: (x - y) ^ q ^ n = x ^ q ^ n - y ^ q ^ n
-- add_pow_expChar
theorem add_pow_expChar [CommSemiring R] {q : ℕ} [hR : ExpChar R q]
    (x y : R) : (x + y) ^ q = x ^ q + y ^ q 
Arguments: (R : Type u) [CommSemiring R] {q : ℕ} [hR : ExpChar R q] (x y : R)
Goal: (x + y) ^ q = x ^ q + y ^ q
-- add_pow_expChar_pow
theorem add_pow_expChar_pow [CommSemiring R] {q : ℕ} [hR : ExpChar R q]
    {n : ℕ} (x y : R) : (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n 
Arguments: (R : Type u) [CommSemiring R] {q : ℕ} [hR : ExpChar R q] {n : ℕ} (x y : R)
Goal: (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n
-- sub_pow_expChar
theorem sub_pow_expChar [CommRing R] {q : ℕ} [hR : ExpChar R q]
    (x y : R) : (x - y) ^ q = x ^ q - y ^ q 
Arguments: (R : Type u) [CommRing R] {q : ℕ} [hR : ExpChar R q] (x y : R)
Goal: (x - y) ^ q = x ^ q - y ^ q
-- sub_pow_expChar_pow
theorem sub_pow_expChar_pow [CommRing R] {q : ℕ} [hR : ExpChar R q]
    {n : ℕ} (x y : R) : (x - y) ^ q ^ n = x ^ q ^ n - y ^ q ^ n 
Arguments: (R : Type u) [CommRing R] {q : ℕ} [hR : ExpChar R q] {n : ℕ} (x y : R)
Goal: (x - y) ^ q ^ n = x ^ q ^ n - y ^ q ^ n
-- ExpChar.neg_one_pow_expChar
theorem ExpChar.neg_one_pow_expChar [Ring R] (q : ℕ) [hR : ExpChar R q] :
    (-1 : R) ^ q = -1 
Arguments: (R : Type u) [Ring R] (q : ℕ) [hR : ExpChar R q]
Goal: (-1) ^ q = -1
-- ExpChar.neg_one_pow_expChar_pow
theorem ExpChar.neg_one_pow_expChar_pow [Ring R] (q n : ℕ) [hR : ExpChar R q] :
    (-1 : R) ^ q ^ n = -1 
Arguments: (R : Type u) [Ring R] (q n : ℕ) [hR : ExpChar R q]
Goal: (-1) ^ q ^ n = -1
-- frobenius_def
theorem frobenius_def : frobenius R p x = x ^ p 
Arguments: {R : Type u} [CommSemiring R] (p : ℕ) [ExpChar R p] (x : R)
Goal: (frobenius R p) x = x ^ p
-- iterateFrobenius_def
theorem iterateFrobenius_def : iterateFrobenius R p n x = x ^ p ^ n 
Arguments: {R : Type u} [CommSemiring R] (p n : ℕ) [ExpChar R p] (x : R)
Goal: (iterateFrobenius R p n) x = x ^ p ^ n
-- iterate_frobenius
theorem iterate_frobenius : (frobenius R p)^[n] x = x ^ p ^ n 
Arguments: {R : Type u} [CommSemiring R] (p n : ℕ) [ExpChar R p] (x : R)
Goal: (⇑(frobenius R p))^[n] x = x ^ p ^ n
-- coe_iterateFrobenius
theorem coe_iterateFrobenius : iterateFrobenius R p n = (frobenius R p)^[n] 
Arguments: (R : Type u) [CommSemiring R] (p n : ℕ) [ExpChar R p]
Goal: ⇑(iterateFrobenius R p n) = (⇑(frobenius R p))^[n]
-- iterateFrobenius_one_apply
theorem iterateFrobenius_one_apply : iterateFrobenius R p 1 x = x ^ p 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p] (x : R)
Goal: (iterateFrobenius R p 1) x = x ^ p
-- iterateFrobenius_one
@[simp]
theorem iterateFrobenius_one : iterateFrobenius R p 1 = frobenius R p 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p]
Goal: iterateFrobenius R p 1 = frobenius R p
-- iterateFrobenius_zero_apply
theorem iterateFrobenius_zero_apply : iterateFrobenius R p 0 x = x 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p] (x : R)
Goal: (iterateFrobenius R p 0) x = x
-- iterateFrobenius_zero
@[simp]
theorem iterateFrobenius_zero : iterateFrobenius R p 0 = RingHom.id R 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p]
Goal: iterateFrobenius R p 0 = RingHom.id R
-- iterateFrobenius_add_apply
theorem iterateFrobenius_add_apply :
    iterateFrobenius R p (m + n) x = iterateFrobenius R p m (iterateFrobenius R p n x) 
Arguments: (R : Type u) [CommSemiring R] (p m n : ℕ) [ExpChar R p] (x : R)
Goal: (iterateFrobenius R p (m + n)) x = (iterateFrobenius R p m) ((iterateFrobenius R p n) x)
-- iterateFrobenius_add
theorem iterateFrobenius_add :
    iterateFrobenius R p (m + n) = (iterateFrobenius R p m).comp (iterateFrobenius R p n) 
Arguments: (R : Type u) [CommSemiring R] (p m n : ℕ) [ExpChar R p]
Goal: iterateFrobenius R p (m + n) = (iterateFrobenius R p m).comp (iterateFrobenius R p n)
-- iterateFrobenius_mul_apply
theorem iterateFrobenius_mul_apply :
    iterateFrobenius R p (m * n) x = (iterateFrobenius R p m)^[n] x 
Arguments: (R : Type u) [CommSemiring R] (p m n : ℕ) [ExpChar R p] (x : R)
Goal: (iterateFrobenius R p (m * n)) x = (⇑(iterateFrobenius R p m))^[n] x
-- coe_iterateFrobenius_mul
theorem coe_iterateFrobenius_mul : iterateFrobenius R p (m * n) = (iterateFrobenius R p m)^[n] 
Arguments: (R : Type u) [CommSemiring R] (p m n : ℕ) [ExpChar R p]
Goal: ⇑(iterateFrobenius R p (m * n)) = (⇑(iterateFrobenius R p m))^[n]
-- frobenius_mul
theorem frobenius_mul : frobenius R p (x * y) = frobenius R p x * frobenius R p y 
Arguments: {R : Type u} [CommSemiring R] (p : ℕ) [ExpChar R p] (x y : R)
Goal: (frobenius R p) (x * y) = (frobenius R p) x * (frobenius R p) y
-- frobenius_one
theorem frobenius_one : frobenius R p 1 = 1 
Arguments: {R : Type u} [CommSemiring R] (p : ℕ) [ExpChar R p]
Goal: (frobenius R p) 1 = 1
-- MonoidHom.map_frobenius
theorem MonoidHom.map_frobenius : f (frobenius R p x) = frobenius S p (f x) 
Arguments: {R : Type u} [CommSemiring R] {S : Type u_1} [CommSemiring S] (f : R →* S) (p : ℕ) [ExpChar R p] [ExpChar S p] (x : R)
Goal: f ((frobenius R p) x) = (frobenius S p) (f x)
-- RingHom.map_frobenius
theorem RingHom.map_frobenius : g (frobenius R p x) = frobenius S p (g x) 
Arguments: {R : Type u} [CommSemiring R] {S : Type u_1} [CommSemiring S] (g : R →+* S) (p : ℕ) [ExpChar R p] [ExpChar S p] (x : R)
Goal: g ((frobenius R p) x) = (frobenius S p) (g x)
-- MonoidHom.map_iterate_frobenius
theorem MonoidHom.map_iterate_frobenius (n : ℕ) :
    f ((frobenius R p)^[n] x) = (frobenius S p)^[n] (f x) 
Arguments: {R : Type u} [CommSemiring R] {S : Type u_1} [CommSemiring S] (f : R →* S) (p : ℕ) [ExpChar R p] [ExpChar S p] (x : R) (n : ℕ)
Goal: f ((⇑(frobenius R p))^[n] x) = (⇑(frobenius S p))^[n] (f x)
-- RingHom.map_iterate_frobenius
theorem RingHom.map_iterate_frobenius (n : ℕ) :
    g ((frobenius R p)^[n] x) = (frobenius S p)^[n] (g x) 
Arguments: {R : Type u} [CommSemiring R] {S : Type u_1} [CommSemiring S] (g : R →+* S) (p : ℕ) [ExpChar R p] [ExpChar S p] (x : R) (n : ℕ)
Goal: g ((⇑(frobenius R p))^[n] x) = (⇑(frobenius S p))^[n] (g x)
-- MonoidHom.iterate_map_frobenius
theorem MonoidHom.iterate_map_frobenius (f : R →* R) (p : ℕ) [ExpChar R p] (n : ℕ) :
    f^[n] (frobenius R p x) = frobenius R p (f^[n] x) 
Arguments: {R : Type u} [CommSemiring R] (x : R) (f : R →* R) (p : ℕ) [ExpChar R p] (n : ℕ)
Goal: (⇑f)^[n] ((frobenius R p) x) = (frobenius R p) ((⇑f)^[n] x)
-- RingHom.iterate_map_frobenius
theorem RingHom.iterate_map_frobenius (f : R →+* R) (p : ℕ) [ExpChar R p] (n : ℕ) :
    f^[n] (frobenius R p x) = frobenius R p (f^[n] x) 
Arguments: {R : Type u} [CommSemiring R] (x : R) (f : R →+* R) (p : ℕ) [ExpChar R p] (n : ℕ)
Goal: (⇑f)^[n] ((frobenius R p) x) = (frobenius R p) ((⇑f)^[n] x)
-- LinearMap.frobenius_def
theorem LinearMap.frobenius_def [Algebra R S] (x : S) : frobenius R S p x = x ^ p 
Arguments: (R : Type u) [CommSemiring R] (S : Type u_1) [CommSemiring S] (p : ℕ) [ExpChar R p] [ExpChar S p] [Algebra R S] (x : S)
Goal: (LinearMap.frobenius R S p) x = x ^ p
-- LinearMap.iterateFrobenius_def
theorem LinearMap.iterateFrobenius_def [Algebra R S] (n : ℕ) (x : S) :
    iterateFrobenius R S p n x = x ^ p ^ n 
Arguments: (R : Type u) [CommSemiring R] (S : Type u_1) [CommSemiring S] (p : ℕ) [ExpChar R p] [ExpChar S p] [Algebra R S] (n : ℕ) (x : S)
Goal: (LinearMap.iterateFrobenius R S p n) x = x ^ p ^ n
-- frobenius_zero
theorem frobenius_zero : frobenius R p 0 = 0 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p]
Goal: (frobenius R p) 0 = 0
-- frobenius_add
theorem frobenius_add : frobenius R p (x + y) = frobenius R p x + frobenius R p y 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p] (x y : R)
Goal: (frobenius R p) (x + y) = (frobenius R p) x + (frobenius R p) y
-- frobenius_natCast
theorem frobenius_natCast (n : ℕ) : frobenius R p n = n 
Arguments: (R : Type u) [CommSemiring R] (p : ℕ) [ExpChar R p] (n : ℕ)
Goal: (frobenius R p) ↑n = ↑n