ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- IsDedekindDomain.HeightOneSpectrum.valuationOfNeZeroToFun_eq
@[simp]
theorem valuationOfNeZeroToFun_eq (x : Kˣ) :
    (v.valuationOfNeZeroToFun x : ℤₘ₀) = v.valuation (x : K) 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (x : Kˣ)
Goal: ↑(v.valuationOfNeZeroToFun x) = v.valuation ↑x
-- IsDedekindDomain.HeightOneSpectrum.valuationOfNeZero_eq
@[simp]
theorem valuationOfNeZero_eq (x : Kˣ) : (v.valuationOfNeZero x : ℤₘ₀) = v.valuation (x : K) 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (x : Kˣ)
Goal: ↑(v.valuationOfNeZero x) = v.valuation ↑x
-- IsDedekindDomain.HeightOneSpectrum.valuation_of_unit_eq
@[simp]
theorem valuation_of_unit_eq (x : Rˣ) :
    v.valuationOfNeZero (Units.map (algebraMap R K : R →* K) x) = 1 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (x : Rˣ)
Goal: v.valuationOfNeZero ((Units.map ↑(algebraMap R K)) x) = 1
-- IsDedekindDomain.HeightOneSpectrum.valuation_of_unit_mod_eq
@[simp]
theorem valuation_of_unit_mod_eq (n : ℕ) (x : Rˣ) :
    v.valuationOfNeZeroMod n (Units.map (algebraMap R K : R →* K) x : K/n) = 1 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (n : ℕ) (x : Rˣ)
Goal: (v.valuationOfNeZeroMod n) ↑((Units.map ↑(algebraMap R K)) x) = 1
-- IsDedekindDomain.selmerGroup.monotone
theorem monotone (hS : S ≤ S') : K⟮S,n⟯ ≤ K⟮S',n⟯ 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] {S S' : Set (IsDedekindDomain.HeightOneSpectrum R)} {n : ℕ} (hS : S ≤ S')
Goal: IsDedekindDomain.selmerGroup ≤ IsDedekindDomain.selmerGroup
-- IsDedekindDomain.selmerGroup.valuation_ker_eq
theorem valuation_ker_eq :
    valuation.ker = K⟮(∅ : Set <| HeightOneSpectrum R),n⟯.subgroupOf (K⟮S,n⟯) 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] {S : Set (IsDedekindDomain.HeightOneSpectrum R)} {n : ℕ}
Goal: IsDedekindDomain.selmerGroup.valuation.ker = IsDedekindDomain.selmerGroup.subgroupOf IsDedekindDomain.selmerGroup
-- IsDedekindDomain.selmerGroup.fromUnit_ker
theorem fromUnit_ker [hn : Fact <| 0 < n] :
    (@fromUnit R _ _ K _ _ _ n).ker = (powMonoidHom n : Rˣ →* Rˣ).range 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] {n : ℕ} [hn : Fact (0 < n)]
Goal: IsDedekindDomain.selmerGroup.fromUnit.ker = (powMonoidHom n).range
-- IsDedekindDomain.selmerGroup.fromUnitLift_injective
theorem fromUnitLift_injective [Fact <| 0 < n] :
    Function.Injective <| @fromUnitLift R _ _ K _ _ _ n _ 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] {K : Type v} [Field K] [Algebra R K] [IsFractionRing R K] {n : ℕ} [Fact (0 < n)]
