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 nth root of unity
and that the group of nth 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 nth
roots of unity and such that the group of nth 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 nth roots of unity
in M is finite.
If M satisfies HasEnoughRootsOfUnity, then the group of nth roots of unity
in M (is cyclic and) has order n.
The group of group homomorphisms 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