Cyclic groups #
IsCyclic is a predicate on a group stating that the group is cyclic.
For the concrete cyclic group of order n, see Data.ZMod.Basic.
isCyclic_of_prime_cardproves that a finite group of prime order is cyclic.
cyclic group
theorem
IsCyclic.exists_generator
{α : Type u_1}
[Group α]
[IsCyclic α]
:
∃ (g : α), ∀ (x : α), x ∈ Subgroup.zpowers g
theorem
IsAddCyclic.exists_generator
{α : Type u_1}
[AddGroup α]
[IsAddCyclic α]
:
∃ (g : α), ∀ (x : α), x ∈ AddSubgroup.zmultiples g
theorem
AddSubgroup.isAddCyclic_iff_exists_zmultiples_eq_top
{α : Type u_1}
[AddGroup α]
(H : AddSubgroup α)
:
instance
AddSubgroup.isAddCyclic_zmultiples
{G : Type u_2}
[AddGroup G]
(g : G)
:
IsAddCyclic ↥(zmultiples g)
@[instance 100]
@[instance 100]
@[simp]
@[simp]
instance
IsCyclic.commutative
{α : Type u_1}
[Group α]
[IsCyclic α]
:
Std.Commutative fun (x1 x2 : α) => x1 * x2
instance
IsAddCyclic.commutative
{α : Type u_1}
[AddGroup α]
[IsAddCyclic α]
:
Std.Commutative fun (x1 x2 : α) => x1 + x2
@[implicit_reducible]
A cyclic group is always commutative. This is not an instance because often we have
a better proof of AddCommGroup.
Equations
- IsAddCyclic.addCommGroup = { toAddGroup := hg, add_comm := ⋯ }
Instances For
instance
instIsMulCommutativeSubtypeMemSubgroupOfIsCyclic
{G : Type u_2}
[Group G]
(H : Subgroup G)
[IsCyclic ↥H]
:
A non-cyclic multiplicative group is non-trivial.
A non-cyclic additive group is non-trivial.
theorem
isAddCyclic_of_addOrderOf_eq_card
{α : Type u_1}
[AddGroup α]
[Finite α]
(x : α)
(hx : addOrderOf x = Nat.card α)
:
theorem
isAddCyclic_of_card_le_addOrderOf
{α : Type u_1}
[AddGroup α]
[Finite α]
(x : α)
(hx : Nat.card α ≤ addOrderOf x)
:
theorem
isCyclic_of_surjective
{G : Type u_2}
{G' : Type u_3}
[Group G]
[Group G']
{F : Type u_4}
[hH : IsCyclic G']
[FunLike F G' G]
[MonoidHomClass F G' G]
(f : F)
(hf : Function.Surjective ⇑f)
:
IsCyclic G
theorem
isAddCyclic_of_surjective
{G : Type u_2}
{G' : Type u_3}
[AddGroup G]
[AddGroup G']
{F : Type u_4}
[hH : IsAddCyclic G']
[FunLike F G' G]
[AddMonoidHomClass F G' G]
(f : F)
(hf : Function.Surjective ⇑f)
:
theorem
orderOf_eq_card_of_forall_mem_zpowers
{α : Type u_1}
[Group α]
{g : α}
(hx : ∀ (x : α), x ∈ Subgroup.zpowers g)
:
theorem
addOrderOf_eq_card_of_forall_mem_zmultiples
{α : Type u_1}
[AddGroup α]
{g : α}
(hx : ∀ (x : α), x ∈ AddSubgroup.zmultiples g)
:
theorem
orderOf_eq_card_of_forall_mem_powers
{α : Type u_1}
[Group α]
{g : α}
(hx : ∀ (x : α), x ∈ Submonoid.powers g)
:
theorem
addOrderOf_eq_card_of_forall_mem_multiples
{α : Type u_1}
[AddGroup α]
{g : α}
(hx : ∀ (x : α), x ∈ AddSubmonoid.multiples g)
:
theorem
orderOf_eq_card_of_zpowers_eq_top
{G : Type u_2}
[Group G]
{g : G}
(h : Subgroup.zpowers g = ⊤)
:
theorem
addOrderOf_eq_card_of_zmultiples_eq_top
{G : Type u_2}
[AddGroup G]
{g : G}
(h : AddSubgroup.zmultiples g = ⊤)
:
theorem
Infinite.orderOf_eq_zero_of_forall_mem_zpowers
{α : Type u_1}
[Group α]
[Infinite α]
{g : α}
(h : ∀ (x : α), x ∈ Subgroup.zpowers g)
:
theorem
Infinite.addOrderOf_eq_zero_of_forall_mem_zmultiples
{α : Type u_1}
[AddGroup α]
[Infinite α]
{g : α}
(h : ∀ (x : α), x ∈ AddSubgroup.zmultiples g)
:
instance
AddSubgroup.isAddCyclic
{α : Type u_1}
[AddGroup α]
[IsAddCyclic α]
(H : AddSubgroup α)
:
IsAddCyclic ↥H
theorem
isCyclic_of_injective
{G : Type u_2}
{G' : Type u_3}
[Group G]
[Group G']
[IsCyclic G']
(f : G →* G')
(hf : Function.Injective ⇑f)
:
IsCyclic G
theorem
isAddCyclic_of_injective
{G : Type u_2}
{G' : Type u_3}
[AddGroup G]
[AddGroup G']
[IsAddCyclic G']
(f : G →+ G')
(hf : Function.Injective ⇑f)
:
theorem
AddSubgroup.isAddCyclic_of_le
{G : Type u_2}
[AddGroup G]
{H H' : AddSubgroup G}
(h : H ≤ H')
[IsAddCyclic ↥H']
:
IsAddCyclic ↥H
theorem
IsAddCyclic.card_nsmul_eq_zero_le
{α : Type u_1}
[AddGroup α]
[DecidableEq α]
[Fintype α]
[IsAddCyclic α]
{n : ℕ}
(hn0 : 0 < n)
:
theorem
IsCyclic.exists_monoid_generator
{α : Type u_1}
[Group α]
[Finite α]
[IsCyclic α]
:
∃ (x : α), ∀ (y : α), y ∈ Submonoid.powers x
theorem
IsAddCyclic.exists_addMonoid_generator
{α : Type u_1}
[AddGroup α]
[Finite α]
[IsAddCyclic α]
:
∃ (x : α), ∀ (y : α), y ∈ AddSubmonoid.multiples x
theorem
IsAddCyclic.exists_ofOrder_eq_natCard
{α : Type u_1}
[AddGroup α]
[h : IsAddCyclic α]
:
∃ (g : α), addOrderOf g = Nat.card α
noncomputable def
MulDistribMulAction.toMonoidHomZModOfIsCyclic
(G : Type u_2)
[Group G]
(M : Type u_4)
[Monoid M]
[IsCyclic G]
[MulDistribMulAction M G]
{n : ℕ}
(hn : Nat.card G = n)
:
A distributive action of a monoid on a finite cyclic group of order n factors through an
action on ZMod n.
Equations
- MulDistribMulAction.toMonoidHomZModOfIsCyclic G M hn = { toFun := fun (m : M) => ↑⋯.choose, map_one' := ⋯, map_mul' := ⋯ }
Instances For
theorem
IsCyclic.unique_zpow_zmod
{α : Type u_1}
{a : α}
[Group α]
[Fintype α]
(ha : ∀ (x : α), x ∈ Subgroup.zpowers a)
(x : α)
:
theorem
IsAddCyclic.unique_zsmul_zmod
{α : Type u_1}
{a : α}
[AddGroup α]
[Fintype α]
(ha : ∀ (x : α), x ∈ AddSubgroup.zmultiples a)
(x : α)
:
theorem
IsCyclic.image_range_orderOf
{α : Type u_1}
{a : α}
[Group α]
[Fintype α]
[DecidableEq α]
(ha : ∀ (x : α), x ∈ Subgroup.zpowers a)
:
theorem
IsAddCyclic.image_range_addOrderOf
{α : Type u_1}
{a : α}
[AddGroup α]
[Fintype α]
[DecidableEq α]
(ha : ∀ (x : α), x ∈ AddSubgroup.zmultiples a)
:
theorem
IsCyclic.image_range_card
{α : Type u_1}
{a : α}
[Group α]
[Fintype α]
[DecidableEq α]
(ha : ∀ (x : α), x ∈ Subgroup.zpowers a)
:
theorem
IsAddCyclic.image_range_card
{α : Type u_1}
{a : α}
[AddGroup α]
[Fintype α]
[DecidableEq α]
(ha : ∀ (x : α), x ∈ AddSubgroup.zmultiples a)
: