ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- groupCohomology.map_one_fst_of_isTwoCocycle
theorem map_one_fst_of_isTwoCocycle {f : G × G → A} (hf : IsTwoCocycle f) (g : G) :
    f (1, g) = f (1, 1) 
Arguments: {G : Type u_1} {A : Type u_2} [Monoid G] [AddCommGroup A] [MulAction G A] {f : G × G → A} (hf : groupCohomology.IsTwoCocycle f) (g : G)
Goal: f (1, g) = f (1, 1)
-- groupCohomology.map_one_snd_of_isTwoCocycle
theorem map_one_snd_of_isTwoCocycle {f : G × G → A} (hf : IsTwoCocycle f) (g : G) :
    f (g, 1) = g • f (1, 1) 
Arguments: {G : Type u_1} {A : Type u_2} [Monoid G] [AddCommGroup A] [MulAction G A] {f : G × G → A} (hf : groupCohomology.IsTwoCocycle f) (g : G)
Goal: f (g, 1) = g • f (1, 1)
-- groupCohomology.map_inv_of_isOneCocycle
@[simp] theorem map_inv_of_isOneCocycle {f : G → A} (hf : IsOneCocycle f) (g : G) :
    g • f g⁻¹ = - f g 
Arguments: {G : Type u_1} {A : Type u_2} [Group G] [AddCommGroup A] [MulAction G A] {f : G → A} (hf : groupCohomology.IsOneCocycle f) (g : G)
Goal: g • f g⁻¹ = -f g
-- groupCohomology.smul_map_inv_sub_map_inv_of_isTwoCocycle
theorem smul_map_inv_sub_map_inv_of_isTwoCocycle {f : G × G → A} (hf : IsTwoCocycle f) (g : G) :
    g • f (g⁻¹, g) - f (g, g⁻¹) = f (1, 1) - f (g, 1) 
Arguments: {G : Type u_1} {A : Type u_2} [Group G] [AddCommGroup A] [MulAction G A] {f : G × G → A} (hf : groupCohomology.IsTwoCocycle f) (g : G)
Goal: g • f (g⁻¹, g) - f (g, g⁻¹) = f (1, 1) - f (g, 1)
-- groupCohomology.isOneCocycle_of_oneCocycles
theorem isOneCocycle_of_oneCocycles (f : oneCocycles (Rep.ofDistribMulAction k G A)) :
    IsOneCocycle (A := A) f.1 
Arguments: {k G A : Type u} [CommRing k] [Group G] [AddCommGroup A] [Module k A] [DistribMulAction G A] [SMulCommClass G k A] (f : ↥(groupCohomology.oneCocycles (Rep.ofDistribMulAction k G A)))
Goal: groupCohomology.IsOneCocycle ↑f
-- groupCohomology.isOneCoboundary_of_oneCoboundaries
theorem isOneCoboundary_of_oneCoboundaries (f : oneCoboundaries (Rep.ofDistribMulAction k G A)) :
    IsOneCoboundary (A := A) f.1.1 
Arguments: {k G A : Type u} [CommRing k] [Group G] [AddCommGroup A] [Module k A] [DistribMulAction G A] [SMulCommClass G k A] (f : ↥(groupCohomology.oneCoboundaries (Rep.ofDistribMulAction k G A)))
Goal: groupCohomology.IsOneCoboundary ↑↑f
-- groupCohomology.isTwoCocycle_of_twoCocycles
theorem isTwoCocycle_of_twoCocycles (f : twoCocycles (Rep.ofDistribMulAction k G A)) :
    IsTwoCocycle (A := A) f.1 
Arguments: {k G A : Type u} [CommRing k] [Group G] [AddCommGroup A] [Module k A] [DistribMulAction G A] [SMulCommClass G k A] (f : ↥(groupCohomology.twoCocycles (Rep.ofDistribMulAction k G A)))
Goal: groupCohomology.IsTwoCocycle ↑f
-- groupCohomology.isTwoCoboundary_of_twoCoboundaries
theorem isTwoCoboundary_of_twoCoboundaries (f : twoCoboundaries (Rep.ofDistribMulAction k G A)) :
    IsTwoCoboundary (A := A) f.1.1 
