ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- IsPrimitiveRoot.pow
theorem pow {n : ℕ} {a b : ℕ} (hn : 0 < n) (h : IsPrimitiveRoot ζ n) (hprod : n = a * b) :
    IsPrimitiveRoot (ζ ^ a) b 
Arguments: {M : Type u_1} [CommMonoid M] {ζ : M} {n a b : ℕ} (hn : 0 < n) (h : IsPrimitiveRoot ζ n) (hprod : n = a * b)
Goal: IsPrimitiveRoot (ζ ^ a) b
-- IsPrimitiveRoot.injOn_pow
lemma injOn_pow {n : ℕ} {ζ : M} (hζ : IsPrimitiveRoot ζ n) :
    Set.InjOn (ζ ^ ·) (Finset.range n) 
Arguments: {M : Type u_1} [CommMonoid M] {n : ℕ} {ζ : M} (hζ : IsPrimitiveRoot ζ n)
Goal: Set.InjOn (fun x => ζ ^ x) ↑(Finset.range n)
-- IsPrimitiveRoot.map_of_injective
theorem map_of_injective [MonoidHomClass F M N] (h : IsPrimitiveRoot ζ k) (hf : Injective f) :
    IsPrimitiveRoot (f ζ) k 
Arguments: {M : Type u_1} {N : Type u_2} {F : Type u_6} [CommMonoid M] [CommMonoid N] {k : ℕ} {ζ : M} {f : F} [FunLike F M N] [MonoidHomClass F M N] (h : IsPrimitiveRoot ζ k) (hf : Function.Injective ⇑f)
Goal: IsPrimitiveRoot (f ζ) k
-- IsPrimitiveRoot.of_map_of_injective
theorem of_map_of_injective [MonoidHomClass F M N] (h : IsPrimitiveRoot (f ζ) k)
    (hf : Injective f) : IsPrimitiveRoot ζ k 
Arguments: {M : Type u_1} {N : Type u_2} {F : Type u_6} [CommMonoid M] [CommMonoid N] {k : ℕ} {ζ : M} {f : F} [FunLike F M N] [MonoidHomClass F M N] (h : IsPrimitiveRoot (f ζ) k) (hf : Function.Injective ⇑f)
Goal: IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.map_iff_of_injective
theorem map_iff_of_injective [MonoidHomClass F M N] (hf : Injective f) :
    IsPrimitiveRoot (f ζ) k ↔ IsPrimitiveRoot ζ k 
Arguments: {M : Type u_1} {N : Type u_2} {F : Type u_6} [CommMonoid M] [CommMonoid N] {k : ℕ} {ζ : M} {f : F} [FunLike F M N] [MonoidHomClass F M N] (hf : Function.Injective ⇑f)
Goal: IsPrimitiveRoot (f ζ) k ↔ IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.zero
theorem zero [Nontrivial M₀] : IsPrimitiveRoot (0 : M₀) 0 
Arguments: {M₀ : Type u_7} [CommMonoidWithZero M₀] [Nontrivial M₀]
Goal: IsPrimitiveRoot 0 0
-- IsPrimitiveRoot.ne_zero
protected theorem ne_zero [Nontrivial M₀] {ζ : M₀} (h : IsPrimitiveRoot ζ k) : k ≠ 0 → ζ ≠ 0 
Arguments: {k : ℕ} {M₀ : Type u_7} [CommMonoidWithZero M₀] [Nontrivial M₀] {ζ : M₀} (h : IsPrimitiveRoot ζ k)
Goal: k ≠ 0 → ζ ≠ 0
-- IsPrimitiveRoot.injOn_pow_mul
lemma injOn_pow_mul {n : ℕ} {ζ : M₀} (hζ : IsPrimitiveRoot ζ n)
    {α : M₀} (hα : α ≠ 0) :
    Set.InjOn (ζ ^ · * α) (Finset.range n) 
