I like this a lot, and am going to rewrite the maximal subgroups in my preferred form that includes negative numbers, for symmetry's sake: {0} {15} {-5, 5} {-10, 10} {-9, -3, 3, 9} {-12, -6, 6, 12} {-13, -11, -7, -1, 1, 7, 11, 13} {-14, -8, -4, -2, 2, 4, 8}, —Dan P.S. Now I'd like to know the same thing for the Gaussian integers Z[i] and the Eisenstein integers Z[w] where w = exp(2pi*i/3). These apparently have some complicated factor rings. See e.g. http://home.wlu.edu/~dresdeng/papers/factorrings.pdf.
On Apr 22, 2016, at 12:41 PM, Thane Plambeck <tplambeck@gmail.com> wrote:
I haven't been reading all these messages, but here goes anyway....
In every finite commutative monoid M, you get its maximal subgroups by....
(1) Computing first its set of idempotents X (ie those elements x such that x^2 =x). (2) Then, for each x in X, compute the subset S(x) of y's such that x divides y and y divides x.
Each set S(x) is a maximal subgroup of M with identity the idempotent x.
For the particular case of the integers modulo 30, I got these idempotents and maximal subgroups
In[1164]:= idempotents = Select[elements, mult[#, #] == # &] Out[1164]= {0, 1, 6, 10, 15, 16, 21, 25}
Ie, there are 8 idempotents. So there will be 8 maximal subgroups. Here they are.
In[1173]:= Map[allMutuals, idempotents]
Out[1173]= {{0}, {1, 7, 11, 13, 17, 19, 23, 29}, {6, 12, 18, 24}, {10, 20}, {15}, {2, 4, 8, 14, 16, 22, 26, 28}, {3, 9, 21, 27}, {5, 25}}
Listing all the subgroups is more work, but they're easily found via this divide and conquer technique.