Arguments: {k G A : Type u} [CommRing k] [Group G] [AddCommGroup A] [Module k A] [DistribMulAction G A] [SMulCommClass G k A] (f : ↥(groupCohomology.twoCoboundaries (Rep.ofDistribMulAction k G A)))
Goal: groupCohomology.IsTwoCoboundary ↑↑f
-- groupCohomology.map_one_of_isMulOneCocycle
theorem map_one_of_isMulOneCocycle {f : G → M} (hf : IsMulOneCocycle f) :
    f 1 = 1 
Arguments: {G : Type u_1} {M : Type u_2} [Monoid G] [CommGroup M] [MulAction G M] {f : G → M} (hf : groupCohomology.IsMulOneCocycle f)
Goal: f 1 = 1
-- groupCohomology.map_one_fst_of_isMulTwoCocycle
theorem map_one_fst_of_isMulTwoCocycle {f : G × G → M} (hf : IsMulTwoCocycle f) (g : G) :
    f (1, g) = f (1, 1) 
Arguments: {G : Type u_1} {M : Type u_2} [Monoid G] [CommGroup M] [MulAction G M] {f : G × G → M} (hf : groupCohomology.IsMulTwoCocycle f) (g : G)
Goal: f (1, g) = f (1, 1)
-- groupCohomology.map_one_snd_of_isMulTwoCocycle
theorem map_one_snd_of_isMulTwoCocycle {f : G × G → M} (hf : IsMulTwoCocycle f) (g : G) :
    f (g, 1) = g • f (1, 1) 
Arguments: {G : Type u_1} {M : Type u_2} [Monoid G] [CommGroup M] [MulAction G M] {f : G × G → M} (hf : groupCohomology.IsMulTwoCocycle f) (g : G)
Goal: f (g, 1) = g • f (1, 1)
-- groupCohomology.map_inv_of_isMulOneCocycle
@[simp] theorem map_inv_of_isMulOneCocycle {f : G → M} (hf : IsMulOneCocycle f) (g : G) :
    g • f g⁻¹ = (f g)⁻¹ 
Arguments: {G : Type u_1} {M : Type u_2} [Group G] [CommGroup M] [MulAction G M] {f : G → M} (hf : groupCohomology.IsMulOneCocycle f) (g : G)
Goal: g • f g⁻¹ = (f g)⁻¹
-- groupCohomology.smul_map_inv_div_map_inv_of_isMulTwoCocycle
theorem smul_map_inv_div_map_inv_of_isMulTwoCocycle
    {f : G × G → M} (hf : IsMulTwoCocycle f) (g : G) :
    g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1) 
Arguments: {G : Type u_1} {M : Type u_2} [Group G] [CommGroup M] [MulAction G M] {f : G × G → M} (hf : groupCohomology.IsMulTwoCocycle f) (g : G)
Goal: g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)
-- groupCohomology.isMulOneCocycle_of_oneCocycles
theorem isMulOneCocycle_of_oneCocycles (f : oneCocycles (Rep.ofMulDistribMulAction G M)) :
    IsMulOneCocycle (M := M) (Additive.toMul ∘ f.1) 
Arguments: {G M : Type} [Group G] [CommGroup M] [MulDistribMulAction G M] (f : ↥(groupCohomology.oneCocycles (Rep.ofMulDistribMulAction G M)))
Goal: groupCohomology.IsMulOneCocycle (⇑Additive.toMul ∘ ↑f)
-- groupCohomology.isMulOneCoboundary_of_oneCoboundaries
theorem isMulOneCoboundary_of_oneCoboundaries
    (f : oneCoboundaries (Rep.ofMulDistribMulAction G M)) :
    IsMulOneCoboundary (M := M) (Additive.ofMul ∘ f.1.1) 
Arguments: {G M : Type} [Group G] [CommGroup M] [MulDistribMulAction G M] (f : ↥(groupCohomology.oneCoboundaries (Rep.ofMulDistribMulAction G M)))
Goal: groupCohomology.IsMulOneCoboundary (⇑Additive.ofMul ∘ ↑↑f)
-- groupCohomology.isMulTwoCocycle_of_twoCocycles
theorem isMulTwoCocycle_of_twoCocycles (f : twoCocycles (Rep.ofMulDistribMulAction G M)) :
    IsMulTwoCocycle (M := M) (Additive.toMul ∘ f.1) 
Arguments: {G M : Type} [Group G] [CommGroup M] [MulDistribMulAction G M] (f : ↥(groupCohomology.twoCocycles (Rep.ofMulDistribMulAction G M)))
Goal: groupCohomology.IsMulTwoCocycle (⇑Additive.toMul ∘ ↑f)
-- groupCohomology.isMulTwoCoboundary_of_twoCoboundaries
theorem isMulTwoCoboundary_of_twoCoboundaries
    (f : twoCoboundaries (Rep.ofMulDistribMulAction G M)) :
    IsMulTwoCoboundary (M := M) (Additive.toMul ∘ f.1.1) 
Arguments: {G M : Type} [Group G] [CommGroup M] [MulDistribMulAction G M] (f : ↥(groupCohomology.twoCoboundaries (Rep.ofMulDistribMulAction G M)))
Goal: groupCohomology.IsMulTwoCoboundary (⇑Additive.toMul ∘ ↑↑f)
-- groupCohomology.H0LequivOfIsTrivial_eq_subtype
@[simp] theorem H0LequivOfIsTrivial_eq_subtype [A.IsTrivial] :
    H0LequivOfIsTrivial A = A.ρ.invariants.subtype 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial]
Goal: ↑(groupCohomology.H0LequivOfIsTrivial A) = A.ρ.invariants.subtype
-- groupCohomology.H0LequivOfIsTrivial_apply
theorem H0LequivOfIsTrivial_apply [A.IsTrivial] (x : H0 A) :
    H0LequivOfIsTrivial A x = x 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial] (x : ↥(groupCohomology.H0 A))
Goal: (groupCohomology.H0LequivOfIsTrivial A) x = ↑x
-- groupCohomology.H0LequivOfIsTrivial_symm_apply
@[simp] theorem H0LequivOfIsTrivial_symm_apply [A.IsTrivial] (x : A) :
    (H0LequivOfIsTrivial A).symm x = x 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial] (x : CoeSort.coe A)
Goal: ↑((groupCohomology.H0LequivOfIsTrivial A).symm x) = x
-- groupCohomology.H1LequivOfIsTrivial_comp_H1_π
theorem H1LequivOfIsTrivial_comp_H1_π [A.IsTrivial] :
    (H1LequivOfIsTrivial A).comp (H1_π A) = oneCocyclesLequivOfIsTrivial A 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial]
Goal: ↑(groupCohomology.H1LequivOfIsTrivial A) ∘ₗ groupCohomology.H1_π A = ↑(groupCohomology.oneCocyclesLequivOfIsTrivial A)
-- groupCohomology.H1LequivOfIsTrivial_H1_π_apply_apply
@[simp] theorem H1LequivOfIsTrivial_H1_π_apply_apply
    [A.IsTrivial] (f : oneCocycles A) (x : Additive G) :
    H1LequivOfIsTrivial A (H1_π A f) x = f.1 (Additive.toMul x) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial] (f : ↥(groupCohomology.oneCocycles A)) (x : Additive G)
Goal: ((groupCohomology.H1LequivOfIsTrivial A) ((groupCohomology.H1_π A) f)) x = ↑f (Additive.toMul x)
-- groupCohomology.H1LequivOfIsTrivial_symm_apply
@[simp] theorem H1LequivOfIsTrivial_symm_apply [A.IsTrivial] (f : Additive G →+ A) :
    (H1LequivOfIsTrivial A).symm f = H1_π A ((oneCocyclesLequivOfIsTrivial A).symm f) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G) [A.IsTrivial] (f : Additive G →+ CoeSort.coe A)
Goal: (groupCohomology.H1LequivOfIsTrivial A).symm f =
  (groupCohomology.H1_π A) ((groupCohomology.oneCocyclesLequivOfIsTrivial A).symm f)