Arguments: {M₀ : Type u_7} [CancelCommMonoidWithZero M₀] {n : ℕ} {ζ : M₀} (hζ : IsPrimitiveRoot ζ n) {α : M₀} (hα : α ≠ 0)
Goal: Set.InjOn (fun x => ζ ^ x * α) ↑(Finset.range n)
-- IsPrimitiveRoot.zpow_eq_one
theorem zpow_eq_one (h : IsPrimitiveRoot ζ k) : ζ ^ (k : ℤ) = 1 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {k : ℕ} {ζ : G} (h : IsPrimitiveRoot ζ k)
Goal: ζ ^ ↑k = 1
-- IsPrimitiveRoot.zpow_eq_one_iff_dvd
theorem zpow_eq_one_iff_dvd (h : IsPrimitiveRoot ζ k) (l : ℤ) : ζ ^ l = 1 ↔ (k : ℤ) ∣ l 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {k : ℕ} {ζ : G} (h : IsPrimitiveRoot ζ k) (l : ℤ)
Goal: ζ ^ l = 1 ↔ ↑k ∣ l
-- IsPrimitiveRoot.inv
theorem inv (h : IsPrimitiveRoot ζ k) : IsPrimitiveRoot ζ⁻¹ k 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {k : ℕ} {ζ : G} (h : IsPrimitiveRoot ζ k)
Goal: IsPrimitiveRoot ζ⁻¹ k
-- IsPrimitiveRoot.inv_iff
@[simp]
theorem inv_iff : IsPrimitiveRoot ζ⁻¹ k ↔ IsPrimitiveRoot ζ k 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {k : ℕ} {ζ : G}
Goal: IsPrimitiveRoot ζ⁻¹ k ↔ IsPrimitiveRoot ζ k
-- IsPrimitiveRoot.zpow_of_gcd_eq_one
theorem zpow_of_gcd_eq_one (h : IsPrimitiveRoot ζ k) (i : ℤ) (hi : i.gcd k = 1) :
    IsPrimitiveRoot (ζ ^ i) k 
Arguments: {G : Type u_3} [DivisionCommMonoid G] {k : ℕ} {ζ : G} (h : IsPrimitiveRoot ζ k) (i : ℤ) (hi : i.gcd ↑k = 1)
Goal: IsPrimitiveRoot (ζ ^ i) k
-- IsPrimitiveRoot.sub_one_ne_zero
theorem sub_one_ne_zero : ζ - 1 ≠ 0 
Arguments: {R : Type u_4} [CommRing R] {n : ℕ} (hn : 1 < n) {ζ : R} (hζ : IsPrimitiveRoot ζ n)
Goal: ζ - 1 ≠ 0
-- IsPrimitiveRoot.primitiveRoots_one
@[simp]
theorem primitiveRoots_one : primitiveRoots 1 R = {(1 : R)} 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R]
Goal: primitiveRoots 1 R = {1}
-- IsPrimitiveRoot.neZero'
theorem neZero' {n : ℕ+} (hζ : IsPrimitiveRoot ζ n) : NeZero ((n : ℕ) : R) 
Arguments: {R : Type u_4} {ζ : R} [CommRing R] [IsDomain R] {n : ℕ+} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: NeZero ↑↑n
-- IsPrimitiveRoot.mem_nthRootsFinset
nonrec theorem mem_nthRootsFinset (hζ : IsPrimitiveRoot ζ k) (hk : 0 < k) :
    ζ ∈ nthRootsFinset k R 
Arguments: {R : Type u_4} {k : ℕ} {ζ : R} [CommRing R] [IsDomain R] (hζ : IsPrimitiveRoot ζ k) (hk : 0 < k)
Goal: ζ ∈ Polynomial.nthRootsFinset k R
-- IsPrimitiveRoot.eq_neg_one_of_two_right
theorem eq_neg_one_of_two_right [NoZeroDivisors R] {ζ : R} (h : IsPrimitiveRoot ζ 2) : ζ = -1 
Arguments: {R : Type u_4} [CommRing R] [NoZeroDivisors R] {ζ : R} (h : IsPrimitiveRoot ζ 2)
Goal: ζ = -1
-- IsPrimitiveRoot.neg_one
theorem neg_one (p : ℕ) [Nontrivial R] [h : CharP R p] (hp : p ≠ 2) :
    IsPrimitiveRoot (-1 : R) 2 
