Cyclic groups #
A group G is called cyclic if there exists an element g : G such that every element of G is of
the form g ^ n for some n : ℕ. This file only deals with the predicate on a group to be cyclic.
For the concrete cyclic group of order n, see Data.ZMod.Basic.
Main definitions #
IsCyclicis a predicate on a group stating that the group is cyclic.
Main statements #
isCyclic_of_prime_cardproves that a finite group of prime order is cyclic.isSimpleGroup_of_prime_card,IsSimpleGroup.isCyclic, andIsSimpleGroup.prime_cardclassify finite simple abelian groups.IsCyclic.exponent_eq_card: For a finite cyclic groupG, the exponent is equal to the group's cardinality.IsCyclic.exponent_eq_zero_of_infinite: Infinite cyclic groups have exponent zero.IsCyclic.iff_exponent_eq_card: A finite commutative group is cyclic iff its exponent is equal to its cardinality.
Tags #
cyclic group
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
A non-cyclic multiplicative group is non-trivial.
A non-cyclic additive group is non-trivial.
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
Stacks Tag 09HX (This theorem is stronger than 09HX. It removes the abelian condition, and requires only ≤ instead of =.)
A group is commutative if the quotient by the center is cyclic.
Also see commGroupOfCyclicCenterQuotient for the CommGroup instance.
A group is commutative if the quotient by the center is cyclic.
Also see addCommGroupOfCyclicCenterQuotient for the AddCommGroup instance.
A group is commutative if the quotient by the center is cyclic.
Equations
- commGroupOfCyclicCenterQuotient f hf = { toGroup := have this := inferInstance; this, mul_comm := ⋯ }
Instances For
A group is commutative if the quotient by the center is cyclic.
Equations
- addCommGroupOfAddCyclicCenterQuotient f hf = { toAddGroup := have this := inferInstance; this, add_comm := ⋯ }
Instances For
The kernel of zmultiplesHom G g is equal to the additive subgroup generated by
addOrderOf g.
The kernel of zpowersHom G g is equal to the subgroup generated by orderOf g.
The isomorphism from ZMod n to any cyclic additive group of Nat.card equal to n.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism from Multiplicative (ZMod n) to any cyclic group of Nat.card equal to n.
Equations
Instances For
Two cyclic additive groups of the same cardinality are isomorphic.
Equations
- addEquivOfAddCyclicCardEq hcard = (hcard ▸ zmodAddCyclicAddEquiv hG).symm.trans (zmodAddCyclicAddEquiv hH)
Instances For
Two cyclic groups of the same cardinality are isomorphic.
Equations
- mulEquivOfCyclicCardEq hcard = (hcard ▸ zmodCyclicMulEquiv hG).symm.trans (zmodCyclicMulEquiv hH)
Instances For
The automorphism group of a cyclic group is isomorphic to the multiplicative group of ZMod.
Equations
- IsCyclic.mulAutMulEquiv G = ((MulAut.congr (zmodCyclicMulEquiv h)).symm.trans (MulAutMultiplicative (ZMod (Nat.card G)))).trans (ZMod.AddAutEquivUnits (Nat.card G))
Instances For
Groups with a given generator #
We state some results in terms of an explicitly given generator.
The generating property is given as in IsCyclic.exists_generator.
The main statements are about the existence and uniqueness of homomorphisms and isomorphisms specified by the image of the given generator.
If g generates the group G and g' is an element of another group G' whose order
divides that of g, then there is a homomorphism G →* G' mapping g to g'.
Equations
- monoidHomOfForallMemZpowers hg hg' = { toFun := fun (x : G) => g' ^ Classical.choose ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
If g generates the additive group G and g' is an element of another additive group G'
whose order divides that of g, then there is a homomorphism G →+ G' mapping g to g'.
Equations
- addMonoidHomOfForallMemZmultiples hg hg' = { toFun := fun (x : G) => Classical.choose ⋯ • g', map_zero' := ⋯, map_add' := ⋯ }
Instances For
Two homomorphisms G →+ G' of additive groups are equal if and only if they agree
on a generator of G.
Given two groups that are generated by elements g and g' of the same order,
we obtain an isomorphism sending g to g'.
Equations
- mulEquivOfOrderOfEq hg hg' h = (monoidHomOfForallMemZpowers hg ⋯).toMulEquiv (monoidHomOfForallMemZpowers hg' ⋯) ⋯ ⋯
Instances For
Given two additive groups that are generated by elements g and g' of the same order,
we obtain an isomorphism sending g to g'.
Equations
- addEquivOfAddOrderOfEq hg hg' h = (addMonoidHomOfForallMemZmultiples hg ⋯).toAddEquiv (addMonoidHomOfForallMemZmultiples hg' ⋯) ⋯ ⋯
Instances For
The product of two finite additive groups is cyclic iff both of them are cyclic and their orders are coprime.