-- groupCohomology.dZero_comp_H0_subtype
lemma dZero_comp_H0_subtype : dZero A ∘ₗ (H0 A).subtype = 0 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomology.dZero A ∘ₗ (groupCohomology.H0 A).subtype = 0
-- groupCohomology.shortComplexH0_exact
lemma shortComplexH0_exact : (shortComplexH0 A).Exact 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.shortComplexH0 A).Exact
-- groupCohomology.dZeroArrowIso_inv_right
@[simps! hom_left hom_right inv_left inv_right]
def dZeroArrowIso : Arrow.mk ((inhomogeneousCochains A).d 0 1) ≅
    Arrow.mk (ModuleCat.ofHom (dZero A)) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.dZeroArrowIso A).inv.right = ↑(groupCohomology.oneCochainsLequiv A).symm
-- groupCohomology.dZeroArrowIso_inv_left
@[simps! hom_left hom_right inv_left inv_right]
def dZeroArrowIso : Arrow.mk ((inhomogeneousCochains A).d 0 1) ≅
    Arrow.mk (ModuleCat.ofHom (dZero A)) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.dZeroArrowIso A).inv.left = ↑(groupCohomology.zeroCochainsLequiv A).symm
-- groupCohomology.dZeroArrowIso_hom_right
@[simps! hom_left hom_right inv_left inv_right]
def dZeroArrowIso : Arrow.mk ((inhomogeneousCochains A).d 0 1) ≅
    Arrow.mk (ModuleCat.ofHom (dZero A)) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.dZeroArrowIso A).hom.right = ↑(groupCohomology.oneCochainsLequiv A)
-- groupCohomology.dZeroArrowIso_hom_left
@[simps! hom_left hom_right inv_left inv_right]
def dZeroArrowIso : Arrow.mk ((inhomogeneousCochains A).d 0 1) ≅
    Arrow.mk (ModuleCat.ofHom (dZero A)) 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.dZeroArrowIso A).hom.left = ↑(groupCohomology.zeroCochainsLequiv A)
-- groupCohomology.isoZeroCocycles_hom_comp_subtype
lemma isoZeroCocycles_hom_comp_subtype :
    (isoZeroCocycles A).hom ≫ A.ρ.invariants.subtype =
      iCocycles A 0 ≫ (zeroCochainsLequiv A).toModuleIso.hom 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.isoZeroCocycles A).hom ≫ A.ρ.invariants.subtype =
  groupCohomology.iCocycles A 0 ≫ (groupCohomology.zeroCochainsLequiv A).toModuleIso.hom
-- groupCohomology.groupCohomologyπ_comp_isoH0_hom
lemma groupCohomologyπ_comp_isoH0_hom  :
    groupCohomologyπ A 0 ≫ (isoH0 A).hom = (isoZeroCocycles A).hom 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomologyπ A 0 ≫ (groupCohomology.isoH0 A).hom = (groupCohomology.isoZeroCocycles A).hom
-- groupCohomology.shortComplexH1Iso_inv
@[simps! hom inv]
def shortComplexH1Iso : (inhomogeneousCochains A).sc' 0 1 2 ≅ shortComplexH1 A 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.shortComplexH1Iso A).inv =
  CategoryTheory.ShortComplex.homMk ↑(groupCohomology.zeroCochainsLequiv A).symm
    ↑(groupCohomology.oneCochainsLequiv A).symm ↑(groupCohomology.twoCochainsLequiv A).symm ⋯ ⋯
-- groupCohomology.shortComplexH1Iso_hom
@[simps! hom inv]
def shortComplexH1Iso : (inhomogeneousCochains A).sc' 0 1 2 ≅ shortComplexH1 A 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.shortComplexH1Iso A).hom =
  { τ₁ := ↑(groupCohomology.zeroCochainsLequiv A), τ₂ := ↑(groupCohomology.oneCochainsLequiv A),
    τ₃ := ↑(groupCohomology.twoCochainsLequiv A), comm₁₂ := ⋯, comm₂₃ := ⋯ }