Arguments: {R : Type u_4} [CommRing R] (p : ℕ) [Nontrivial R] [h : CharP R p] (hp : p ≠ 2)
Goal: IsPrimitiveRoot (-1) 2
-- IsPrimitiveRoot.geom_sum_eq_zero
theorem geom_sum_eq_zero [IsDomain R] {ζ : R} (hζ : IsPrimitiveRoot ζ k) (hk : 1 < k) :
    ∑ i ∈ range k, ζ ^ i = 0 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] [IsDomain R] {ζ : R} (hζ : IsPrimitiveRoot ζ k) (hk : 1 < k)
Goal: ∑ i ∈ Finset.range k, ζ ^ i = 0
-- IsPrimitiveRoot.pow_sub_one_eq
theorem pow_sub_one_eq [IsDomain R] {ζ : R} (hζ : IsPrimitiveRoot ζ k) (hk : 1 < k) :
    ζ ^ k.pred = -∑ i ∈ range k.pred, ζ ^ i 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] [IsDomain R] {ζ : R} (hζ : IsPrimitiveRoot ζ k) (hk : 1 < k)
Goal: ζ ^ k.pred = -∑ i ∈ Finset.range k.pred, ζ ^ i
-- IsPrimitiveRoot.zmodEquivZPowers_apply_coe_int
@[simp]
theorem zmodEquivZPowers_apply_coe_int (i : ℤ) :
    h.zmodEquivZPowers i = Additive.ofMul (⟨ζ ^ i, i, rfl⟩ : Subgroup.zpowers ζ) 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℤ)
Goal: h.zmodEquivZPowers ↑i = Additive.ofMul ⟨ζ ^ i, ⋯⟩
-- IsPrimitiveRoot.zmodEquivZPowers_apply_coe_nat
@[simp]
theorem zmodEquivZPowers_apply_coe_nat (i : ℕ) :
    h.zmodEquivZPowers i = Additive.ofMul (⟨ζ ^ i, i, rfl⟩ : Subgroup.zpowers ζ) 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℕ)
Goal: h.zmodEquivZPowers ↑i = Additive.ofMul ⟨ζ ^ i, ⋯⟩
-- IsPrimitiveRoot.zmodEquivZPowers_symm_apply_zpow
@[simp]
theorem zmodEquivZPowers_symm_apply_zpow (i : ℤ) :
    h.zmodEquivZPowers.symm (Additive.ofMul (⟨ζ ^ i, i, rfl⟩ : Subgroup.zpowers ζ)) = i 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℤ)
Goal: h.zmodEquivZPowers.symm (Additive.ofMul ⟨ζ ^ i, ⋯⟩) = ↑i
-- IsPrimitiveRoot.zmodEquivZPowers_symm_apply_zpow'
@[simp]
theorem zmodEquivZPowers_symm_apply_zpow' (i : ℤ) : h.zmodEquivZPowers.symm ⟨ζ ^ i, i, rfl⟩ = i 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℤ)
Goal: h.zmodEquivZPowers.symm ⟨ζ ^ i, ⋯⟩ = ↑i
-- IsPrimitiveRoot.zmodEquivZPowers_symm_apply_pow
@[simp]
theorem zmodEquivZPowers_symm_apply_pow (i : ℕ) :
    h.zmodEquivZPowers.symm (Additive.ofMul (⟨ζ ^ i, i, rfl⟩ : Subgroup.zpowers ζ)) = i 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℕ)
