ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ProbabilityTheory.strong_law_aux5
theorem strong_law_aux5 :
    ∀ᵐ ω, (fun n : ℕ => ∑ i ∈ range n, truncation (X i) i ω - ∑ i ∈ range n, X i ω) =o[atTop]
    fun n : ℕ => (n : ℝ) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] (X : ℕ → Ω → ℝ) (hint : MeasureTheory.Integrable (X 0) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ) (hnonneg : ∀ (i : ℕ) (ω : Ω), 0 ≤ X i ω)
Goal: ∀ᵐ (ω : Ω),
  (fun n =>
      ∑ i ∈ Finset.range n, ProbabilityTheory.truncation (X i) (↑i) ω - ∑ i ∈ Finset.range n, X i ω) =o[Filter.atTop]
    fun n => ↑n
-- ProbabilityTheory.strong_law_aux6
theorem strong_law_aux6 {c : ℝ} (c_one : 1 < c) :
    ∀ᵐ ω, Tendsto (fun n : ℕ => (∑ i ∈ range ⌊c ^ n⌋₊, X i ω) / ⌊c ^ n⌋₊) atTop (𝓝 𝔼[X 0]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] (X : ℕ → Ω → ℝ) (hint : MeasureTheory.Integrable (X 0) ℙ) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ) (hnonneg : ∀ (i : ℕ) (ω : Ω), 0 ≤ X i ω) {c : ℝ} (c_one : 1 < c)
Goal: ∀ᵐ (ω : Ω),
  Filter.Tendsto (fun n => (∑ i ∈ Finset.range ⌊c ^ n⌋₊, X i ω) / ↑⌊c ^ n⌋₊) Filter.atTop (𝓝 (∫ (a : Ω), X 0 a))
-- ProbabilityTheory.strong_law_aux7
theorem strong_law_aux7 :
    ∀ᵐ ω, Tendsto (fun n : ℕ => (∑ i ∈ range n, X i ω) / n) atTop (𝓝 𝔼[X 0]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] (X : ℕ → Ω → ℝ) (hint : MeasureTheory.Integrable (X 0) ℙ) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ) (hnonneg : ∀ (i : ℕ) (ω : Ω), 0 ≤ X i ω)
Goal: ∀ᵐ (ω : Ω), Filter.Tendsto (fun n => (∑ i ∈ Finset.range n, X i ω) / ↑n) Filter.atTop (𝓝 (∫ (a : Ω), X 0 a))
-- ProbabilityTheory.strong_law_ae_real
theorem strong_law_ae_real (X : ℕ → Ω → ℝ) (hint : Integrable (X 0))
    (hindep : Pairwise fun i j => IndepFun (X i) (X j)) (hident : ∀ i, IdentDistrib (X i) (X 0)) :
    ∀ᵐ ω, Tendsto (fun n : ℕ => (∑ i ∈ range n, X i ω) / n) atTop (𝓝 𝔼[X 0]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] (X : ℕ → Ω → ℝ) (hint : MeasureTheory.Integrable (X 0) ℙ) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ)
Goal: ∀ᵐ (ω : Ω), Filter.Tendsto (fun n => (∑ i ∈ Finset.range n, X i ω) / ↑n) Filter.atTop (𝓝 (∫ (a : Ω), X 0 a))
-- ProbabilityTheory.strong_law_ae_simpleFunc_comp
lemma strong_law_ae_simpleFunc_comp (X : ℕ → Ω → E) (h' : Measurable (X 0))
    (hindep : Pairwise (fun i j ↦ IndepFun (X i) (X j))) (hident : ∀ i, IdentDistrib (X i) (X 0))
    (φ : SimpleFunc E E) : ∀ᵐ ω,
      Tendsto (fun n : ℕ ↦ (n : ℝ) ⁻¹ • (∑ i ∈ range n, φ (X i ω))) atTop (𝓝 𝔼[φ ∘ (X 0)]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [MeasurableSpace E] (X : ℕ → Ω → E) (h' : Measurable (X 0)) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ) (φ : MeasureTheory.SimpleFunc E E)
Goal: ∀ᵐ (ω : Ω),
  Filter.Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) Filter.atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
-- ProbabilityTheory.strong_law_ae_of_measurable
lemma strong_law_ae_of_measurable
    (X : ℕ → Ω → E) (hint : Integrable (X 0)) (h' : StronglyMeasurable (X 0))
    (hindep : Pairwise (fun i j ↦ IndepFun (X i) (X j))) (hident : ∀ i, IdentDistrib (X i) (X 0)) :
    ∀ᵐ ω, Tendsto (fun n : ℕ ↦ (n : ℝ) ⁻¹ • (∑ i ∈ range n, X i ω)) atTop (𝓝 𝔼[X 0]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] (X : ℕ → Ω → E) (hint : MeasureTheory.Integrable (X 0) ℙ) (h' : MeasureTheory.StronglyMeasurable (X 0)) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ)
Goal: ∀ᵐ (ω : Ω), Filter.Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, X i ω) Filter.atTop (𝓝 (∫ (a : Ω), X 0 a))
-- ProbabilityTheory.strong_law_ae
theorem strong_law_ae
    (X : ℕ → Ω → E) (hint : Integrable (X 0))
    (hindep : Pairwise (fun i j ↦ IndepFun (X i) (X j))) (hident : ∀ i, IdentDistrib (X i) (X 0)) :
    ∀ᵐ ω, Tendsto (fun n : ℕ ↦ (n : ℝ) ⁻¹ • (∑ i ∈ range n, X i ω)) atTop (𝓝 𝔼[X 0]) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] (X : ℕ → Ω → E) (hint : MeasureTheory.Integrable (X 0) ℙ) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ)
Goal: ∀ᵐ (ω : Ω), Filter.Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, X i ω) Filter.atTop (𝓝 (∫ (a : Ω), X 0 a))
-- ProbabilityTheory.strong_law_Lp
theorem strong_law_Lp {p : ℝ≥0∞} (hp : 1 ≤ p) (hp' : p ≠ ∞) (X : ℕ → Ω → E) (hℒp : Memℒp (X 0) p)
    (hindep : Pairwise fun i j => IndepFun (X i) (X j)) (hident : ∀ i, IdentDistrib (X i) (X 0)) :
    Tendsto (fun (n : ℕ) => eLpNorm (fun ω => (n : ℝ) ⁻¹ • (∑ i ∈ range n, X i ω) - 𝔼[X 0]) p ℙ)
      atTop (𝓝 0) 
Arguments: {Ω : Type u_1} [MeasureTheory.MeasureSpace Ω] [MeasureTheory.IsProbabilityMeasure ℙ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] {p : ℝ≥0∞} (hp : 1 ≤ p) (hp' : p ≠ ⊤) (X : ℕ → Ω → E) (hℒp : MeasureTheory.Memℒp (X 0) p ℙ) (hindep : Pairwise fun i j => ProbabilityTheory.IndepFun (X i) (X j) ℙ) (hident : ∀ (i : ℕ), ProbabilityTheory.IdentDistrib (X i) (X 0) ℙ ℙ)
Goal: Filter.Tendsto (fun n => MeasureTheory.eLpNorm (fun ω => (↑n)⁻¹ • ∑ i ∈ Finset.range n, X i ω - ∫ (a : Ω), X 0 a) p ℙ)
  Filter.atTop (𝓝 0)
-- MvPowerSeries.mem_nonZeroDivisors_of_constantCoeff
theorem mem_nonZeroDivisors_of_constantCoeff {φ : MvPowerSeries σ R}
    (hφ : constantCoeff σ R φ ∈ nonZeroDivisors R) :
    φ ∈ nonZeroDivisors (MvPowerSeries σ R) 
Arguments: {σ : Type u_1} {R : Type u_2} [Semiring R] {φ : MvPowerSeries σ R} (hφ : (MvPowerSeries.constantCoeff σ R) φ ∈ nonZeroDivisors R)
Goal: φ ∈ nonZeroDivisors (MvPowerSeries σ R)
-- WittVector.shift_coeff
theorem shift_coeff (x : 𝕎 R) (n k : ℕ) : (x.shift n).coeff k = x.coeff (n + k) 
Arguments: {p : ℕ} {R : Type u_1} (x : WittVector p R) (n k : ℕ)
Goal: (x.shift n).coeff k = x.coeff (n + k)
-- WittVector.verschiebung_shift
theorem verschiebung_shift (x : 𝕎 R) (k : ℕ) (h : ∀ i < k + 1, x.coeff i = 0) :
    verschiebung (x.shift k.succ) = x.shift k 
Arguments: {p : ℕ} {R : Type u_1} [hp : Fact (Nat.Prime p)] [CommRing R] (x : WittVector p R) (k : ℕ) (h : ∀ i < k + 1, x.coeff i = 0)
Goal: WittVector.verschiebung (x.shift k.succ) = x.shift k
-- WittVector.eq_iterate_verschiebung
theorem eq_iterate_verschiebung {x : 𝕎 R} {n : ℕ} (h : ∀ i < n, x.coeff i = 0) :
    x = verschiebung^[n] (x.shift n) 
Arguments: {p : ℕ} {R : Type u_1} [hp : Fact (Nat.Prime p)] [CommRing R] {x : WittVector p R} {n : ℕ} (h : ∀ i < n, x.coeff i = 0)
Goal: x = (⇑WittVector.verschiebung)^[n] (x.shift n)
-- WittVector.verschiebung_nonzero
theorem verschiebung_nonzero {x : 𝕎 R} (hx : x ≠ 0) :
    ∃ n : ℕ, ∃ x' : 𝕎 R, x'.coeff 0 ≠ 0 ∧ x = verschiebung^[n] x' 
Arguments: {p : ℕ} {R : Type u_1} [hp : Fact (Nat.Prime p)] [CommRing R] {x : WittVector p R} (hx : x ≠ 0)
Goal: ∃ n x', x'.coeff 0 ≠ 0 ∧ x = (⇑WittVector.verschiebung)^[n] x'
-- WittVector.mulN_coeff
theorem mulN_coeff (n : ℕ) (x : 𝕎 R) (k : ℕ) :
    (x * n).coeff k = aeval x.coeff (wittMulN p n k) 
Arguments: {p : ℕ} {R : Type u_1} [hp : Fact (Nat.Prime p)] [CommRing R] (n : ℕ) (x : WittVector p R) (k : ℕ)
Goal: (x * ↑n).coeff k = (MvPolynomial.aeval x.coeff) (WittVector.wittMulN p n k)
-- WittVector.mulN_isPoly
@[is_poly]
theorem mulN_isPoly (n : ℕ) : IsPoly p fun R _Rcr x => x * n 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (n : ℕ)
Goal: WittVector.IsPoly p fun R _Rcr x => x * ↑n
-- WittVector.bind₁_wittMulN_wittPolynomial
@[simp]
theorem bind₁_wittMulN_wittPolynomial (n k : ℕ) :
    bind₁ (wittMulN p n) (wittPolynomial p ℤ k) = n * wittPolynomial p ℤ k 
Arguments: (p : ℕ) [hp : Fact (Nat.Prime p)] (n k : ℕ)
Goal: (MvPolynomial.bind₁ (WittVector.wittMulN p n)) (wittPolynomial p ℤ k) = ↑n * wittPolynomial p ℤ k
-- Polynomial.cyclotomic'_zero
@[simp]
theorem cyclotomic'_zero (R : Type*) [CommRing R] [IsDomain R] : cyclotomic' 0 R = 1 
Arguments: (R : Type u_2) [CommRing R] [IsDomain R]
Goal: Polynomial.cyclotomic' 0 R = 1
-- Polynomial.cyclotomic'_one
@[simp]
theorem cyclotomic'_one (R : Type*) [CommRing R] [IsDomain R] : cyclotomic' 1 R = X - 1 
Arguments: (R : Type u_2) [CommRing R] [IsDomain R]
Goal: Polynomial.cyclotomic' 1 R = Polynomial.X - 1
-- Polynomial.cyclotomic'_two
@[simp]
theorem cyclotomic'_two (R : Type*) [CommRing R] [IsDomain R] (p : ℕ) [CharP R p] (hp : p ≠ 2) :
    cyclotomic' 2 R = X + 1 
Arguments: (R : Type u_2) [CommRing R] [IsDomain R] (p : ℕ) [CharP R p] (hp : p ≠ 2)
Goal: Polynomial.cyclotomic' 2 R = Polynomial.X + 1
-- Polynomial.cyclotomic'.monic
theorem cyclotomic'.monic (n : ℕ) (R : Type*) [CommRing R] [IsDomain R] :
    (cyclotomic' n R).Monic 
Arguments: (n : ℕ) (R : Type u_2) [CommRing R] [IsDomain R]
Goal: (Polynomial.cyclotomic' n R).Monic
-- Polynomial.cyclotomic'_ne_zero
theorem cyclotomic'_ne_zero (n : ℕ) (R : Type*) [CommRing R] [IsDomain R] : cyclotomic' n R ≠ 0 
Arguments: (n : ℕ) (R : Type u_2) [CommRing R] [IsDomain R]
Goal: Polynomial.cyclotomic' n R ≠ 0
-- Polynomial.natDegree_cyclotomic'
theorem natDegree_cyclotomic' {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    (cyclotomic' n R).natDegree = Nat.totient n 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: (Polynomial.cyclotomic' n R).natDegree = n.totient
-- Polynomial.degree_cyclotomic'
theorem degree_cyclotomic' {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    (cyclotomic' n R).degree = Nat.totient n 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: (Polynomial.cyclotomic' n R).degree = ↑n.totient
-- Polynomial.roots_of_cyclotomic
theorem roots_of_cyclotomic (n : ℕ) (R : Type*) [CommRing R] [IsDomain R] :
    (cyclotomic' n R).roots = (primitiveRoots n R).val 
Arguments: (n : ℕ) (R : Type u_2) [CommRing R] [IsDomain R]
Goal: (Polynomial.cyclotomic' n R).roots = (primitiveRoots n R).val
-- Polynomial.X_pow_sub_one_eq_prod
theorem X_pow_sub_one_eq_prod {ζ : R} {n : ℕ} (hpos : 0 < n) (h : IsPrimitiveRoot ζ n) :
    X ^ n - 1 = ∏ ζ ∈ nthRootsFinset n R, (X - C ζ) 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (hpos : 0 < n) (h : IsPrimitiveRoot ζ n)
Goal: Polynomial.X ^ n - 1 = ∏ ζ ∈ Polynomial.nthRootsFinset n R, (Polynomial.X - Polynomial.C ζ)
-- Polynomial.cyclotomic'_splits
theorem cyclotomic'_splits (n : ℕ) : Splits (RingHom.id K) (cyclotomic' n K) 
Arguments: {K : Type u_1} [Field K] (n : ℕ)
Goal: Polynomial.Splits (RingHom.id K) (Polynomial.cyclotomic' n K)
-- Polynomial.X_pow_sub_one_splits
theorem X_pow_sub_one_splits {ζ : K} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    Splits (RingHom.id K) (X ^ n - C (1 : K)) 
Arguments: {K : Type u_1} [Field K] {ζ : K} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: Polynomial.Splits (RingHom.id K) (Polynomial.X ^ n - Polynomial.C 1)
-- Polynomial.prod_cyclotomic'_eq_X_pow_sub_one
theorem prod_cyclotomic'_eq_X_pow_sub_one {K : Type*} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ}
    (hpos : 0 < n) (h : IsPrimitiveRoot ζ n) :
    ∏ i ∈ Nat.divisors n, cyclotomic' i K = X ^ n - 1 
Arguments: {K : Type u_2} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ} (hpos : 0 < n) (h : IsPrimitiveRoot ζ n)
Goal: ∏ i ∈ n.divisors, Polynomial.cyclotomic' i K = Polynomial.X ^ n - 1
-- Polynomial.cyclotomic'_eq_X_pow_sub_one_div
theorem cyclotomic'_eq_X_pow_sub_one_div {K : Type*} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ}
    (hpos : 0 < n) (h : IsPrimitiveRoot ζ n) :
    cyclotomic' n K = (X ^ n - 1) /ₘ ∏ i ∈ Nat.properDivisors n, cyclotomic' i K 
Arguments: {K : Type u_2} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ} (hpos : 0 < n) (h : IsPrimitiveRoot ζ n)
Goal: Polynomial.cyclotomic' n K = (Polynomial.X ^ n - 1) /ₘ ∏ i ∈ n.properDivisors, Polynomial.cyclotomic' i K
-- Polynomial.int_coeff_of_cyclotomic'
theorem int_coeff_of_cyclotomic' {K : Type*} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ}
    (h : IsPrimitiveRoot ζ n) : ∃ P : ℤ[X], map (Int.castRingHom K) P =
      cyclotomic' n K ∧ P.degree = (cyclotomic' n K).degree ∧ P.Monic 
Arguments: {K : Type u_2} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: ∃ P,
  Polynomial.map (Int.castRingHom K) P = Polynomial.cyclotomic' n K ∧
    P.degree = (Polynomial.cyclotomic' n K).degree ∧ P.Monic
-- Polynomial.unique_int_coeff_of_cycl
theorem unique_int_coeff_of_cycl {K : Type*} [CommRing K] [IsDomain K] [CharZero K] {ζ : K}
    {n : ℕ+} (h : IsPrimitiveRoot ζ n) :
    ∃! P : ℤ[X], map (Int.castRingHom K) P = cyclotomic' n K 
Arguments: {K : Type u_2} [CommRing K] [IsDomain K] [CharZero K] {ζ : K} {n : ℕ+} (h : IsPrimitiveRoot ζ ↑n)
Goal: ∃! P, Polynomial.map (Int.castRingHom K) P = Polynomial.cyclotomic' (↑n) K
-- Polynomial.int_cyclotomic_rw
theorem int_cyclotomic_rw {n : ℕ} (h : n ≠ 0) :
    cyclotomic n ℤ = (int_coeff_of_cyclotomic' (Complex.isPrimitiveRoot_exp n h)).choose 
Arguments: {n : ℕ} (h : n ≠ 0)
Goal: Polynomial.cyclotomic n ℤ = ⋯.choose
-- Polynomial.map_cyclotomic_int
theorem map_cyclotomic_int (n : ℕ) (R : Type*) [Ring R] :
    map (Int.castRingHom R) (cyclotomic n ℤ) = cyclotomic n R 
Arguments: (n : ℕ) (R : Type u_1) [Ring R]
Goal: Polynomial.map (Int.castRingHom R) (Polynomial.cyclotomic n ℤ) = Polynomial.cyclotomic n R
-- Polynomial.int_cyclotomic_spec
theorem int_cyclotomic_spec (n : ℕ) :
    map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
      (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic 
Arguments: (n : ℕ)
Goal: Polynomial.map (Int.castRingHom ℂ) (Polynomial.cyclotomic n ℤ) = Polynomial.cyclotomic' n ℂ ∧
  (Polynomial.cyclotomic n ℤ).degree = (Polynomial.cyclotomic' n ℂ).degree ∧ (Polynomial.cyclotomic n ℤ).Monic
-- Polynomial.int_cyclotomic_unique
theorem int_cyclotomic_unique {n : ℕ} {P : ℤ[X]} (h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ) :
    P = cyclotomic n ℤ 
Arguments: {n : ℕ} {P : ℤ[X]} (h : Polynomial.map (Int.castRingHom ℂ) P = Polynomial.cyclotomic' n ℂ)
Goal: P = Polynomial.cyclotomic n ℤ
-- Polynomial.map_cyclotomic
@[simp]
theorem map_cyclotomic (n : ℕ) {R S : Type*} [Ring R] [Ring S] (f : R →+* S) :
    map f (cyclotomic n R) = cyclotomic n S 
Arguments: (n : ℕ) {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (f : R →+* S)
Goal: Polynomial.map f (Polynomial.cyclotomic n R) = Polynomial.cyclotomic n S
-- Polynomial.cyclotomic.eval_apply
theorem cyclotomic.eval_apply {R S : Type*} (q : R) (n : ℕ) [Ring R] [Ring S] (f : R →+* S) :
    eval (f q) (cyclotomic n S) = f (eval q (cyclotomic n R)) 
Arguments: {R : Type u_1} {S : Type u_2} (q : R) (n : ℕ) [Ring R] [Ring S] (f : R →+* S)
Goal: Polynomial.eval (f q) (Polynomial.cyclotomic n S) = f (Polynomial.eval q (Polynomial.cyclotomic n R))
-- Polynomial.cyclotomic_zero
@[simp]
theorem cyclotomic_zero (R : Type*) [Ring R] : cyclotomic 0 R = 1 
Arguments: (R : Type u_1) [Ring R]
Goal: Polynomial.cyclotomic 0 R = 1
-- Polynomial.cyclotomic_one
@[simp]
theorem cyclotomic_one (R : Type*) [Ring R] : cyclotomic 1 R = X - 1 
Arguments: (R : Type u_1) [Ring R]
Goal: Polynomial.cyclotomic 1 R = Polynomial.X - 1
-- Polynomial.cyclotomic.monic
theorem cyclotomic.monic (n : ℕ) (R : Type*) [Ring R] : (cyclotomic n R).Monic 
Arguments: (n : ℕ) (R : Type u_1) [Ring R]
Goal: (Polynomial.cyclotomic n R).Monic
-- Polynomial.cyclotomic.isPrimitive
theorem cyclotomic.isPrimitive (n : ℕ) (R : Type*) [CommRing R] : (cyclotomic n R).IsPrimitive 
Arguments: (n : ℕ) (R : Type u_1) [CommRing R]
Goal: (Polynomial.cyclotomic n R).IsPrimitive
-- Polynomial.cyclotomic_ne_zero
theorem cyclotomic_ne_zero (n : ℕ) (R : Type*) [Ring R] [Nontrivial R] : cyclotomic n R ≠ 0 
Arguments: (n : ℕ) (R : Type u_1) [Ring R] [Nontrivial R]
Goal: Polynomial.cyclotomic n R ≠ 0
-- Polynomial.degree_cyclotomic
theorem degree_cyclotomic (n : ℕ) (R : Type*) [Ring R] [Nontrivial R] :
    (cyclotomic n R).degree = Nat.totient n 
Arguments: (n : ℕ) (R : Type u_1) [Ring R] [Nontrivial R]
Goal: (Polynomial.cyclotomic n R).degree = ↑n.totient
-- Polynomial.natDegree_cyclotomic
theorem natDegree_cyclotomic (n : ℕ) (R : Type*) [Ring R] [Nontrivial R] :
    (cyclotomic n R).natDegree = Nat.totient n 
Arguments: (n : ℕ) (R : Type u_1) [Ring R] [Nontrivial R]
Goal: (Polynomial.cyclotomic n R).natDegree = n.totient
-- Polynomial.degree_cyclotomic_pos
theorem degree_cyclotomic_pos (n : ℕ) (R : Type*) (hpos : 0 < n) [Ring R] [Nontrivial R] :
    0 < (cyclotomic n R).degree 
Arguments: (n : ℕ) (R : Type u_1) (hpos : 0 < n) [Ring R] [Nontrivial R]
Goal: 0 < (Polynomial.cyclotomic n R).degree
-- Polynomial.prod_cyclotomic_eq_X_pow_sub_one
theorem prod_cyclotomic_eq_X_pow_sub_one {n : ℕ} (hpos : 0 < n) (R : Type*) [CommRing R] :
    ∏ i ∈ Nat.divisors n, cyclotomic i R = X ^ n - 1 
Arguments: {n : ℕ} (hpos : 0 < n) (R : Type u_1) [CommRing R]
Goal: ∏ i ∈ n.divisors, Polynomial.cyclotomic i R = Polynomial.X ^ n - 1
-- Polynomial.cyclotomic.dvd_X_pow_sub_one
theorem cyclotomic.dvd_X_pow_sub_one (n : ℕ) (R : Type*) [Ring R] :
    cyclotomic n R ∣ X ^ n - 1 
Arguments: (n : ℕ) (R : Type u_1) [Ring R]
Goal: Polynomial.cyclotomic n R ∣ Polynomial.X ^ n - 1
-- Polynomial.prod_cyclotomic_eq_geom_sum
theorem prod_cyclotomic_eq_geom_sum {n : ℕ} (h : 0 < n) (R) [CommRing R] :
    ∏ i ∈ n.divisors.erase 1, cyclotomic i R = ∑ i ∈ Finset.range n, X ^ i 
Arguments: {n : ℕ} (h : 0 < n) (R : Type u_1) [CommRing R]
Goal: ∏ i ∈ n.divisors.erase 1, Polynomial.cyclotomic i R = ∑ i ∈ Finset.range n, Polynomial.X ^ i
-- Polynomial.cyclotomic_prime
theorem cyclotomic_prime (R : Type*) [Ring R] (p : ℕ) [hp : Fact p.Prime] :
    cyclotomic p R = ∑ i ∈ Finset.range p, X ^ i 
Arguments: (R : Type u_1) [Ring R] (p : ℕ) [hp : Fact (Nat.Prime p)]
Goal: Polynomial.cyclotomic p R = ∑ i ∈ Finset.range p, Polynomial.X ^ i
-- Polynomial.cyclotomic_prime_mul_X_sub_one
theorem cyclotomic_prime_mul_X_sub_one (R : Type*) [Ring R] (p : ℕ) [hn : Fact (Nat.Prime p)] :
    cyclotomic p R * (X - 1) = X ^ p - 1 
Arguments: (R : Type u_1) [Ring R] (p : ℕ) [hn : Fact (Nat.Prime p)]
Goal: Polynomial.cyclotomic p R * (Polynomial.X - 1) = Polynomial.X ^ p - 1
-- Polynomial.cyclotomic_two
@[simp]
theorem cyclotomic_two (R : Type*) [Ring R] : cyclotomic 2 R = X + 1 
Arguments: (R : Type u_1) [Ring R]
Goal: Polynomial.cyclotomic 2 R = Polynomial.X + 1
-- Polynomial.cyclotomic_three
@[simp]
theorem cyclotomic_three (R : Type*) [Ring R] : cyclotomic 3 R = X ^ 2 + X + 1 
Arguments: (R : Type u_1) [Ring R]
Goal: Polynomial.cyclotomic 3 R = Polynomial.X ^ 2 + Polynomial.X + 1
-- Polynomial.cyclotomic_dvd_geom_sum_of_dvd
theorem cyclotomic_dvd_geom_sum_of_dvd (R) [Ring R] {d n : ℕ} (hdn : d ∣ n) (hd : d ≠ 1) :
    cyclotomic d R ∣ ∑ i ∈ Finset.range n, X ^ i 
Arguments: (R : Type u_1) [Ring R] {d n : ℕ} (hdn : d ∣ n) (hd : d ≠ 1)
Goal: Polynomial.cyclotomic d R ∣ ∑ i ∈ Finset.range n, Polynomial.X ^ i
-- Polynomial.X_pow_sub_one_mul_prod_cyclotomic_eq_X_pow_sub_one_of_dvd
theorem X_pow_sub_one_mul_prod_cyclotomic_eq_X_pow_sub_one_of_dvd (R) [CommRing R] {d n : ℕ}
    (h : d ∈ n.properDivisors) :
    ((X ^ d - 1) * ∏ x ∈ n.divisors \ d.divisors, cyclotomic x R) = X ^ n - 1 
Arguments: (R : Type u_1) [CommRing R] {d n : ℕ} (h : d ∈ n.properDivisors)
Goal: (Polynomial.X ^ d - 1) * ∏ x ∈ n.divisors \ d.divisors, Polynomial.cyclotomic x R = Polynomial.X ^ n - 1
-- Polynomial.X_pow_sub_one_mul_cyclotomic_dvd_X_pow_sub_one_of_dvd
theorem X_pow_sub_one_mul_cyclotomic_dvd_X_pow_sub_one_of_dvd (R) [CommRing R] {d n : ℕ}
    (h : d ∈ n.properDivisors) : (X ^ d - 1) * cyclotomic n R ∣ X ^ n - 1 
Arguments: (R : Type u_1) [CommRing R] {d n : ℕ} (h : d ∈ n.properDivisors)
Goal: (Polynomial.X ^ d - 1) * Polynomial.cyclotomic n R ∣ Polynomial.X ^ n - 1
-- Polynomial.cyclotomic_eq_prod_X_pow_sub_one_pow_moebius
theorem cyclotomic_eq_prod_X_pow_sub_one_pow_moebius {n : ℕ} (R : Type*) [CommRing R]
    [IsDomain R] : algebraMap _ (RatFunc R) (cyclotomic n R) =
      ∏ i ∈ n.divisorsAntidiagonal, algebraMap R[X] _ (X ^ i.snd - 1) ^ μ i.fst 
Arguments: {n : ℕ} (R : Type u_1) [CommRing R] [IsDomain R]
Goal: (algebraMap R[X] (RatFunc R)) (Polynomial.cyclotomic n R) =
  ∏ i ∈ n.divisorsAntidiagonal, (algebraMap R[X] (RatFunc R)) (Polynomial.X ^ i.2 - 1) ^ ArithmeticFunction.moebius i.1
-- Polynomial.cyclotomic_eq_X_pow_sub_one_div
theorem cyclotomic_eq_X_pow_sub_one_div {R : Type*} [CommRing R] {n : ℕ} (hpos : 0 < n) :
    cyclotomic n R = (X ^ n - 1) /ₘ ∏ i ∈ Nat.properDivisors n, cyclotomic i R 
Arguments: {R : Type u_1} [CommRing R] {n : ℕ} (hpos : 0 < n)
Goal: Polynomial.cyclotomic n R = (Polynomial.X ^ n - 1) /ₘ ∏ i ∈ n.properDivisors, Polynomial.cyclotomic i R
-- Polynomial.X_pow_sub_one_dvd_prod_cyclotomic
theorem X_pow_sub_one_dvd_prod_cyclotomic (R : Type*) [CommRing R] {n m : ℕ} (hpos : 0 < n)
    (hm : m ∣ n) (hdiff : m ≠ n) : X ^ m - 1 ∣ ∏ i ∈ Nat.properDivisors n, cyclotomic i R 
Arguments: (R : Type u_1) [CommRing R] {n m : ℕ} (hpos : 0 < n) (hm : m ∣ n) (hdiff : m ≠ n)
Goal: Polynomial.X ^ m - 1 ∣ ∏ i ∈ n.properDivisors, Polynomial.cyclotomic i R
-- Polynomial.cyclotomic_eq_prod_X_sub_primitiveRoots
theorem cyclotomic_eq_prod_X_sub_primitiveRoots {K : Type*} [CommRing K] [IsDomain K] {ζ : K}
    {n : ℕ} (hz : IsPrimitiveRoot ζ n) : cyclotomic n K = ∏ μ ∈ primitiveRoots n K, (X - C μ) 
Arguments: {K : Type u_1} [CommRing K] [IsDomain K] {ζ : K} {n : ℕ} (hz : IsPrimitiveRoot ζ n)
Goal: Polynomial.cyclotomic n K = ∏ μ ∈ primitiveRoots n K, (Polynomial.X - Polynomial.C μ)
-- Polynomial.eq_cyclotomic_iff
theorem eq_cyclotomic_iff {R : Type*} [CommRing R] {n : ℕ} (hpos : 0 < n) (P : R[X]) :
    P = cyclotomic n R ↔
    (P * ∏ i ∈ Nat.properDivisors n, Polynomial.cyclotomic i R) = X ^ n - 1 
Arguments: {R : Type u_1} [CommRing R] {n : ℕ} (hpos : 0 < n) (P : R[X])
Goal: P = Polynomial.cyclotomic n R ↔ P * ∏ i ∈ n.properDivisors, Polynomial.cyclotomic i R = Polynomial.X ^ n - 1
-- Polynomial.cyclotomic_prime_pow_eq_geom_sum
theorem cyclotomic_prime_pow_eq_geom_sum {R : Type*} [CommRing R] {p n : ℕ} (hp : p.Prime) :
    cyclotomic (p ^ (n + 1)) R = ∑ i ∈ Finset.range p, (X ^ p ^ n) ^ i 
Arguments: {R : Type u_1} [CommRing R] {p n : ℕ} (hp : Nat.Prime p)
Goal: Polynomial.cyclotomic (p ^ (n + 1)) R = ∑ i ∈ Finset.range p, (Polynomial.X ^ p ^ n) ^ i
-- Polynomial.cyclotomic_prime_pow_mul_X_pow_sub_one
theorem cyclotomic_prime_pow_mul_X_pow_sub_one (R : Type*) [CommRing R] (p k : ℕ)
    [hn : Fact (Nat.Prime p)] :
    cyclotomic (p ^ (k + 1)) R * (X ^ p ^ k - 1) = X ^ p ^ (k + 1) - 1 
Arguments: (R : Type u_1) [CommRing R] (p k : ℕ) [hn : Fact (Nat.Prime p)]
Goal: Polynomial.cyclotomic (p ^ (k + 1)) R * (Polynomial.X ^ p ^ k - 1) = Polynomial.X ^ p ^ (k + 1) - 1
-- Polynomial.cyclotomic_coeff_zero
theorem cyclotomic_coeff_zero (R : Type*) [CommRing R] {n : ℕ} (hn : 1 < n) :
    (cyclotomic n R).coeff 0 = 1 
Arguments: (R : Type u_1) [CommRing R] {n : ℕ} (hn : 1 < n)
Goal: (Polynomial.cyclotomic n R).coeff 0 = 1
-- Polynomial.coprime_of_root_cyclotomic
theorem coprime_of_root_cyclotomic {n : ℕ} (hpos : 0 < n) {p : ℕ} [hprime : Fact p.Prime] {a : ℕ}
    (hroot : IsRoot (cyclotomic n (ZMod p)) (Nat.castRingHom (ZMod p) a)) : a.Coprime p 
Arguments: {n : ℕ} (hpos : 0 < n) {p : ℕ} [hprime : Fact (Nat.Prime p)] {a : ℕ} (hroot : (Polynomial.cyclotomic n (ZMod p)).IsRoot ((Nat.castRingHom (ZMod p)) a))
Goal: a.Coprime p