Commutative monoids with enough roots of unity #
We define a typeclass HasEnoughRootsOfUnity M n
for a commutative monoid M
and
a natural number n
that asserts that M
contains a primitive n
th root of unity
and that the group of n
th roots of unity in M
is cyclic. Such monoids are suitable
targets for homomorphisms from groups of exponent (dividing) n
; for example,
the homomorphisms can then be used to separate elements of the source group.
This is a type class recording that a commutative monoid M
contains primitive n
th
roots of unity and such that the group of n
th roots of unity is cyclic.
Such monoids are suitable targets in the context of duality statements for groups
of exponent n
.
- prim : ∃ (m : M), IsPrimitiveRoot m n
- cyc : IsCyclic ↥(rootsOfUnity n M)
Instances
If HasEnoughRootsOfUnity M n
and m ∣ n
, then also HasEnoughRootsOfUnity M m
.
If M
satisfies HasEnoughRootsOfUnity
, then the group of n
th roots of unity
in M
is finite.
If M
satisfies HasEnoughRootsOfUnity
, then the group of n
th roots of unity
in M
(is cyclic and) has order n
.
The group of group homomorphims from a finite cyclic group G
of order n
into the
group of units of a ring M
with all roots of unity is isomorphic to G