Goal: h.zmodEquivZPowers.symm (Additive.ofMul ⟨ζ ^ i, ⋯⟩) = ↑i
-- IsPrimitiveRoot.zmodEquivZPowers_symm_apply_pow'
@[simp]
theorem zmodEquivZPowers_symm_apply_pow' (i : ℕ) : h.zmodEquivZPowers.symm ⟨ζ ^ i, i, rfl⟩ = i 
Arguments: {R : Type u_4} {k : ℕ} [CommRing R] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) (i : ℕ)
Goal: h.zmodEquivZPowers.symm ⟨ζ ^ i, ⋯⟩ = ↑i
-- IsPrimitiveRoot.zpowers_eq
theorem zpowers_eq {k : ℕ+} {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) :
    Subgroup.zpowers ζ = rootsOfUnity k R 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ+} {ζ : Rˣ} (h : IsPrimitiveRoot ζ ↑k)
Goal: Subgroup.zpowers ζ = rootsOfUnity k R
-- IsPrimitiveRoot.map_rootsOfUnity
lemma map_rootsOfUnity {S F} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S]
    {ζ : R} {n : ℕ+} (hζ : IsPrimitiveRoot ζ n) {f : F} (hf : Function.Injective f) :
    (rootsOfUnity n R).map (Units.map f) = rootsOfUnity n S 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {S : Type u_7} {F : Type u_8} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S] {ζ : R} {n : ℕ+} (hζ : IsPrimitiveRoot ζ ↑n) {f : F} (hf : Function.Injective ⇑f)
Goal: Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S
-- rootsOfUnityEquivOfPrimitiveRoots_apply_coe_inv_val
@[simps! (config := .lemmasOnly) apply_coe_val apply_coe_inv_val]
noncomputable
def _root_.rootsOfUnityEquivOfPrimitiveRoots {S F} [CommRing S] [IsDomain S]
    [FunLike F R S] [MonoidHomClass F R S]
    {n : ℕ+} {f : F} (hf : Function.Injective f) (hζ : (primitiveRoots n R).Nonempty) :
    (rootsOfUnity n R) ≃* rootsOfUnity n S 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {S : Type u_7} {F : Type u_8} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S] {n : ℕ+} {f : F} (hf : Function.Injective ⇑f) (hζ : (primitiveRoots (↑n) R).Nonempty)
Goal: ∀ (a : ↥(rootsOfUnity n R)), ⋯ = ⋯
-- val_rootsOfUnityEquivOfPrimitiveRoots_apply_coe
@[simps! (config := .lemmasOnly) apply_coe_val apply_coe_inv_val]
noncomputable
def _root_.rootsOfUnityEquivOfPrimitiveRoots {S F} [CommRing S] [IsDomain S]
    [FunLike F R S] [MonoidHomClass F R S]
    {n : ℕ+} {f : F} (hf : Function.Injective f) (hζ : (primitiveRoots n R).Nonempty) :
    (rootsOfUnity n R) ≃* rootsOfUnity n S 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {S : Type u_7} {F : Type u_8} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S] {n : ℕ+} {f : F} (hf : Function.Injective ⇑f) (hζ : (primitiveRoots (↑n) R).Nonempty)
Goal: ∀ (a : ↥(rootsOfUnity n R)), ↑↑((rootsOfUnityEquivOfPrimitiveRoots hf hζ) a) = f ↑↑a
-- rootsOfUnityEquivOfPrimitiveRoots_symm_apply
lemma _root_.rootsOfUnityEquivOfPrimitiveRoots_symm_apply
    {S F} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S]
    {n : ℕ+} {f : F} (hf : Function.Injective f) (hζ : (primitiveRoots n R).Nonempty) (η) :
    f ((rootsOfUnityEquivOfPrimitiveRoots hf hζ).symm η : Rˣ) = (η : Sˣ) 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {S : Type u_7} {F : Type u_8} [CommRing S] [IsDomain S] [FunLike F R S] [MonoidHomClass F R S] {n : ℕ+} {f : F} (hf : Function.Injective ⇑f) (hζ : (primitiveRoots (↑n) R).Nonempty) (η : ↥(rootsOfUnity n S))