-- groupCohomology.isoOneCocycles_hom_comp_subtype
lemma isoOneCocycles_hom_comp_subtype :
    (isoOneCocycles A).hom ≫ ModuleCat.ofHom (oneCocycles A).subtype =
      iCocycles A 1 ≫ (oneCochainsLequiv A).toModuleIso.hom 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.isoOneCocycles A).hom ≫ ModuleCat.ofHom (groupCohomology.oneCocycles A).subtype =
  groupCohomology.iCocycles A 1 ≫ (groupCohomology.oneCochainsLequiv A).toModuleIso.hom
-- groupCohomology.toCocycles_comp_isoOneCocycles_hom
lemma toCocycles_comp_isoOneCocycles_hom :
    toCocycles A 0 1 ≫ (isoOneCocycles A).hom =
      (zeroCochainsLequiv A).toModuleIso.hom ≫
        ModuleCat.ofHom (shortComplexH1 A).moduleCatToCycles 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomology.toCocycles A 0 1 ≫ (groupCohomology.isoOneCocycles A).hom =
  (groupCohomology.zeroCochainsLequiv A).toModuleIso.hom ≫
    ModuleCat.ofHom (groupCohomology.shortComplexH1 A).moduleCatToCycles
-- groupCohomology.groupCohomologyπ_comp_isoH1_hom
lemma groupCohomologyπ_comp_isoH1_hom  :
    groupCohomologyπ A 1 ≫ (isoH1 A).hom =
      (isoOneCocycles A).hom ≫ (shortComplexH1 A).moduleCatHomologyπ 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomologyπ A 1 ≫ (groupCohomology.isoH1 A).hom =
  (groupCohomology.isoOneCocycles A).hom ≫ (groupCohomology.shortComplexH1 A).moduleCatHomologyπ
-- groupCohomology.shortComplexH2Iso_inv
@[simps! hom inv]
def shortComplexH2Iso :
    (inhomogeneousCochains A).sc' 1 2 3 ≅ shortComplexH2 A 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.shortComplexH2Iso A).inv =
  CategoryTheory.ShortComplex.homMk ↑(groupCohomology.oneCochainsLequiv A).symm
    ↑(groupCohomology.twoCochainsLequiv A).symm ↑(groupCohomology.threeCochainsLequiv A).symm ⋯ ⋯
-- groupCohomology.shortComplexH2Iso_hom
@[simps! hom inv]
def shortComplexH2Iso :
    (inhomogeneousCochains A).sc' 1 2 3 ≅ shortComplexH2 A 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.shortComplexH2Iso A).hom =
  { τ₁ := ↑(groupCohomology.oneCochainsLequiv A), τ₂ := ↑(groupCohomology.twoCochainsLequiv A),
    τ₃ := ↑(groupCohomology.threeCochainsLequiv A), comm₁₂ := ⋯, comm₂₃ := ⋯ }
-- groupCohomology.isoTwoCocycles_hom_comp_subtype
lemma isoTwoCocycles_hom_comp_subtype :
    (isoTwoCocycles A).hom ≫ ModuleCat.ofHom (twoCocycles A).subtype =
      iCocycles A 2 ≫ (twoCochainsLequiv A).toModuleIso.hom 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: (groupCohomology.isoTwoCocycles A).hom ≫ ModuleCat.ofHom (groupCohomology.twoCocycles A).subtype =
  groupCohomology.iCocycles A 2 ≫ (groupCohomology.twoCochainsLequiv A).toModuleIso.hom
-- groupCohomology.toCocycles_comp_isoTwoCocycles_hom
lemma toCocycles_comp_isoTwoCocycles_hom :
    toCocycles A 1 2 ≫ (isoTwoCocycles A).hom =
      (oneCochainsLequiv A).toModuleIso.hom ≫
        ModuleCat.ofHom (shortComplexH2 A).moduleCatToCycles 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomology.toCocycles A 1 2 ≫ (groupCohomology.isoTwoCocycles A).hom =
  (groupCohomology.oneCochainsLequiv A).toModuleIso.hom ≫
    ModuleCat.ofHom (groupCohomology.shortComplexH2 A).moduleCatToCycles