Goal: Function.Injective ⇑IsDedekindDomain.selmerGroup.fromUnitLift
-- Derivation.commutator_coe_linear_map
@[simp]
theorem commutator_coe_linear_map : ↑⁅D1, D2⁆ = ⁅(D1 : Module.End R A), (D2 : Module.End R A)⁆ 
Arguments: {R : Type u_1} [CommRing R] {A : Type u_2} [CommRing A] [Algebra R A] {D1 D2 : Derivation R A A}
Goal: ↑⁅D1, D2⁆ = ⁅↑D1, ↑D2⁆
-- Derivation.commutator_apply
theorem commutator_apply : ⁅D1, D2⁆ a = D1 (D2 a) - D2 (D1 a) 
Arguments: {R : Type u_1} [CommRing R] {A : Type u_2} [CommRing A] [Algebra R A] {D1 D2 : Derivation R A A} (a : A)
Goal: ⁅D1, D2⁆ a = D1 (D2 a) - D2 (D1 a)
-- DedekindDomain.FiniteIntegralAdeles.coe_apply
theorem coe_apply (x : R_hat R K) (v : HeightOneSpectrum R) : (x : K_hat R K) v = ↑(x v) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (x : DedekindDomain.FiniteIntegralAdeles R K) (v : IsDedekindDomain.HeightOneSpectrum R)
Goal: (fun v => ↑(x v)) v = ↑(x v)
-- DedekindDomain.FiniteIntegralAdeles.Coe.addMonoidHom_apply
@[simps]
def Coe.addMonoidHom : AddMonoidHom (R_hat R K) (K_hat R K) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (x : DedekindDomain.FiniteIntegralAdeles R K) (v : IsDedekindDomain.HeightOneSpectrum R)
Goal: (DedekindDomain.FiniteIntegralAdeles.Coe.addMonoidHom R K) x v = ↑(x v)
-- DedekindDomain.FiniteIntegralAdeles.Coe.ringHom_apply
@[simps]
def Coe.ringHom : RingHom (R_hat R K) (K_hat R K) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (x : DedekindDomain.FiniteIntegralAdeles R K) (v : IsDedekindDomain.HeightOneSpectrum R)
Goal: (DedekindDomain.FiniteIntegralAdeles.Coe.ringHom R K) x v = ↑(x v)
-- DedekindDomain.ProdAdicCompletions.algebraMap_apply'
@[simp]
lemma ProdAdicCompletions.algebraMap_apply' (k : K) :
    algebraMap K (K_hat R K) k v = (k : v.adicCompletion K) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (k : K)
Goal: (algebraMap K (DedekindDomain.ProdAdicCompletions R K)) k v = ↑K k
-- DedekindDomain.ProdAdicCompletions.algebraMap_apply
@[simp]
lemma ProdAdicCompletions.algebraMap_apply (r : R) :
    algebraMap R (K_hat R K) r v = (algebraMap R K r : v.adicCompletion K) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) (r : R)
Goal: (algebraMap R (DedekindDomain.ProdAdicCompletions R K)) r v = ↑K ((algebraMap R K) r)
-- DedekindDomain.FiniteIntegralAdeles.Coe.algHom_apply
theorem Coe.algHom_apply (x : R_hat R K) (v : HeightOneSpectrum R) : (Coe.algHom R K) x v = x v 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (x : DedekindDomain.FiniteIntegralAdeles R K) (v : IsDedekindDomain.HeightOneSpectrum R)
Goal: (DedekindDomain.FiniteIntegralAdeles.Coe.algHom R K) x v = ↑(x v)
-- DedekindDomain.ProdAdicCompletions.isFiniteAdele_iff
@[simp]
lemma isFiniteAdele_iff (x : K_hat R K) :
    x.IsFiniteAdele ↔ {v | x v ∉ adicCompletionIntegers K v}.Finite 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (x : DedekindDomain.ProdAdicCompletions R K)
Goal: x.IsFiniteAdele ↔ {v | x v ∉ IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v}.Finite
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.add
theorem add {x y : K_hat R K} (hx : x.IsFiniteAdele) (hy : y.IsFiniteAdele) :
    (x + y).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] {x y : DedekindDomain.ProdAdicCompletions R K} (hx : x.IsFiniteAdele) (hy : y.IsFiniteAdele)
Goal: (x + y).IsFiniteAdele
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.zero
theorem zero : (0 : K_hat R K).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K]
Goal: DedekindDomain.ProdAdicCompletions.IsFiniteAdele 0
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.neg
theorem neg {x : K_hat R K} (hx : x.IsFiniteAdele) : (-x).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] {x : DedekindDomain.ProdAdicCompletions R K} (hx : x.IsFiniteAdele)
Goal: (-x).IsFiniteAdele
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.mul
theorem mul {x y : K_hat R K} (hx : x.IsFiniteAdele) (hy : y.IsFiniteAdele) :
    (x * y).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] {x y : DedekindDomain.ProdAdicCompletions R K} (hx : x.IsFiniteAdele) (hy : y.IsFiniteAdele)