Goal: f ↑↑((rootsOfUnityEquivOfPrimitiveRoots hf hζ).symm η) = ↑↑η
-- IsPrimitiveRoot.eq_pow_of_mem_rootsOfUnity
theorem eq_pow_of_mem_rootsOfUnity {k : ℕ+} {ζ ξ : Rˣ} (h : IsPrimitiveRoot ζ k)
    (hξ : ξ ∈ rootsOfUnity k R) : ∃ (i : ℕ), i < k ∧ ζ ^ i = ξ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ+} {ζ ξ : Rˣ} (h : IsPrimitiveRoot ζ ↑k) (hξ : ξ ∈ rootsOfUnity k R)
Goal: ∃ i < ↑k, ζ ^ i = ξ
-- IsPrimitiveRoot.eq_pow_of_mem_rootsOfUnity'
lemma eq_pow_of_mem_rootsOfUnity' {k : ℕ} (hk : 0 < k) {ζ : R} (hζ : IsPrimitiveRoot ζ k) {ξ : Rˣ}
    (hξ : ξ ∈ rootsOfUnity (⟨k, hk⟩ : ℕ+) R) :
    ∃ i < k, ζ ^ i = ξ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ} (hk : 0 < k) {ζ : R} (hζ : IsPrimitiveRoot ζ k) {ξ : Rˣ} (hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R)
Goal: ∃ i < k, ζ ^ i = ↑ξ
-- IsPrimitiveRoot.eq_pow_of_pow_eq_one
theorem eq_pow_of_pow_eq_one {k : ℕ} {ζ ξ : R} (h : IsPrimitiveRoot ζ k) (hξ : ξ ^ k = 1)
    (h0 : 0 < k) : ∃ i < k, ζ ^ i = ξ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ} {ζ ξ : R} (h : IsPrimitiveRoot ζ k) (hξ : ξ ^ k = 1) (h0 : 0 < k)
Goal: ∃ i < k, ζ ^ i = ξ
-- IsPrimitiveRoot.isPrimitiveRoot_iff'
theorem isPrimitiveRoot_iff' {k : ℕ+} {ζ ξ : Rˣ} (h : IsPrimitiveRoot ζ k) :
    IsPrimitiveRoot ξ k ↔ ∃ i < (k : ℕ), i.Coprime k ∧ ζ ^ i = ξ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ+} {ζ ξ : Rˣ} (h : IsPrimitiveRoot ζ ↑k)
Goal: IsPrimitiveRoot ξ ↑k ↔ ∃ i < ↑k, i.Coprime ↑k ∧ ζ ^ i = ξ
-- IsPrimitiveRoot.isPrimitiveRoot_iff
theorem isPrimitiveRoot_iff {k : ℕ} {ζ ξ : R} (h : IsPrimitiveRoot ζ k) (h0 : 0 < k) :
    IsPrimitiveRoot ξ k ↔ ∃ i < k, i.Coprime k ∧ ζ ^ i = ξ 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ} {ζ ξ : R} (h : IsPrimitiveRoot ζ k) (h0 : 0 < k)
Goal: IsPrimitiveRoot ξ k ↔ ∃ i < k, i.Coprime k ∧ ζ ^ i = ξ
-- IsPrimitiveRoot.nthRoots_eq
theorem nthRoots_eq {n : ℕ} {ζ : R} (hζ : IsPrimitiveRoot ζ n)
    {α a : R} (e : α ^ n = a) :
    nthRoots n a = (Multiset.range n).map (ζ ^ · * α) 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {n : ℕ} {ζ : R} (hζ : IsPrimitiveRoot ζ n) {α a : R} (e : α ^ n = a)
Goal: Polynomial.nthRoots n a = Multiset.map (fun x => ζ ^ x * α) (Multiset.range n)
-- IsPrimitiveRoot.card_nthRoots
theorem card_nthRoots {n : ℕ} {ζ : R} (hζ : IsPrimitiveRoot ζ n) (a : R) :
    Multiset.card (nthRoots n a) = if ∃ α, α ^ n = a then n else 0 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {n : ℕ} {ζ : R} (hζ : IsPrimitiveRoot ζ n) (a : R)