-- groupCohomology.groupCohomologyπ_comp_isoH2_hom
lemma groupCohomologyπ_comp_isoH2_hom  :
    groupCohomologyπ A 2 ≫ (isoH2 A).hom =
      (isoTwoCocycles A).hom ≫ (shortComplexH2 A).moduleCatHomologyπ 
Arguments: {k G : Type u} [CommRing k] [Group G] (A : Rep k G)
Goal: groupCohomologyπ A 2 ≫ (groupCohomology.isoH2 A).hom =
  (groupCohomology.isoTwoCocycles A).hom ≫ (groupCohomology.shortComplexH2 A).moduleCatHomologyπ
-- IsCyclotomicExtension.zeta_spec
@[simp]
theorem zeta_spec : IsPrimitiveRoot (zeta n A B) n 
Arguments: (n : ℕ+) (A : Type w) (B : Type z) [CommRing A] [CommRing B] [Algebra A B] [IsCyclotomicExtension {n} A B]
Goal: IsPrimitiveRoot (IsCyclotomicExtension.zeta n A B) ↑n
-- IsCyclotomicExtension.aeval_zeta
theorem aeval_zeta [IsDomain B] [NeZero ((n : ℕ) : B)] :
    aeval (zeta n A B) (cyclotomic n A) = 0 