Goal: (x * y).IsFiniteAdele
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.one
theorem one : (1 : K_hat R K).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K]
Goal: DedekindDomain.ProdAdicCompletions.IsFiniteAdele 1
-- DedekindDomain.ProdAdicCompletions.IsFiniteAdele.algebraMap'
theorem algebraMap' (k : K) : (_root_.algebraMap K (K_hat R K) k).IsFiniteAdele 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (k : K)
Goal: ((algebraMap K (DedekindDomain.ProdAdicCompletions R K)) k).IsFiniteAdele
-- DedekindDomain.FiniteAdeleRing.ext
@[ext]
lemma ext {a₁ a₂ : FiniteAdeleRing R K} (h : (a₁ : K_hat R K) = a₂) : a₁ = a₂ 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] {a₁ a₂ : DedekindDomain.FiniteAdeleRing R K} (h : ↑a₁ = ↑a₂)
Goal: a₁ = a₂
-- DedekindDomain.FiniteAdeleRing.exists_finiteIntegralAdele_iff
lemma exists_finiteIntegralAdele_iff (a : FiniteAdeleRing R K) : (∃ c : R_hat R K,
    a = c) ↔ ∀ (v : HeightOneSpectrum R), a v ∈ adicCompletionIntegers K v 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (a : DedekindDomain.FiniteAdeleRing R K)
Goal: (∃ c, a = ↑c) ↔
  ∀ (v : IsDedekindDomain.HeightOneSpectrum R),
    (fun v => ↑a v) v ∈ IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v
-- DedekindDomain.FiniteAdeleRing.mul_nonZeroDivisor_mem_finiteIntegralAdeles
lemma mul_nonZeroDivisor_mem_finiteIntegralAdeles (a : FiniteAdeleRing R K) :
    ∃ (b : R⁰) (c : R_hat R K), a * ((b : R) : FiniteAdeleRing R K) = c 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] (a : DedekindDomain.FiniteAdeleRing R K)
Goal: ∃ b c, a * ↑↑b = ↑c
-- DedekindDomain.FiniteAdeleRing.submodulesRingBasis
theorem submodulesRingBasis : SubmodulesRingBasis
    (fun (r : R⁰) ↦ Submodule.span (R_hat R K) {((r : R) : FiniteAdeleRing R K)}) 
Arguments: (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K]
Goal: SubmodulesRingBasis fun r => Submodule.span (DedekindDomain.FiniteIntegralAdeles R K) {↑↑r}
-- mem_rootsOfUnity
@[simp]
theorem mem_rootsOfUnity (k : ℕ+) (ζ : Mˣ) : ζ ∈ rootsOfUnity k M ↔ ζ ^ (k : ℕ) = 1 
Arguments: {M : Type u_1} [CommMonoid M] (k : ℕ+) (ζ : Mˣ)
Goal: ζ ∈ rootsOfUnity k M ↔ ζ ^ ↑k = 1
-- mem_rootsOfUnity'
theorem mem_rootsOfUnity' (k : ℕ+) (ζ : Mˣ) : ζ ∈ rootsOfUnity k M ↔ (ζ : M) ^ (k : ℕ) = 1 
Arguments: {M : Type u_1} [CommMonoid M] (k : ℕ+) (ζ : Mˣ)
Goal: ζ ∈ rootsOfUnity k M ↔ ↑ζ ^ ↑k = 1
-- rootsOfUnity_one
@[simp]
theorem rootsOfUnity_one (M : Type*) [CommMonoid M] : rootsOfUnity 1 M = ⊥ 
Arguments: (M : Type u_7) [CommMonoid M]
Goal: rootsOfUnity 1 M = ⊥
-- rootsOfUnity.coe_injective
theorem rootsOfUnity.coe_injective {n : ℕ+} :
    Function.Injective (fun x : rootsOfUnity n M ↦ x.val.val) 
