Create quotient group of units of mod n

asked 2021-02-24 09:28:08 +0100

Hilder Vitor Lima Pereira gravatar image

I would like to work with the group $\mathbb{Z}_m^* / \langle p \rangle$. Do you know how I can create it?

For example:

p = 2
m = 17^2
Zm = ZZ.quotient(m)  # ring of integers mod m
Zms = Zm.unit_group() # cyclic group (Z/mZ)^* generated by 3

But the last line raises a NotImplementedError.

edit retag flag offensive close merge delete


There are a few issues. One is that quotients of arbitrary groups, even of arbitrary abelian groups, are not implemented. The second is that Zms doesn't remember that it is the group of units in Zm — it is just an abstract multiplicative abelian group, cyclic of order 272 — so p is not an element in it.

John Palmieri gravatar imageJohn Palmieri ( 2021-03-02 20:46:26 +0100 )edit

Hi @JohnPalmieri. Yes, so even if I map p to an element of Zms, the command Zms.quotient will not work...

Hilder Vitor Lima Pereira gravatar imageHilder Vitor Lima Pereira ( 2021-03-09 17:32:25 +0100 )edit

Quotients of additive cyclic groups are implemented, though: C272 = groups.misc.AdditiveCyclic(272) and then C272.quotient(...) works.

John Palmieri gravatar imageJohn Palmieri ( 2021-03-09 22:03:57 +0100 )edit