Arguments: (n : ℕ+) (A : Type w) (B : Type z) [CommRing A] [CommRing B] [Algebra A B] [IsCyclotomicExtension {n} A B] [IsDomain B] [NeZero ↑↑n]
Goal: (Polynomial.aeval (IsCyclotomicExtension.zeta n A B)) (Polynomial.cyclotomic (↑n) A) = 0
-- IsCyclotomicExtension.zeta_isRoot
theorem zeta_isRoot [IsDomain B] [NeZero ((n : ℕ) : B)] : IsRoot (cyclotomic n B) (zeta n A B) 
Arguments: (n : ℕ+) (A : Type w) (B : Type z) [CommRing A] [CommRing B] [Algebra A B] [IsCyclotomicExtension {n} A B] [IsDomain B] [NeZero ↑↑n]
Goal: (Polynomial.cyclotomic (↑n) B).IsRoot (IsCyclotomicExtension.zeta n A B)
-- IsCyclotomicExtension.zeta_pow
theorem zeta_pow : zeta n A B ^ (n : ℕ) = 1 
Arguments: (n : ℕ+) (A : Type w) (B : Type z) [CommRing A] [CommRing B] [Algebra A B] [IsCyclotomicExtension {n} A B]
Goal: IsCyclotomicExtension.zeta n A B ^ ↑n = 1
-- IsPrimitiveRoot.powerBasis_gen
@[simps!]
protected noncomputable def powerBasis : PowerBasis K L 
Arguments: {n : ℕ+} (K : Type u) {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: (IsPrimitiveRoot.powerBasis K hζ).gen = ζ
-- IsPrimitiveRoot.powerBasis_dim
@[simps!]
protected noncomputable def powerBasis : PowerBasis K L 
Arguments: {n : ℕ+} (K : Type u) {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: (IsPrimitiveRoot.powerBasis K hζ).dim = (minpoly K ζ).natDegree
-- IsPrimitiveRoot.powerBasis_gen_mem_adjoin_zeta_sub_one
theorem powerBasis_gen_mem_adjoin_zeta_sub_one :
    (hζ.powerBasis K).gen ∈ adjoin K ({ζ - 1} : Set L) 
Arguments: {n : ℕ+} (K : Type u) {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: (IsPrimitiveRoot.powerBasis K hζ).gen ∈ Algebra.adjoin K {ζ - 1}
-- IsPrimitiveRoot.subOnePowerBasis_dim
@[simps!]
noncomputable def subOnePowerBasis : PowerBasis K L 
Arguments: {n : ℕ+} (K : Type u) {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: (IsPrimitiveRoot.subOnePowerBasis K hζ).dim = (minpoly K (ζ - 1)).natDegree
-- IsPrimitiveRoot.subOnePowerBasis_gen
@[simps!]
noncomputable def subOnePowerBasis : PowerBasis K L 
Arguments: {n : ℕ+} (K : Type u) {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n)
Goal: (IsPrimitiveRoot.subOnePowerBasis K hζ).gen = ζ - 1
-- IsPrimitiveRoot.embeddingsEquivPrimitiveRoots_apply_coe
@[simp]
theorem embeddingsEquivPrimitiveRoots_apply_coe (C : Type*) [CommRing C] [IsDomain C] [Algebra K C]
    (hirr : Irreducible (cyclotomic n K)) (φ' : L →ₐ[K] C) :
    (hζ.embeddingsEquivPrimitiveRoots C hirr φ' : C) = φ' ζ 
Arguments: {n : ℕ+} {K : Type u} {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n) (C : Type u_1) [CommRing C] [IsDomain C] [Algebra K C] (hirr : Irreducible (Polynomial.cyclotomic (↑n) K)) (φ' : L →ₐ[K] C)
Goal: ↑((hζ.embeddingsEquivPrimitiveRoots C hirr) φ') = φ' ζ
-- IsCyclotomicExtension.finrank
theorem finrank (hirr : Irreducible (cyclotomic n K)) : finrank K L = (n : ℕ).totient 
Arguments: {n : ℕ+} {K : Type u} (L : Type v) [Field K] [CommRing L] [IsDomain L] [Algebra K L] [IsCyclotomicExtension {n} K L] (hirr : Irreducible (Polynomial.cyclotomic (↑n) K))
Goal: FiniteDimensional.finrank K L = φ ↑n
-- IsPrimitiveRoot.lcm_totient_le_finrank
theorem _root_.IsPrimitiveRoot.lcm_totient_le_finrank [FiniteDimensional K L] {p q : ℕ} {x y : L}
    (hx : IsPrimitiveRoot x p) (hy : IsPrimitiveRoot y q)
    (hirr : Irreducible (cyclotomic (Nat.lcm p q) K)) :
    (Nat.lcm p q).totient ≤ FiniteDimensional.finrank K L 
Arguments: {K : Type u} {L : Type v} [Field K] [CommRing L] [IsDomain L] [Algebra K L] [FiniteDimensional K L] {p q : ℕ} {x y : L} (hx : IsPrimitiveRoot x p) (hy : IsPrimitiveRoot y q) (hirr : Irreducible (Polynomial.cyclotomic (p.lcm q) K))
Goal: φ (p.lcm q) ≤ FiniteDimensional.finrank K L
-- IsPrimitiveRoot.dvd_of_isCyclotomicExtension
theorem dvd_of_isCyclotomicExtension [NumberField K] [IsCyclotomicExtension {n} ℚ K] {ζ : K}
    {l : ℕ} (hζ : IsPrimitiveRoot ζ l) (hl : l ≠ 0) : l ∣ 2 * n 
Arguments: (n : ℕ+) {K : Type u} [Field K] [NumberField K] [IsCyclotomicExtension {n} ℚ K] {ζ : K} {l : ℕ} (hζ : IsPrimitiveRoot ζ l) (hl : l ≠ 0)
Goal: l ∣ 2 * ↑n
-- IsPrimitiveRoot.exists_neg_pow_of_isOfFinOrder
theorem exists_neg_pow_of_isOfFinOrder [NumberField K] [IsCyclotomicExtension {n} ℚ K]
    (hno : Odd (n : ℕ)) {ζ x : K} (hζ : IsPrimitiveRoot ζ n) (hx : IsOfFinOrder x) :
    ∃ r : ℕ, x = (-ζ) ^ r 
Arguments: {n : ℕ+} {K : Type u} [Field K] [NumberField K] [IsCyclotomicExtension {n} ℚ K] (hno : Odd ↑n) {ζ x : K} (hζ : IsPrimitiveRoot ζ ↑n) (hx : IsOfFinOrder x)
Goal: ∃ r, x = (-ζ) ^ r
-- IsPrimitiveRoot.exists_pow_or_neg_mul_pow_of_isOfFinOrder
theorem exists_pow_or_neg_mul_pow_of_isOfFinOrder [NumberField K] [IsCyclotomicExtension {n} ℚ K]
    (hno : Odd (n : ℕ)) {ζ x : K} (hζ : IsPrimitiveRoot ζ n) (hx : IsOfFinOrder x) :
    ∃ r : ℕ, r < n ∧ (x = ζ ^ r ∨ x = -ζ ^ r) 
Arguments: {n : ℕ+} {K : Type u} [Field K] [NumberField K] [IsCyclotomicExtension {n} ℚ K] (hno : Odd ↑n) {ζ x : K} (hζ : IsPrimitiveRoot ζ ↑n) (hx : IsOfFinOrder x)
Goal: ∃ r < ↑n, x = ζ ^ r ∨ x = -ζ ^ r
-- IsPrimitiveRoot.norm_eq_neg_one_pow
theorem norm_eq_neg_one_pow (hζ : IsPrimitiveRoot ζ 2) [IsDomain L] :
    norm K ζ = (-1 : K) ^ finrank K L 
Arguments: {K : Type u} {L : Type v} [CommRing L] {ζ : L} [Field K] [Algebra K L] (hζ : IsPrimitiveRoot ζ 2) [IsDomain L]
Goal: (Algebra.norm K) ζ = (-1) ^ FiniteDimensional.finrank K L
-- IsPrimitiveRoot.norm_eq_one
theorem norm_eq_one [IsDomain L] [IsCyclotomicExtension {n} K L] (hn : n ≠ 2)
    (hirr : Irreducible (cyclotomic n K)) : norm K ζ = 1 
Arguments: {n : ℕ+} {K : Type u} {L : Type v} [CommRing L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n) [Field K] [Algebra K L] [IsDomain L] [IsCyclotomicExtension {n} K L] (hn : n ≠ 2) (hirr : Irreducible (Polynomial.cyclotomic (↑n) K))
Goal: (Algebra.norm K) ζ = 1
-- IsPrimitiveRoot.norm_eq_one_of_linearly_ordered
theorem norm_eq_one_of_linearly_ordered {K : Type*} [LinearOrderedField K] [Algebra K L]
    (hodd : Odd (n : ℕ)) : norm K ζ = 1 
Arguments: {n : ℕ+} {L : Type v} [CommRing L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n) {K : Type u_1} [LinearOrderedField K] [Algebra K L] (hodd : Odd ↑n)
Goal: (Algebra.norm K) ζ = 1
-- IsPrimitiveRoot.norm_of_cyclotomic_irreducible
theorem norm_of_cyclotomic_irreducible [IsDomain L] [IsCyclotomicExtension {n} K L]
    (hirr : Irreducible (cyclotomic n K)) : norm K ζ = ite (n = 2) (-1) 1 
Arguments: {n : ℕ+} (A : Type w) (B : Type z) {K : Type u} {L : Type v} [CommRing A] [CommRing B] [Algebra A B] [IsCyclotomicExtension {n} A B] [CommRing L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n) [Field K] [Algebra K L] [IsDomain L] [IsCyclotomicExtension {n} K L] (hirr : Irreducible (Polynomial.cyclotomic (↑n) K))
Goal: (Algebra.norm K) ζ = if n = 2 then -1 else 1
-- IsPrimitiveRoot.sub_one_norm_eq_eval_cyclotomic
theorem sub_one_norm_eq_eval_cyclotomic [IsCyclotomicExtension {n} K L] (h : 2 < (n : ℕ))
    (hirr : Irreducible (cyclotomic n K)) : norm K (ζ - 1) = ↑(eval 1 (cyclotomic n ℤ)) 
Arguments: {n : ℕ+} {K : Type u} {L : Type v} [Field L] {ζ : L} (hζ : IsPrimitiveRoot ζ ↑n) [Field K] [Algebra K L] [IsCyclotomicExtension {n} K L] (h : 2 < ↑n) (hirr : Irreducible (Polynomial.cyclotomic (↑n) K))
Goal: (Algebra.norm K) (ζ - 1) = ↑(Polynomial.eval 1 (Polynomial.cyclotomic ↑n ℤ))