ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree
theorem prodPrimeFactors_add_of_squarefree [CommSemiring R] {f g : ArithmeticFunction R}
    (hf : IsMultiplicative f) (hg : IsMultiplicative g) {n : ℕ} (hn : Squarefree n) :
    ∏ᵖ p ∣ n, (f + g) p = (f * g) n 
Arguments: {R : Type u_1} [CommSemiring R] {f g : ArithmeticFunction R} (hf : f.IsMultiplicative) (hg : g.IsMultiplicative) {n : ℕ} (hn : Squarefree n)
Goal: (ArithmeticFunction.prodPrimeFactors fun p => (f + g) p) n = (f * g) n
-- ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply
theorem lcm_apply_mul_gcd_apply [CommMonoidWithZero R] {f : ArithmeticFunction R}
    (hf : f.IsMultiplicative) {x y : ℕ} :
    f (x.lcm y) * f (x.gcd y) = f x * f y 
Arguments: {R : Type u_1} [CommMonoidWithZero R] {f : ArithmeticFunction R} (hf : f.IsMultiplicative) {x y : ℕ}
Goal: f (x.lcm y) * f (x.gcd y) = f x * f y
-- ArithmeticFunction.id_apply
@[simp]
theorem id_apply {x : ℕ} : id x = x 
Arguments: {x : ℕ}
Goal: ArithmeticFunction.id x = x
-- ArithmeticFunction.pow_apply
@[simp]
theorem pow_apply {k n : ℕ} : pow k n = if k = 0 ∧ n = 0 then 0 else n ^ k 
Arguments: {k n : ℕ}
Goal: (ArithmeticFunction.pow k) n = if k = 0 ∧ n = 0 then 0 else n ^ k
-- ArithmeticFunction.pow_zero_eq_zeta
theorem pow_zero_eq_zeta : pow 0 = ζ 
Goal: ArithmeticFunction.pow 0 = ArithmeticFunction.zeta
-- ArithmeticFunction.sigma_apply
theorem sigma_apply {k n : ℕ} : σ k n = ∑ d ∈ divisors n, d ^ k 
Arguments: {k n : ℕ}
Goal: (ArithmeticFunction.sigma k) n = ∑ d ∈ n.divisors, d ^ k
-- ArithmeticFunction.sigma_apply_prime_pow
theorem sigma_apply_prime_pow {k p i : ℕ} (hp : p.Prime) :
    σ k (p ^ i) = ∑ j in .range (i + 1), p ^ (j * k) 
Arguments: {k p i : ℕ} (hp : Nat.Prime p)
Goal: (ArithmeticFunction.sigma k) (p ^ i) = ∑ j ∈ Finset.range (i + 1), p ^ (j * k)
-- ArithmeticFunction.sigma_one_apply
theorem sigma_one_apply (n : ℕ) : σ 1 n = ∑ d ∈ divisors n, d 
Arguments: (n : ℕ)
Goal: (ArithmeticFunction.sigma 1) n = ∑ d ∈ n.divisors, d
-- ArithmeticFunction.sigma_one_apply_prime_pow
theorem sigma_one_apply_prime_pow {p i : ℕ} (hp : p.Prime) :
    σ 1 (p ^ i) = ∑ k in .range (i + 1), p ^ k 
Arguments: {p i : ℕ} (hp : Nat.Prime p)
Goal: (ArithmeticFunction.sigma 1) (p ^ i) = ∑ k ∈ Finset.range (i + 1), p ^ k
-- ArithmeticFunction.sigma_zero_apply
theorem sigma_zero_apply (n : ℕ) : σ 0 n = (divisors n).card 
Arguments: (n : ℕ)
Goal: (ArithmeticFunction.sigma 0) n = n.divisors.card
-- ArithmeticFunction.sigma_zero_apply_prime_pow
theorem sigma_zero_apply_prime_pow {p i : ℕ} (hp : p.Prime) : σ 0 (p ^ i) = i + 1 
Arguments: {p i : ℕ} (hp : Nat.Prime p)
Goal: (ArithmeticFunction.sigma 0) (p ^ i) = i + 1
-- ArithmeticFunction.zeta_mul_pow_eq_sigma
theorem zeta_mul_pow_eq_sigma {k : ℕ} : ζ * pow k = σ k 
Arguments: {k : ℕ}
Goal: ArithmeticFunction.zeta * ArithmeticFunction.pow k = ArithmeticFunction.sigma k
-- ArithmeticFunction.isMultiplicative_one
@[arith_mult]
theorem isMultiplicative_one [MonoidWithZero R] : IsMultiplicative (1 : ArithmeticFunction R) 
Arguments: {R : Type u_1} [MonoidWithZero R]
Goal: ArithmeticFunction.IsMultiplicative 1
-- ArithmeticFunction.isMultiplicative_zeta
@[arith_mult]
theorem isMultiplicative_zeta : IsMultiplicative ζ 
Goal: ArithmeticFunction.zeta.IsMultiplicative
-- ArithmeticFunction.isMultiplicative_id
@[arith_mult]
theorem isMultiplicative_id : IsMultiplicative ArithmeticFunction.id 
Goal: ArithmeticFunction.id.IsMultiplicative
-- ArithmeticFunction.IsMultiplicative.ppow
@[arith_mult]
theorem IsMultiplicative.ppow [CommSemiring R] {f : ArithmeticFunction R} (hf : f.IsMultiplicative)
    {k : ℕ} : IsMultiplicative (f.ppow k) 
Arguments: {R : Type u_1} [CommSemiring R] {f : ArithmeticFunction R} (hf : f.IsMultiplicative) {k : ℕ}
Goal: (f.ppow k).IsMultiplicative
-- ArithmeticFunction.isMultiplicative_pow
@[arith_mult]
theorem isMultiplicative_pow {k : ℕ} : IsMultiplicative (pow k) 
Arguments: {k : ℕ}
Goal: (ArithmeticFunction.pow k).IsMultiplicative
-- ArithmeticFunction.isMultiplicative_sigma
@[arith_mult]
theorem isMultiplicative_sigma {k : ℕ} : IsMultiplicative (σ k) 
Arguments: {k : ℕ}
Goal: (ArithmeticFunction.sigma k).IsMultiplicative
-- ArithmeticFunction.cardFactors_apply
theorem cardFactors_apply {n : ℕ} : Ω n = n.primeFactorsList.length 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.cardFactors n = n.primeFactorsList.length
-- ArithmeticFunction.cardFactors_zero
lemma cardFactors_zero : Ω 0 = 0 
Goal: ArithmeticFunction.cardFactors 0 = 0
-- ArithmeticFunction.cardFactors_one
@[simp] theorem cardFactors_one : Ω 1 = 0 
Goal: ArithmeticFunction.cardFactors 1 = 0
-- ArithmeticFunction.cardFactors_eq_one_iff_prime
@[simp]
theorem cardFactors_eq_one_iff_prime {n : ℕ} : Ω n = 1 ↔ n.Prime 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.cardFactors n = 1 ↔ Nat.Prime n
-- ArithmeticFunction.cardFactors_mul
theorem cardFactors_mul {m n : ℕ} (m0 : m ≠ 0) (n0 : n ≠ 0) : Ω (m * n) = Ω m + Ω n 
Arguments: {m n : ℕ} (m0 : m ≠ 0) (n0 : n ≠ 0)
Goal: ArithmeticFunction.cardFactors (m * n) = ArithmeticFunction.cardFactors m + ArithmeticFunction.cardFactors n
-- ArithmeticFunction.cardFactors_multiset_prod
theorem cardFactors_multiset_prod {s : Multiset ℕ} (h0 : s.prod ≠ 0) :
    Ω s.prod = (Multiset.map Ω s).sum 
