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 #
IsCyclic
is a predicate on a group stating that the group is cyclic.
Main statements #
isCyclic_of_prime_card
proves that a finite group of prime order is cyclic.isSimpleGroup_of_prime_card
,IsSimpleGroup.isCyclic
, andIsSimpleGroup.prime_card
classify 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 group is called cyclic if it is generated by a single element.
- exists_generator : ∃ (g : α), ∀ (x : α), x ∈ AddSubgroup.zmultiples g
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A cyclic group is always commutative. This is not an instance
because often we have
a better proof of AddCommGroup
.
Equations
- IsAddCyclic.addCommGroup = AddCommGroup.mk ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
A cyclic group is always commutative. This is not an instance
because often we have a better
proof of CommGroup
.
Equations
- IsCyclic.commGroup = CommGroup.mk ⋯
Instances For
A non-cyclic additive group is non-trivial.
A non-cyclic multiplicative group is non-trivial.
Alias of AddMonoidHom.map_addCyclic
.
Alias of isAddCyclic_of_addOrderOf_eq_card
.
Any non-identity element of a finite group of prime order generates the group.
Any non-identity element of a finite group of prime order generates the group.
A finite group of prime order is cyclic.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Alias of IsAddCyclic.card_nsmul_eq_zero_le
.
Equations
- ⋯ = ⋯
Instances For
Alias of isAddCyclic_of_card_nsmul_eq_zero_le
.
Alias of IsAddCyclic.card_addOrderOf_eq_totient
.
A finite group of prime order is simple.
A finite group of prime order is simple.
A group is commutative if the quotient by the center is cyclic.
Also see addCommGroup_of_cycle_center_quotient
for the AddCommGroup
instance.
Equations
- ⋯ = ⋯
Instances For
A group is commutative if the quotient by the center is cyclic.
Also see commGroup_of_cycle_center_quotient
for the CommGroup
instance.
Alias of commutative_of_addCyclic_center_quotient
.
A group is commutative if the quotient by the center is cyclic.
Also see addCommGroup_of_cycle_center_quotient
for the AddCommGroup
instance.
A group is commutative if the quotient by the center is cyclic.
Equations
- commutativeOfAddCycleCenterQuotient f hf = let __src := let_fun this := inferInstance; this; AddCommGroup.mk ⋯
Instances For
A group is commutative if the quotient by the center is cyclic.
Equations
- commGroupOfCycleCenterQuotient f hf = let __src := let_fun this := inferInstance; this; CommGroup.mk ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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
- zmodCyclicMulEquiv h = AddEquiv.toMultiplicative (zmodAddCyclicAddEquiv ⋯)
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
Two additive groups of the same prime cardinality are isomorphic.
Equations
- addEquivOfPrimeCardEq hG hH = let_fun hGcyc := ⋯; let_fun hHcyc := ⋯; addEquivOfAddCyclicCardEq ⋯
Instances For
Two groups of the same prime cardinality are isomorphic.
Equations
- mulEquivOfPrimeCardEq hG hH = let_fun hGcyc := ⋯; let_fun hHcyc := ⋯; mulEquivOfCyclicCardEq ⋯
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 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
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
Two homomorphisms G →+ G'
of additive groups are equal if and only if they agree
on a generator of G
.
Two isomorphisms G ≃+ G'
of additive groups are equal if and only if they agree
on a generator of G
.
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
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' ⋯) ⋯ ⋯