Goal: Multiset.card (Polynomial.nthRoots n a) = if ∃ α, α ^ n = a then n else 0
-- IsPrimitiveRoot.card_rootsOfUnity'
theorem card_rootsOfUnity' {n : ℕ+} (h : IsPrimitiveRoot ζ n) :
    Fintype.card (rootsOfUnity n R) = n 
Arguments: {R : Type u_4} [CommRing R] {ζ : Rˣ} [IsDomain R] {n : ℕ+} (h : IsPrimitiveRoot ζ ↑n)
Goal: Fintype.card ↥(rootsOfUnity n R) = ↑n
-- IsPrimitiveRoot.card_rootsOfUnity
theorem card_rootsOfUnity {ζ : R} {n : ℕ+} (h : IsPrimitiveRoot ζ n) :
    Fintype.card (rootsOfUnity n R) = n 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ+} (h : IsPrimitiveRoot ζ ↑n)
Goal: Fintype.card ↥(rootsOfUnity n R) = ↑n
-- IsPrimitiveRoot.card_nthRoots_one
theorem card_nthRoots_one {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    Multiset.card (nthRoots n (1 : R)) = n 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: Multiset.card (Polynomial.nthRoots n 1) = n
-- IsPrimitiveRoot.nthRoots_nodup
theorem nthRoots_nodup {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) {a : R} (ha : a ≠ 0) :
    (nthRoots n a).Nodup 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) {a : R} (ha : a ≠ 0)