Arguments: {s : Multiset ℕ} (h0 : s.prod ≠ 0)
Goal: ArithmeticFunction.cardFactors s.prod = (Multiset.map (⇑ArithmeticFunction.cardFactors) s).sum
-- ArithmeticFunction.cardFactors_apply_prime
@[simp]
theorem cardFactors_apply_prime {p : ℕ} (hp : p.Prime) : Ω p = 1 
Arguments: {p : ℕ} (hp : Nat.Prime p)
Goal: ArithmeticFunction.cardFactors p = 1
-- ArithmeticFunction.cardFactors_apply_prime_pow
@[simp]
theorem cardFactors_apply_prime_pow {p k : ℕ} (hp : p.Prime) : Ω (p ^ k) = k 
Arguments: {p k : ℕ} (hp : Nat.Prime p)
Goal: ArithmeticFunction.cardFactors (p ^ k) = k
-- ArithmeticFunction.cardDistinctFactors_zero
theorem cardDistinctFactors_zero : ω 0 = 0 
Goal: ArithmeticFunction.cardDistinctFactors 0 = 0
-- ArithmeticFunction.cardDistinctFactors_one
@[simp]
theorem cardDistinctFactors_one : ω 1 = 0 
Goal: ArithmeticFunction.cardDistinctFactors 1 = 0
-- ArithmeticFunction.cardDistinctFactors_apply
theorem cardDistinctFactors_apply {n : ℕ} : ω n = n.primeFactorsList.dedup.length 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.cardDistinctFactors n = n.primeFactorsList.dedup.length
-- ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree
theorem cardDistinctFactors_eq_cardFactors_iff_squarefree {n : ℕ} (h0 : n ≠ 0) :
    ω n = Ω n ↔ Squarefree n 
Arguments: {n : ℕ} (h0 : n ≠ 0)
Goal: ArithmeticFunction.cardDistinctFactors n = ArithmeticFunction.cardFactors n ↔ Squarefree n
-- ArithmeticFunction.cardDistinctFactors_apply_prime_pow
@[simp]
theorem cardDistinctFactors_apply_prime_pow {p k : ℕ} (hp : p.Prime) (hk : k ≠ 0) :
    ω (p ^ k) = 1 
Arguments: {p k : ℕ} (hp : Nat.Prime p) (hk : k ≠ 0)
Goal: ArithmeticFunction.cardDistinctFactors (p ^ k) = 1
-- ArithmeticFunction.cardDistinctFactors_apply_prime
@[simp]
theorem cardDistinctFactors_apply_prime {p : ℕ} (hp : p.Prime) : ω p = 1 
Arguments: {p : ℕ} (hp : Nat.Prime p)
Goal: ArithmeticFunction.cardDistinctFactors p = 1
-- ArithmeticFunction.moebius_apply_of_squarefree
@[simp]
theorem moebius_apply_of_squarefree {n : ℕ} (h : Squarefree n) : μ n = (-1) ^ cardFactors n 
Arguments: {n : ℕ} (h : Squarefree n)
Goal: ArithmeticFunction.moebius n = (-1) ^ ArithmeticFunction.cardFactors n
-- ArithmeticFunction.moebius_eq_zero_of_not_squarefree
@[simp]
theorem moebius_eq_zero_of_not_squarefree {n : ℕ} (h : ¬Squarefree n) : μ n = 0 
Arguments: {n : ℕ} (h : ¬Squarefree n)
Goal: ArithmeticFunction.moebius n = 0
-- ArithmeticFunction.moebius_apply_one
theorem moebius_apply_one : μ 1 = 1 
Goal: ArithmeticFunction.moebius 1 = 1
-- ArithmeticFunction.moebius_ne_zero_iff_squarefree
theorem moebius_ne_zero_iff_squarefree {n : ℕ} : μ n ≠ 0 ↔ Squarefree n 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.moebius n ≠ 0 ↔ Squarefree n
-- ArithmeticFunction.moebius_eq_or
theorem moebius_eq_or (n : ℕ) : μ n = 0 ∨ μ n = 1 ∨ μ n = -1 
Arguments: (n : ℕ)
Goal: ArithmeticFunction.moebius n = 0 ∨ ArithmeticFunction.moebius n = 1 ∨ ArithmeticFunction.moebius n = -1
-- ArithmeticFunction.moebius_ne_zero_iff_eq_or
theorem moebius_ne_zero_iff_eq_or {n : ℕ} : μ n ≠ 0 ↔ μ n = 1 ∨ μ n = -1 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.moebius n ≠ 0 ↔ ArithmeticFunction.moebius n = 1 ∨ ArithmeticFunction.moebius n = -1
-- ArithmeticFunction.moebius_sq_eq_one_of_squarefree
theorem moebius_sq_eq_one_of_squarefree {l : ℕ} (hl : Squarefree l) : μ l ^ 2 = 1 
Arguments: {l : ℕ} (hl : Squarefree l)
Goal: ArithmeticFunction.moebius l ^ 2 = 1
-- ArithmeticFunction.abs_moebius_eq_one_of_squarefree
theorem abs_moebius_eq_one_of_squarefree {l : ℕ} (hl : Squarefree l) : |μ l| = 1 
Arguments: {l : ℕ} (hl : Squarefree l)
Goal: |ArithmeticFunction.moebius l| = 1
-- ArithmeticFunction.moebius_sq
theorem moebius_sq {n : ℕ} :
    μ n ^ 2 = if Squarefree n then 1 else 0 