Arguments: {M : Type u_1} [CommMonoid M] {n : ℕ+}
Goal: Function.Injective fun x => ↑↑x
-- rootsOfUnity.val_mkOfPowEq_coe
@[simps! coe_val]
def rootsOfUnity.mkOfPowEq (ζ : M) {n : ℕ+} (h : ζ ^ (n : ℕ) = 1) : rootsOfUnity n M 
Arguments: {M : Type u_1} [CommMonoid M] (ζ : M) {n : ℕ+} (h : ζ ^ ↑n = 1)
Goal: ↑↑(rootsOfUnity.mkOfPowEq ζ h) = ζ
-- rootsOfUnity.coe_mkOfPowEq
@[simp]
theorem rootsOfUnity.coe_mkOfPowEq {ζ : M} {n : ℕ+} (h : ζ ^ (n : ℕ) = 1) :
    ((rootsOfUnity.mkOfPowEq _ h : Mˣ) : M) = ζ 
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M} {n : ℕ+} (h : ζ ^ ↑n = 1)
Goal: ↑↑(rootsOfUnity.mkOfPowEq ζ h) = ζ
-- rootsOfUnity_le_of_dvd
theorem rootsOfUnity_le_of_dvd (h : k ∣ l) : rootsOfUnity k M ≤ rootsOfUnity l M 
Arguments: {M : Type u_1} [CommMonoid M] {k l : ℕ+} (h : k ∣ l)
Goal: rootsOfUnity k M ≤ rootsOfUnity l M
-- map_rootsOfUnity
theorem map_rootsOfUnity (f : Mˣ →* Nˣ) (k : ℕ+) : (rootsOfUnity k M).map f ≤ rootsOfUnity k N 
Arguments: {M : Type u_1} {N : Type u_2} [CommMonoid M] [CommMonoid N] (f : Mˣ →* Nˣ) (k : ℕ+)
Goal: Subgroup.map f (rootsOfUnity k M) ≤ rootsOfUnity k N
-- rootsOfUnity.coe_pow
@[norm_cast]
theorem rootsOfUnity.coe_pow [CommMonoid R] (ζ : rootsOfUnity k R) (m : ℕ) :
    (((ζ ^ m :) : Rˣ) : R) = ((ζ : Rˣ) : R) ^ m 
Arguments: {R : Type u_4} {k : ℕ+} [CommMonoid R] (ζ : ↥(rootsOfUnity k R)) (m : ℕ)
Goal: ↑↑(ζ ^ m) = ↑↑ζ ^ m
-- restrictRootsOfUnity_coe_apply
@[simp]
theorem restrictRootsOfUnity_coe_apply [MonoidHomClass F R S] (σ : F) (ζ : rootsOfUnity k R) :
    (restrictRootsOfUnity σ k ζ : Sˣ) = σ (ζ : Rˣ) 
Arguments: {R : Type u_4} {S : Type u_5} {F : Type u_6} {k : ℕ+} [CommMonoid R] [CommMonoid S] [FunLike F R S] [MonoidHomClass F R S] (σ : F) (ζ : ↥(rootsOfUnity k R))
Goal: ↑↑((restrictRootsOfUnity σ k) ζ) = σ ↑↑ζ
-- MulEquiv.restrictRootsOfUnity_coe_apply
@[simp]
theorem MulEquiv.restrictRootsOfUnity_coe_apply (σ : R ≃* S) (ζ : rootsOfUnity k R) :
    (σ.restrictRootsOfUnity k ζ : Sˣ) = σ (ζ : Rˣ) 
Arguments: {R : Type u_4} {S : Type u_5} {k : ℕ+} [CommMonoid R] [CommMonoid S] (σ : R ≃* S) (ζ : ↥(rootsOfUnity k R))
Goal: ↑↑((σ.restrictRootsOfUnity k) ζ) = σ ↑↑ζ
-- MulEquiv.restrictRootsOfUnity_symm
@[simp]
theorem MulEquiv.restrictRootsOfUnity_symm (σ : R ≃* S) :
    (σ.restrictRootsOfUnity k).symm = σ.symm.restrictRootsOfUnity k 
Arguments: {R : Type u_4} {S : Type u_5} {k : ℕ+} [CommMonoid R] [CommMonoid S] (σ : R ≃* S)
Goal: (σ.restrictRootsOfUnity k).symm = σ.symm.restrictRootsOfUnity k
-- mem_rootsOfUnity_iff_mem_nthRoots
theorem mem_rootsOfUnity_iff_mem_nthRoots {ζ : Rˣ} :
    ζ ∈ rootsOfUnity k R ↔ (ζ : R) ∈ nthRoots k (1 : R) 