Goal: (Polynomial.nthRoots n a).Nodup
-- IsPrimitiveRoot.nthRoots_one_nodup
theorem nthRoots_one_nodup {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    (nthRoots n (1 : R)).Nodup 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: (Polynomial.nthRoots n 1).Nodup
-- IsPrimitiveRoot.card_nthRootsFinset
@[simp]
theorem card_nthRootsFinset {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    (nthRootsFinset n R).card = n 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: (Polynomial.nthRootsFinset n R).card = n
-- IsPrimitiveRoot.card_primitiveRoots
theorem card_primitiveRoots {ζ : R} {k : ℕ} (h : IsPrimitiveRoot ζ k) :
    (primitiveRoots k R).card = φ k 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {k : ℕ} (h : IsPrimitiveRoot ζ k)
Goal: (primitiveRoots k R).card = k.totient
-- IsPrimitiveRoot.disjoint
theorem disjoint {k l : ℕ} (h : k ≠ l) : Disjoint (primitiveRoots k R) (primitiveRoots l R) 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {k l : ℕ} (h : k ≠ l)
Goal: Disjoint (primitiveRoots k R) (primitiveRoots l R)
-- IsPrimitiveRoot.nthRoots_one_eq_biUnion_primitiveRoots'
theorem nthRoots_one_eq_biUnion_primitiveRoots' {ζ : R} {n : ℕ+} (h : IsPrimitiveRoot ζ n) :
    nthRootsFinset n R = (Nat.divisors ↑n).biUnion fun i => primitiveRoots i R 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ+} (h : IsPrimitiveRoot ζ ↑n)
Goal: Polynomial.nthRootsFinset (↑n) R = (↑n).divisors.biUnion fun i => primitiveRoots i R
-- IsPrimitiveRoot.nthRoots_one_eq_biUnion_primitiveRoots
theorem nthRoots_one_eq_biUnion_primitiveRoots {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n) :
    nthRootsFinset n R = (Nat.divisors n).biUnion fun i => primitiveRoots i R 
Arguments: {R : Type u_4} [CommRing R] [IsDomain R] {ζ : R} {n : ℕ} (h : IsPrimitiveRoot ζ n)
Goal: Polynomial.nthRootsFinset n R = n.divisors.biUnion fun i => primitiveRoots i R
-- IsPrimitiveRoot.coe_autToPow_apply
theorem coe_autToPow_apply (f : S ≃ₐ[R] S) :
    (autToPow R hμ f : ZMod n) =
      ((map_rootsOfUnity_eq_pow_self f hμ.toRootsOfUnity).choose : ZMod n) 
Arguments: (R : Type u_4) {S : Type u_5} [CommRing S] [IsDomain S] {μ : S} {n : ℕ+} (hμ : IsPrimitiveRoot μ ↑n) [CommRing R] [Algebra R S] (f : S ≃ₐ[R] S)
Goal: ↑((IsPrimitiveRoot.autToPow R hμ) f) = ↑⋯.choose
-- IsPrimitiveRoot.autToPow_spec
@[simp]
theorem autToPow_spec (f : S ≃ₐ[R] S) : μ ^ (hμ.autToPow R f : ZMod n).val = f μ 
Arguments: (R : Type u_4) {S : Type u_5} [CommRing S] [IsDomain S] {μ : S} {n : ℕ+} (hμ : IsPrimitiveRoot μ ↑n) [CommRing R] [Algebra R S] (f : S ≃ₐ[R] S)
Goal: μ ^ (↑((IsPrimitiveRoot.autToPow R hμ) f)).val = f μ
-- BialgEquiv.toEquiv_injective
theorem toEquiv_injective : Function.Injective (toEquiv : (A ≃ₐc[R] B) → A ≃ B) 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B]
Goal: Function.Injective BialgEquiv.toEquiv
-- BialgEquiv.toEquiv_inj
@[simp]
theorem toEquiv_inj {e₁ e₂ : A ≃ₐc[R] B} : e₁.toEquiv = e₂.toEquiv ↔ e₁ = e₂ 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e₁ e₂ : A ≃ₐc[R] B}
Goal: e₁.toEquiv = e₂.toEquiv ↔ e₁ = e₂
-- BialgEquiv.toBialgHom_injective
theorem toBialgHom_injective : Function.Injective (toBialgHom : (A ≃ₐc[R] B) → A →ₐc[R] B) 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B]
Goal: Function.Injective BialgEquiv.toBialgHom
-- BialgEquiv.toBialgHom_inj
@[simp, norm_cast]
theorem toBialgHom_inj {e₁ e₂ : A ≃ₐc[R] B} : (↑e₁ : A →ₐc[R] B) = e₂ ↔ e₁ = e₂ 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e₁ e₂ : A ≃ₐc[R] B}
Goal: ↑e₁ = ↑e₂ ↔ e₁ = e₂
-- BialgEquiv.coe_mk
@[simp]
theorem coe_mk {f h h₀ h₁ h₂ h₃ h₄ h₅ h₆} :
    (⟨⟨⟨⟨⟨f, h⟩, h₀⟩, h₁, h₂⟩, h₃, h₄, h₅⟩, h₆⟩ : A ≃ₐc[R] B) = f 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {f : A → B} {h : ∀ (x y : A), f (x + y) = f x + f y} {h₀ :
  ∀ (m : R) (x : A),
    { toFun := f, map_add' := h }.toFun (m • x) = (RingHom.id R) m • { toFun := f, map_add' := h }.toFun x} {h₁ : Coalgebra.counit ∘ₗ { toFun := f, map_add' := h, map_smul' := h₀ } = Coalgebra.counit} {h₂ :
  TensorProduct.map { toFun := f, map_add' := h, map_smul' := h₀ } { toFun := f, map_add' := h, map_smul' := h₀ } ∘ₗ
      Coalgebra.comul =
    Coalgebra.comul ∘ₗ { toFun := f, map_add' := h, map_smul' := h₀ }} {h₃ : B → A} {h₄ :
  Function.LeftInverse h₃ { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂ }.toFun} {h₅ :
  Function.RightInverse h₃
    { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂ }.toFun} {h₆ :
  ∀ (x y : A),
    { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂, invFun := h₃, left_inv := h₄,
            right_inv := h₅ }.toFun
        (x * y) =
      { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂, invFun := h₃,
              left_inv := h₄, right_inv := h₅ }.toFun
          x *
        { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂, invFun := h₃,
              left_inv := h₄, right_inv := h₅ }.toFun
          y}