Arguments: {n : ℕ}
Goal: ArithmeticFunction.moebius n ^ 2 = if Squarefree n then 1 else 0
-- ArithmeticFunction.abs_moebius
theorem abs_moebius {n : ℕ} :
    |μ n| = if Squarefree n then 1 else 0 
Arguments: {n : ℕ}
Goal: |ArithmeticFunction.moebius n| = if Squarefree n then 1 else 0
-- ArithmeticFunction.abs_moebius_le_one
theorem abs_moebius_le_one {n : ℕ} : |μ n| ≤ 1 
Arguments: {n : ℕ}
Goal: |ArithmeticFunction.moebius n| ≤ 1
-- ArithmeticFunction.moebius_apply_prime
theorem moebius_apply_prime {p : ℕ} (hp : p.Prime) : μ p = -1 
Arguments: {p : ℕ} (hp : Nat.Prime p)
Goal: ArithmeticFunction.moebius p = -1
-- ArithmeticFunction.moebius_apply_prime_pow
theorem moebius_apply_prime_pow {p k : ℕ} (hp : p.Prime) (hk : k ≠ 0) :
    μ (p ^ k) = if k = 1 then -1 else 0 
Arguments: {p k : ℕ} (hp : Nat.Prime p) (hk : k ≠ 0)
Goal: ArithmeticFunction.moebius (p ^ k) = if k = 1 then -1 else 0
-- ArithmeticFunction.moebius_apply_isPrimePow_not_prime
theorem moebius_apply_isPrimePow_not_prime {n : ℕ} (hn : IsPrimePow n) (hn' : ¬n.Prime) :
    μ n = 0 
Arguments: {n : ℕ} (hn : IsPrimePow n) (hn' : ¬Nat.Prime n)
Goal: ArithmeticFunction.moebius n = 0
-- ArithmeticFunction.isMultiplicative_moebius
@[arith_mult]
theorem isMultiplicative_moebius : IsMultiplicative μ 
Goal: ArithmeticFunction.moebius.IsMultiplicative
-- ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree
theorem IsMultiplicative.prodPrimeFactors_one_add_of_squarefree [CommSemiring R]
    {f : ArithmeticFunction R} (h_mult : f.IsMultiplicative) {n : ℕ} (hn : Squarefree n) :
    ∏ p ∈ n.primeFactors, (1 + f p) = ∑ d ∈ n.divisors, f d 
Arguments: {R : Type u_1} [CommSemiring R] {f : ArithmeticFunction R} (h_mult : f.IsMultiplicative) {n : ℕ} (hn : Squarefree n)
Goal: ∏ p ∈ n.primeFactors, (1 + f p) = ∑ d ∈ n.divisors, f d
-- ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree
theorem IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree [CommRing R]
    (f : ArithmeticFunction R) (hf : f.IsMultiplicative) {n : ℕ} (hn : Squarefree n) :
    ∏ p ∈ n.primeFactors, (1 - f p) = ∑ d ∈ n.divisors, μ d * f d 
Arguments: {R : Type u_1} [CommRing R] (f : ArithmeticFunction R) (hf : f.IsMultiplicative) {n : ℕ} (hn : Squarefree n)
Goal: ∏ p ∈ n.primeFactors, (1 - f p) = ∑ d ∈ n.divisors, ↑(ArithmeticFunction.moebius d) * f d
-- ArithmeticFunction.moebius_mul_coe_zeta
@[simp]
theorem moebius_mul_coe_zeta : (μ * ζ : ArithmeticFunction ℤ) = 1 
Goal: ArithmeticFunction.moebius * ↑ArithmeticFunction.zeta = 1
-- ArithmeticFunction.coe_zeta_mul_moebius
@[simp]
theorem coe_zeta_mul_moebius : (ζ * μ : ArithmeticFunction ℤ) = 1 
Goal: ↑ArithmeticFunction.zeta * ArithmeticFunction.moebius = 1
-- ArithmeticFunction.coe_moebius_mul_coe_zeta
@[simp]
theorem coe_moebius_mul_coe_zeta [Ring R] : (μ * ζ : ArithmeticFunction R) = 1 
Arguments: {R : Type u_1} [Ring R]
Goal: ↑ArithmeticFunction.moebius * ↑ArithmeticFunction.zeta = 1
-- ArithmeticFunction.coe_zeta_mul_coe_moebius
@[simp]
theorem coe_zeta_mul_coe_moebius [Ring R] : (ζ * μ : ArithmeticFunction R) = 1 
Arguments: {R : Type u_1} [Ring R]
Goal: ↑ArithmeticFunction.zeta * ↑ArithmeticFunction.moebius = 1
-- ArithmeticFunction.coe_zetaUnit
@[simp]
theorem coe_zetaUnit : ((zetaUnit : (ArithmeticFunction R)ˣ) : ArithmeticFunction R) = ζ 
Arguments: {R : Type u_1} [CommRing R]
Goal: ↑ArithmeticFunction.zetaUnit = ↑ArithmeticFunction.zeta
-- ArithmeticFunction.inv_zetaUnit
@[simp]
theorem inv_zetaUnit : ((zetaUnit⁻¹ : (ArithmeticFunction R)ˣ) : ArithmeticFunction R) = μ 
Arguments: {R : Type u_1} [CommRing R]
Goal: ↑ArithmeticFunction.zetaUnit⁻¹ = ↑ArithmeticFunction.moebius
-- ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq
theorem sum_eq_iff_sum_smul_moebius_eq [AddCommGroup R] {f g : ℕ → R} :
    (∀ n > 0, ∑ i ∈ n.divisors, f i = g n) ↔
      ∀ n > 0, ∑ x ∈ n.divisorsAntidiagonal, μ x.fst • g x.snd = f n 
Arguments: {R : Type u_1} [AddCommGroup R] {f g : ℕ → R}
Goal: (∀ n > 0, ∑ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, ∑ x ∈ n.divisorsAntidiagonal, ArithmeticFunction.moebius x.1 • g x.2 = f n
-- ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq
theorem sum_eq_iff_sum_mul_moebius_eq [Ring R] {f g : ℕ → R} :
    (∀ n > 0, ∑ i ∈ n.divisors, f i = g n) ↔
      ∀ n > 0, ∑ x ∈ n.divisorsAntidiagonal, (μ x.fst : R) * g x.snd = f n 
Arguments: {R : Type u_1} [Ring R] {f g : ℕ → R}
Goal: (∀ n > 0, ∑ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, ∑ x ∈ n.divisorsAntidiagonal, ↑(ArithmeticFunction.moebius x.1) * g x.2 = f n
-- ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq
theorem prod_eq_iff_prod_pow_moebius_eq [CommGroup R] {f g : ℕ → R} :
    (∀ n > 0, ∏ i ∈ n.divisors, f i = g n) ↔
      ∀ n > 0, ∏ x ∈ n.divisorsAntidiagonal, g x.snd ^ μ x.fst = f n 
Arguments: {R : Type u_1} [CommGroup R] {f g : ℕ → R}
Goal: (∀ n > 0, ∏ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, ∏ x ∈ n.divisorsAntidiagonal, g x.2 ^ ArithmeticFunction.moebius x.1 = f n
-- ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero
theorem prod_eq_iff_prod_pow_moebius_eq_of_nonzero [CommGroupWithZero R] {f g : ℕ → R}
    (hf : ∀ n : ℕ, 0 < n → f n ≠ 0) (hg : ∀ n : ℕ, 0 < n → g n ≠ 0) :
    (∀ n > 0, ∏ i ∈ n.divisors, f i = g n) ↔
      ∀ n > 0, ∏ x ∈ n.divisorsAntidiagonal, g x.snd ^ μ x.fst = f n 
Arguments: {R : Type u_1} [CommGroupWithZero R] {f g : ℕ → R} (hf : ∀ (n : ℕ), 0 < n → f n ≠ 0) (hg : ∀ (n : ℕ), 0 < n → g n ≠ 0)
Goal: (∀ n > 0, ∏ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, ∏ x ∈ n.divisorsAntidiagonal, g x.2 ^ ArithmeticFunction.moebius x.1 = f n
-- ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on
theorem sum_eq_iff_sum_smul_moebius_eq_on [AddCommGroup R] {f g : ℕ → R}
    (s : Set ℕ) (hs : ∀ m n, m ∣ n → n ∈ s → m ∈ s) :
    (∀ n > 0, n ∈ s → (∑ i ∈ n.divisors, f i) = g n) ↔
      ∀ n > 0, n ∈ s → (∑ x ∈ n.divisorsAntidiagonal, μ x.fst • g x.snd) = f n 
Arguments: {R : Type u_1} [AddCommGroup R] {f g : ℕ → R} (s : Set ℕ) (hs : ∀ (m n : ℕ), m ∣ n → n ∈ s → m ∈ s)
Goal: (∀ n > 0, n ∈ s → ∑ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, n ∈ s → ∑ x ∈ n.divisorsAntidiagonal, ArithmeticFunction.moebius x.1 • g x.2 = f n
-- ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on'
theorem sum_eq_iff_sum_smul_moebius_eq_on' [AddCommGroup R] {f g : ℕ → R}
    (s : Set ℕ) (hs : ∀ m n, m ∣ n → n ∈ s → m ∈ s) (hs₀ : 0 ∉ s) :
    (∀ n ∈ s, (∑ i ∈ n.divisors, f i) = g n) ↔
     ∀ n ∈ s, (∑ x ∈ n.divisorsAntidiagonal, μ x.fst • g x.snd) = f n 
Arguments: {R : Type u_1} [AddCommGroup R] {f g : ℕ → R} (s : Set ℕ) (hs : ∀ (m n : ℕ), m ∣ n → n ∈ s → m ∈ s) (hs₀ : 0 ∉ s)
Goal: (∀ n ∈ s, ∑ i ∈ n.divisors, f i = g n) ↔
  ∀ n ∈ s, ∑ x ∈ n.divisorsAntidiagonal, ArithmeticFunction.moebius x.1 • g x.2 = f n
-- ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on
theorem sum_eq_iff_sum_mul_moebius_eq_on [Ring R] {f g : ℕ → R}
    (s : Set ℕ) (hs : ∀ m n, m ∣ n → n ∈ s → m ∈ s) :
    (∀ n > 0, n ∈ s → (∑ i ∈ n.divisors, f i) = g n) ↔
      ∀ n > 0, n ∈ s →
        (∑ x ∈ n.divisorsAntidiagonal, (μ x.fst : R) * g x.snd) = f n 
Arguments: {R : Type u_1} [Ring R] {f g : ℕ → R} (s : Set ℕ) (hs : ∀ (m n : ℕ), m ∣ n → n ∈ s → m ∈ s)
Goal: (∀ n > 0, n ∈ s → ∑ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, n ∈ s → ∑ x ∈ n.divisorsAntidiagonal, ↑(ArithmeticFunction.moebius x.1) * g x.2 = f n
-- ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on
theorem prod_eq_iff_prod_pow_moebius_eq_on [CommGroup R] {f g : ℕ → R}
    (s : Set ℕ) (hs : ∀ m n, m ∣ n → n ∈ s → m ∈ s) :
    (∀ n > 0, n ∈ s → (∏ i ∈ n.divisors, f i) = g n) ↔
      ∀ n > 0, n ∈ s → (∏ x ∈ n.divisorsAntidiagonal, g x.snd ^ μ x.fst) = f n 
Arguments: {R : Type u_1} [CommGroup R] {f g : ℕ → R} (s : Set ℕ) (hs : ∀ (m n : ℕ), m ∣ n → n ∈ s → m ∈ s)
Goal: (∀ n > 0, n ∈ s → ∏ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, n ∈ s → ∏ x ∈ n.divisorsAntidiagonal, g x.2 ^ ArithmeticFunction.moebius x.1 = f n
-- ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero
theorem prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero [CommGroupWithZero R]
    (s : Set ℕ) (hs : ∀ m n, m ∣ n → n ∈ s → m ∈ s) {f g : ℕ → R}
    (hf : ∀ n > 0, f n ≠ 0) (hg : ∀ n > 0, g n ≠ 0) :
    (∀ n > 0, n ∈ s → (∏ i ∈ n.divisors, f i) = g n) ↔
      ∀ n > 0, n ∈ s → (∏ x ∈ n.divisorsAntidiagonal, g x.snd ^ μ x.fst) = f n 
Arguments: {R : Type u_1} [CommGroupWithZero R] (s : Set ℕ) (hs : ∀ (m n : ℕ), m ∣ n → n ∈ s → m ∈ s) {f g : ℕ → R} (hf : ∀ n > 0, f n ≠ 0) (hg : ∀ n > 0, g n ≠ 0)
Goal: (∀ n > 0, n ∈ s → ∏ i ∈ n.divisors, f i = g n) ↔
  ∀ n > 0, n ∈ s → ∏ x ∈ n.divisorsAntidiagonal, g x.2 ^ ArithmeticFunction.moebius x.1 = f n
-- Nat.card_divisors
theorem _root_.Nat.card_divisors {n : ℕ} (hn : n ≠ 0) :
    n.divisors.card = n.primeFactors.prod (n.factorization · + 1) 
Arguments: {n : ℕ} (hn : n ≠ 0)
Goal: n.divisors.card = ∏ x ∈ n.primeFactors, (n.factorization x + 1)
-- ArithmeticFunction.card_divisors
@[deprecated (since := "2024-06-09")] theorem card_divisors (n : ℕ) (hn : n ≠ 0) :
    n.divisors.card = n.primeFactors.prod (n.factorization · + 1) 
Arguments: (n : ℕ) (hn : n ≠ 0)
Goal: n.divisors.card = ∏ x ∈ n.primeFactors, (n.factorization x + 1)
-- Nat.sum_divisors
theorem _root_.Nat.sum_divisors {n : ℕ} (hn : n ≠ 0) :
    ∑ d ∈ n.divisors, d = ∏ p ∈ n.primeFactors, ∑ k ∈ .range (n.factorization p + 1), p ^ k 
Arguments: {n : ℕ} (hn : n ≠ 0)
Goal: ∑ d ∈ n.divisors, d = ∏ p ∈ n.primeFactors, ∑ k ∈ Finset.range (n.factorization p + 1), p ^ k
-- Nat.Coprime.card_divisors_mul
theorem card_divisors_mul {m n : ℕ} (hmn : m.Coprime n) :
    (m * n).divisors.card = m.divisors.card * n.divisors.card 
Arguments: {m n : ℕ} (hmn : m.Coprime n)
Goal: (m * n).divisors.card = m.divisors.card * n.divisors.card
-- Nat.Coprime.sum_divisors_mul
theorem sum_divisors_mul {m n : ℕ} (hmn : m.Coprime n) :
    ∑ d ∈ (m * n).divisors, d = (∑ d ∈ m.divisors, d) * ∑ d ∈ n.divisors, d 
Arguments: {m n : ℕ} (hmn : m.Coprime n)
Goal: ∑ d ∈ (m * n).divisors, d = (∑ d ∈ m.divisors, d) * ∑ d ∈ n.divisors, d
-- Representation.trivial_def
theorem trivial_def (g : G) (v : V) : trivial k (V := V) g v = v 
Arguments: (k : Type u_1) {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (g : G) (v : V)
Goal: ((Representation.trivial k) g) v = v
-- Representation.IsTrivial.out
class IsTrivial (ρ : Representation k G V) : Prop where
  out : ∀ g x, ρ g x = x := by aesop
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] {ρ : Representation k G V} [self : ρ.IsTrivial] (g : G) (x : V)
Goal: (ρ g) x = x
-- Representation.apply_eq_self
@[simp] theorem apply_eq_self
    (ρ : Representation k G V) (g : G) (x : V) [h : IsTrivial ρ] :
    ρ g x = x 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G) (x : V) [h : ρ.IsTrivial]
Goal: (ρ g) x = x
-- Representation.asAlgebraHom_def
theorem asAlgebraHom_def : asAlgebraHom ρ = (lift k G _) ρ 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V)
Goal: ρ.asAlgebraHom = (MonoidAlgebra.lift k G (V →ₗ[k] V)) ρ
-- Representation.asAlgebraHom_single
@[simp]
theorem asAlgebraHom_single (g : G) (r : k) : asAlgebraHom ρ (Finsupp.single g r) = r • ρ g 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G) (r : k)
Goal: ρ.asAlgebraHom (Finsupp.single g r) = r • ρ g
-- Representation.asAlgebraHom_single_one
theorem asAlgebraHom_single_one (g : G) : asAlgebraHom ρ (Finsupp.single g 1) = ρ g 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G)
Goal: ρ.asAlgebraHom (Finsupp.single g 1) = ρ g
-- Representation.asAlgebraHom_of
theorem asAlgebraHom_of (g : G) : asAlgebraHom ρ (of k G g) = ρ g 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G)
Goal: ρ.asAlgebraHom ((MonoidAlgebra.of k G) g) = ρ g
-- Representation.asModuleEquiv_map_smul
@[simp]
theorem asModuleEquiv_map_smul (r : MonoidAlgebra k G) (x : ρ.asModule) :
    ρ.asModuleEquiv (r • x) = ρ.asAlgebraHom r (ρ.asModuleEquiv x) 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (r : MonoidAlgebra k G) (x : ρ.asModule)
Goal: ρ.asModuleEquiv (r • x) = (ρ.asAlgebraHom r) (ρ.asModuleEquiv x)
-- Representation.asModuleEquiv_symm_map_smul
@[simp]
theorem asModuleEquiv_symm_map_smul (r : k) (x : V) :
    ρ.asModuleEquiv.symm (r • x) = algebraMap k (MonoidAlgebra k G) r • ρ.asModuleEquiv.symm x 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (r : k) (x : V)
Goal: ρ.asModuleEquiv.symm (r • x) = (algebraMap k (MonoidAlgebra k G)) r • ρ.asModuleEquiv.symm x
-- Representation.asModuleEquiv_symm_map_rho
@[simp]
theorem asModuleEquiv_symm_map_rho (g : G) (x : V) :
    ρ.asModuleEquiv.symm (ρ g x) = MonoidAlgebra.of k G g • ρ.asModuleEquiv.symm x 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G) (x : V)
Goal: ρ.asModuleEquiv.symm ((ρ g) x) = (MonoidAlgebra.of k G) g • ρ.asModuleEquiv.symm x
-- Representation.ofModule_asAlgebraHom_apply_apply
@[simp]
theorem ofModule_asAlgebraHom_apply_apply (r : MonoidAlgebra k G)
    (m : RestrictScalars k (MonoidAlgebra k G) M) :
    ((ofModule M).asAlgebraHom r) m =
      (RestrictScalars.addEquiv _ _ _).symm (r • RestrictScalars.addEquiv _ _ _ m) 
Arguments: {k : Type u_1} {G : Type u_2} [CommSemiring k] [Monoid G] (M : Type u_4) [AddCommMonoid M] [Module (MonoidAlgebra k G) M] (r : MonoidAlgebra k G) (m : RestrictScalars k (MonoidAlgebra k G) M)
Goal: ((Representation.ofModule M).asAlgebraHom r) m =
  (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (r • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
-- Representation.ofModule_asModule_act
@[simp]
theorem ofModule_asModule_act (g : G) (x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule) :
    ofModule (k := k) (G := G) ρ.asModule g x = -- Porting note: more help with implicit
      (RestrictScalars.addEquiv _ _ _).symm
        (ρ.asModuleEquiv.symm (ρ g (ρ.asModuleEquiv (RestrictScalars.addEquiv _ _ _ x)))) 
Arguments: {k : Type u_1} {G : Type u_2} {V : Type u_3} [CommSemiring k] [Monoid G] [AddCommMonoid V] [Module k V] (ρ : Representation k G V) (g : G) (x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule)
Goal: ((Representation.ofModule ρ.asModule) g) x =
  (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
    (ρ.asModuleEquiv.symm ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x))))