Arguments: {R : Type u_4} {k : ℕ+} [CommRing R] [IsDomain R] {ζ : Rˣ}
Goal: ζ ∈ rootsOfUnity k R ↔ ↑ζ ∈ Polynomial.nthRoots (↑k) 1
-- rootsOfUnityEquivNthRoots_apply
@[simp]
theorem rootsOfUnityEquivNthRoots_apply (x : rootsOfUnity k R) :
    (rootsOfUnityEquivNthRoots R k x : R) = ((x : Rˣ) : R) 
Arguments: {R : Type u_4} {k : ℕ+} [CommRing R] [IsDomain R] (x : ↥(rootsOfUnity k R))
Goal: ↑((rootsOfUnityEquivNthRoots R k) x) = ↑↑x
-- rootsOfUnityEquivNthRoots_symm_apply
@[simp]
theorem rootsOfUnityEquivNthRoots_symm_apply (x : { x // x ∈ nthRoots k (1 : R) }) :
    (((rootsOfUnityEquivNthRoots R k).symm x : Rˣ) : R) = (x : R) 
Arguments: {R : Type u_4} {k : ℕ+} [CommRing R] [IsDomain R] (x : { x // x ∈ Polynomial.nthRoots (↑k) 1 })
Goal: ↑↑((rootsOfUnityEquivNthRoots R k).symm x) = ↑x
-- card_rootsOfUnity
theorem card_rootsOfUnity : Fintype.card (rootsOfUnity k R) ≤ k 
Arguments: (R : Type u_4) (k : ℕ+) [CommRing R] [IsDomain R]
Goal: Fintype.card ↥(rootsOfUnity k R) ≤ ↑k
-- map_rootsOfUnity_eq_pow_self
theorem map_rootsOfUnity_eq_pow_self [FunLike F R R] [RingHomClass F R R] (σ : F)
    (ζ : rootsOfUnity k R) :
    ∃ m : ℕ, σ (ζ : Rˣ) = ((ζ : Rˣ) : R) ^ m 
Arguments: {R : Type u_4} {F : Type u_6} {k : ℕ+} [CommRing R] [IsDomain R] [FunLike F R R] [RingHomClass F R R] (σ : F) (ζ : ↥(rootsOfUnity k R))
Goal: ∃ m, σ ↑↑ζ = ↑↑ζ ^ m
-- mem_rootsOfUnity_prime_pow_mul_iff
theorem mem_rootsOfUnity_prime_pow_mul_iff (p k : ℕ) (m : ℕ+) [ExpChar R p]
    {ζ : Rˣ} : ζ ∈ rootsOfUnity (⟨p, expChar_pos R p⟩ ^ k * m) R ↔ ζ ∈ rootsOfUnity m R 
Arguments: (R : Type u_4) [CommRing R] [IsReduced R] (p k : ℕ) (m : ℕ+) [ExpChar R p] {ζ : Rˣ}
Goal: ζ ∈ rootsOfUnity (⟨p, ⋯⟩ ^ k * m) R ↔ ζ ∈ rootsOfUnity m R
-- mem_rootsOfUnity_prime_pow_mul_iff'
@[simp]
theorem mem_rootsOfUnity_prime_pow_mul_iff' (p k : ℕ) (m : ℕ+) [ExpChar R p]
    {ζ : Rˣ} : ζ ^ (p ^ k * ↑m) = 1 ↔ ζ ∈ rootsOfUnity m R 
Arguments: (R : Type u_4) [CommRing R] [IsReduced R] (p k : ℕ) (m : ℕ+) [ExpChar R p] {ζ : Rˣ}
Goal: ζ ^ (p ^ k * ↑m) = 1 ↔ ζ ∈ rootsOfUnity m R
-- IsPrimitiveRoot.iff_def
@[mk_iff IsPrimitiveRoot.iff_def]
structure IsPrimitiveRoot (ζ : M) (k : ℕ) : Prop where
  pow_eq_one : ζ ^ (k : ℕ) = 1
  dvd_of_pow_eq_one : ∀ l : ℕ, ζ ^ l = 1 → k ∣ l
Arguments: {M : Type u_1} [CommMonoid M] (ζ : M) (k : ℕ)
Goal: IsPrimitiveRoot ζ k ↔ ζ ^ k = 1 ∧ ∀ (l : ℕ), ζ ^ l = 1 → k ∣ l
-- IsPrimitiveRoot.dvd_of_pow_eq_one
@[mk_iff IsPrimitiveRoot.iff_def]
structure IsPrimitiveRoot (ζ : M) (k : ℕ) : Prop where
  pow_eq_one : ζ ^ (k : ℕ) = 1
  dvd_of_pow_eq_one : ∀ l : ℕ, ζ ^ l = 1 → k ∣ l
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M} {k : ℕ} (self : IsPrimitiveRoot ζ k) (l : ℕ)
Goal: ζ ^ l = 1 → k ∣ l
-- IsPrimitiveRoot.pow_eq_one
@[mk_iff IsPrimitiveRoot.iff_def]
structure IsPrimitiveRoot (ζ : M) (k : ℕ) : Prop where
  pow_eq_one : ζ ^ (k : ℕ) = 1
  dvd_of_pow_eq_one : ∀ l : ℕ, ζ ^ l = 1 → k ∣ l
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M} {k : ℕ} (self : IsPrimitiveRoot ζ k)
Goal: ζ ^ k = 1
-- IsPrimitiveRoot.val_inv_toRootsOfUnity_coe
@[simps!]
def IsPrimitiveRoot.toRootsOfUnity {μ : M} {n : ℕ+} (h : IsPrimitiveRoot μ n) : rootsOfUnity n M 
Arguments: {M : Type u_1} [CommMonoid M] {μ : M} {n : ℕ+} (h : IsPrimitiveRoot μ ↑n)
Goal: ↑(↑h.toRootsOfUnity)⁻¹ = μ ^ (↑n - 1)
-- IsPrimitiveRoot.val_toRootsOfUnity_coe
@[simps!]
def IsPrimitiveRoot.toRootsOfUnity {μ : M} {n : ℕ+} (h : IsPrimitiveRoot μ n) : rootsOfUnity n M 
Arguments: {M : Type u_1} [CommMonoid M] {μ : M} {n : ℕ+} (h : IsPrimitiveRoot μ ↑n)
Goal: ↑↑h.toRootsOfUnity = μ
-- mem_primitiveRoots
@[simp]
theorem mem_primitiveRoots {ζ : R} (h0 : 0 < k) : ζ ∈ primitiveRoots k R ↔ IsPrimitiveRoot ζ k 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] [IsDomain R] {ζ : R} (h0 : 0 < k)
Goal: ζ ∈ primitiveRoots k R ↔ IsPrimitiveRoot ζ k
-- primitiveRoots_zero
@[simp]
theorem primitiveRoots_zero : primitiveRoots 0 R = ∅ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R]
Goal: primitiveRoots 0 R = ∅
-- isPrimitiveRoot_of_mem_primitiveRoots
theorem isPrimitiveRoot_of_mem_primitiveRoots {ζ : R} (h : ζ ∈ primitiveRoots k R) :
    IsPrimitiveRoot ζ k 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] [IsDomain R] {ζ : R} (h : ζ ∈ primitiveRoots k R)