Goal: ⇑{ toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂, invFun := h₃, left_inv := h₄,
      right_inv := h₅, map_mul' := h₆ } =
  f
-- BialgEquiv.coe_coe
@[simp, norm_cast]
theorem coe_coe : ⇑(e : A →ₐc[R] B) = e 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ⇑↑e = ⇑e
-- BialgEquiv.toCoalgEquiv_eq_coe
@[simp]
theorem toCoalgEquiv_eq_coe (f : A ≃ₐc[R] B) : f.toCoalgEquiv = f 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A ≃ₐc[R] B)
Goal: f.toCoalgEquiv = ↑f
-- BialgEquiv.toBialgHom_eq_coe
@[simp]
theorem toBialgHom_eq_coe (f : A ≃ₐc[R] B) : f.toBialgHom = f 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A ≃ₐc[R] B)
Goal: f.toBialgHom = ↑f
-- BialgEquiv.toAlgEquiv_eq_coe
@[simp]
theorem toAlgEquiv_eq_coe (f : A ≃ₐc[R] B) : f.toAlgEquiv = f 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A ≃ₐc[R] B)
Goal: f.toAlgEquiv = ↑f
-- BialgEquiv.coe_toCoalgEquiv
@[simp]
theorem coe_toCoalgEquiv : ⇑(e : A ≃ₐ[R] B) = e 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ⇑↑e = ⇑e
-- BialgEquiv.coe_toBialgHom
@[simp]
theorem coe_toBialgHom : ⇑(e : A →ₐc[R] B) = e 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ⇑↑e = ⇑e
-- BialgEquiv.coe_toAlgEquiv
@[simp]
theorem coe_toAlgEquiv : ⇑(e : A ≃ₐ[R] B) = e 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ⇑↑e = ⇑e
-- BialgEquiv.toCoalgEquiv_toCoalgHom
theorem toCoalgEquiv_toCoalgHom : ((e : A ≃ₐc[R] B) : A →ₗc[R] B) = (e : A →ₐc[R] B) 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ↑e = ↑↑e
-- BialgEquiv.toBialgHom_toAlgHom
theorem toBialgHom_toAlgHom : ((e : A →ₐc[R] B) : A →ₐ[R] B) = e 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₐc[R] B)
Goal: ↑↑e = ↑e
-- BialgEquiv.ext
@[ext]
theorem ext (h : ∀ x, e x = e' x) : e = e' 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₐc[R] B} (h : ∀ (x : A), e x = e' x)
Goal: e = e'
-- BialgEquiv.ext_iff
theorem ext_iff : e = e' ↔ ∀ x, e x = e' x 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₐc[R] B}
Goal: e = e' ↔ ∀ (x : A), e x = e' x
-- BialgEquiv.congr_arg
protected theorem congr_arg {x x'} : x = x' → e x = e x' 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e : A ≃ₐc[R] B} {x x' : A}
Goal: x = x' → e x = e x'
-- BialgEquiv.congr_fun
protected theorem congr_fun (h : e = e') (x : A) : e x = e' x 
Arguments: {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₐc[R] B} (h : e = e') (x : A)
Goal: e x = e' x
-- BialgEquiv.refl_apply
@[refl, simps!]
def refl : A ≃ₐc[R] A 
Arguments: (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] [CoalgebraStruct R A] (a : A)
Goal: (BialgEquiv.refl R A) a = a
-- BialgEquiv.refl_invFun
@[refl, simps!]
def refl : A ≃ₐc[R] A 
Arguments: (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] [CoalgebraStruct R A]
Goal: ∀ (a : A), (BialgEquiv.refl R A).invFun a = a