Goal: IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.mk_of_lt
theorem mk_of_lt (ζ : M) (hk : 0 < k) (h1 : ζ ^ k = 1) (h : ∀ l : ℕ, 0 < l → l < k → ζ ^ l ≠ 1) :
    IsPrimitiveRoot ζ k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} (ζ : M) (hk : 0 < k) (h1 : ζ ^ k = 1) (h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1)
Goal: IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.of_subsingleton
@[nontriviality]
theorem of_subsingleton [Subsingleton M] (x : M) : IsPrimitiveRoot x 1 
Arguments: {M : Type u_1} [CommMonoid M] [Subsingleton M] (x : M)
Goal: IsPrimitiveRoot x 1
-- IsPrimitiveRoot.pow_eq_one_iff_dvd
theorem pow_eq_one_iff_dvd (l : ℕ) : ζ ^ l = 1 ↔ k ∣ l 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (l : ℕ)
Goal: ζ ^ l = 1 ↔ k ∣ l
-- IsPrimitiveRoot.isUnit
theorem isUnit (h : IsPrimitiveRoot ζ k) (h0 : 0 < k) : IsUnit ζ 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (h0 : 0 < k)
Goal: IsUnit ζ
-- IsPrimitiveRoot.pow_ne_one_of_pos_of_lt
theorem pow_ne_one_of_pos_of_lt (h0 : 0 < l) (hl : l < k) : ζ ^ l ≠ 1 
Arguments: {M : Type u_1} [CommMonoid M] {k l : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (h0 : 0 < l) (hl : l < k)
Goal: ζ ^ l ≠ 1
-- IsPrimitiveRoot.ne_one
theorem ne_one (hk : 1 < k) : ζ ≠ 1 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (hk : 1 < k)
Goal: ζ ≠ 1
-- IsPrimitiveRoot.pow_inj
theorem pow_inj (h : IsPrimitiveRoot ζ k) ⦃i j : ℕ⦄ (hi : i < k) (hj : j < k) (H : ζ ^ i = ζ ^ j) :
    i = j 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) ⦃i j : ℕ⦄ (hi : i < k) (hj : j < k) (H : ζ ^ i = ζ ^ j)
Goal: i = j
-- IsPrimitiveRoot.one
theorem one : IsPrimitiveRoot (1 : M) 1 
Arguments: {M : Type u_1} [CommMonoid M]
Goal: IsPrimitiveRoot 1 1
-- IsPrimitiveRoot.one_right_iff
@[simp]
theorem one_right_iff : IsPrimitiveRoot ζ 1 ↔ ζ = 1 
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M}
Goal: IsPrimitiveRoot ζ 1 ↔ ζ = 1
-- IsPrimitiveRoot.coe_submonoidClass_iff
@[simp]
theorem coe_submonoidClass_iff {M B : Type*} [CommMonoid M] [SetLike B M] [SubmonoidClass B M]
    {N : B} {ζ : N} : IsPrimitiveRoot (ζ : M) k ↔ IsPrimitiveRoot ζ k 
Arguments: {k : ℕ} {M : Type u_7} {B : Type u_8} [CommMonoid M] [SetLike B M] [SubmonoidClass B M] {N : B} {ζ : ↥N}
Goal: IsPrimitiveRoot (↑ζ) k ↔ IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.coe_units_iff
@[simp]
theorem coe_units_iff {ζ : Mˣ} : IsPrimitiveRoot (ζ : M) k ↔ IsPrimitiveRoot ζ k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : Mˣ}
Goal: IsPrimitiveRoot (↑ζ) k ↔ IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.isUnit_unit
lemma isUnit_unit {ζ : M} {n} (hn) (hζ : IsPrimitiveRoot ζ n) :
    IsPrimitiveRoot (hζ.isUnit hn).unit n 
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M} {n : ℕ} (hn : 0 < n) (hζ : IsPrimitiveRoot ζ n)
Goal: IsPrimitiveRoot ⋯.unit n
-- IsPrimitiveRoot.isUnit_unit'
lemma isUnit_unit' {ζ : G} {n} (hn) (hζ : IsPrimitiveRoot ζ n) :
    IsPrimitiveRoot (hζ.isUnit hn).unit' n 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {ζ : G} {n : ℕ} (hn : 0 < n) (hζ : IsPrimitiveRoot ζ n)
Goal: IsPrimitiveRoot ⋯.unit' n
-- IsPrimitiveRoot.pow_of_coprime
theorem pow_of_coprime (i : ℕ) (hi : i.Coprime k) : IsPrimitiveRoot (ζ ^ i) k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (i : ℕ) (hi : i.Coprime k)
Goal: IsPrimitiveRoot (ζ ^ i) k
-- IsPrimitiveRoot.pow_of_prime
theorem pow_of_prime (h : IsPrimitiveRoot ζ k) {p : ℕ} (hprime : Nat.Prime p) (hdiv : ¬p ∣ k) :
    IsPrimitiveRoot (ζ ^ p) k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) {p : ℕ} (hprime : Nat.Prime p) (hdiv : ¬p ∣ k)
Goal: IsPrimitiveRoot (ζ ^ p) k
-- IsPrimitiveRoot.pow_iff_coprime
theorem pow_iff_coprime (h : IsPrimitiveRoot ζ k) (h0 : 0 < k) (i : ℕ) :
    IsPrimitiveRoot (ζ ^ i) k ↔ i.Coprime k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) (h0 : 0 < k) (i : ℕ)
Goal: IsPrimitiveRoot (ζ ^ i) k ↔ i.Coprime k
-- IsPrimitiveRoot.orderOf
protected theorem orderOf (ζ : M) : IsPrimitiveRoot ζ (orderOf ζ) 
Arguments: {M : Type u_1} [CommMonoid M] (ζ : M)
Goal: IsPrimitiveRoot ζ (orderOf ζ)
-- IsPrimitiveRoot.unique
theorem unique {ζ : M} (hk : IsPrimitiveRoot ζ k) (hl : IsPrimitiveRoot ζ l) : k = l 
Arguments: {M : Type u_1} [CommMonoid M] {k l : ℕ} {ζ : M} (hk : IsPrimitiveRoot ζ k) (hl : IsPrimitiveRoot ζ l)
Goal: k = l
-- IsPrimitiveRoot.eq_orderOf
theorem eq_orderOf : k = orderOf ζ 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k)
Goal: k = orderOf ζ
-- IsPrimitiveRoot.iff
protected theorem iff (hk : 0 < k) :
    IsPrimitiveRoot ζ k ↔ ζ ^ k = 1 ∧ ∀ l : ℕ, 0 < l → l < k → ζ ^ l ≠ 1 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (hk : 0 < k)
Goal: IsPrimitiveRoot ζ k ↔ ζ ^ k = 1 ∧ ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
-- IsPrimitiveRoot.not_iff
protected theorem not_iff : ¬IsPrimitiveRoot ζ k ↔ orderOf ζ ≠ k 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M}
Goal: ¬IsPrimitiveRoot ζ k ↔ orderOf ζ ≠ k
-- IsPrimitiveRoot.pow_mul_pow_lcm
theorem pow_mul_pow_lcm {ζ' : M} {k' : ℕ} (hζ : IsPrimitiveRoot ζ k) (hζ' : IsPrimitiveRoot ζ' k')
    (hk : k ≠ 0) (hk' : k' ≠ 0) :
    IsPrimitiveRoot
      (ζ ^ (k / Nat.factorizationLCMLeft k k') * ζ' ^ (k' / Nat.factorizationLCMRight k k'))
      (Nat.lcm k k') 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ ζ' : M} {k' : ℕ} (hζ : IsPrimitiveRoot ζ k) (hζ' : IsPrimitiveRoot ζ' k') (hk : k ≠ 0) (hk' : k' ≠ 0)
Goal: IsPrimitiveRoot (ζ ^ (k / k.factorizationLCMLeft k') * ζ' ^ (k' / k.factorizationLCMRight k')) (k.lcm k')
-- IsPrimitiveRoot.pow_of_dvd
theorem pow_of_dvd (h : IsPrimitiveRoot ζ k) {p : ℕ} (hp : p ≠ 0) (hdiv : p ∣ k) :
    IsPrimitiveRoot (ζ ^ p) (k / p) 
Arguments: {M : Type u_1} [CommMonoid M] {k : ℕ} {ζ : M} (h : IsPrimitiveRoot ζ k) {p : ℕ} (hp : p ≠ 0) (hdiv : p ∣ k)
Goal: IsPrimitiveRoot (ζ ^ p) (k / p)
-- IsPrimitiveRoot.mem_rootsOfUnity
protected theorem mem_rootsOfUnity {ζ : Mˣ} {n : ℕ+} (h : IsPrimitiveRoot ζ n) :
    ζ ∈ rootsOfUnity n M 
Arguments: {M : Type u_1} [CommMonoid M] {ζ : Mˣ} {n : ℕ+} (h : IsPrimitiveRoot ζ ↑n)
Goal: ζ ∈ rootsOfUnity n M