# SageMath code for working with abstract group 124500.c. # Some of these functions may take a long time to execute (this depends on the group). # Define group as a dicyclic group: G = DiCyclicGroup(31125) # Order of the group: G.order() # Exponent of the group: G.exponent() # Automorphism group: libgap(G).AutomorphismGroup() # Composition factors of the group: G.composition_series() # Nilpotency class of the group: libgap(G).NilpotencyClassOfGroup() if G.is_nilpotent() else -1 # Derived length of the group: libgap(G).DerivedLength() # Determine if the group G is abelian: G.is_abelian() # Determine if the group G is cyclic: G.is_cyclic() # Determine if the group G is elementary abelian: G.is_elementary_abelian() # Determine if the group G is nilpotent: G.is_nilpotent() # Determine if the group G is perfect: G.is_perfect() # Determine if the group G is a p-group: G.is_pgroup() # Determine if the group G is polycyclic: G.is_polycyclic() # Determine if the group G is simple: G.is_simple() # Determine if the group G is solvable: G.is_solvable() # Determine if the group G is supersolvable: G.is_supersolvable() # Compute statistics for the group G: # Sage code to output the first two rows of the group statistics table element_orders = [g.order() for g in G] orders = sorted(list(set(element_orders))) print("Orders:", orders) print("Elements:", [element_orders.count(n) for n in orders], G.order()) cc_orders = [cc[0].order() for cc in G.conjugacy_classes()] print("Conjugacy classes:", [cc_orders.count(n) for n in orders], len(cc_orders)) # List of conjugacy classes of the group: G.conjugacy_classes() # Output not guaranteed to exactly match the LMFDB table # Compute statistics about the characters of G: # Outputs [[d_1,c_1], [d_2,c_2], ...] where c_i is the number of irr. complex chars. of G with degree d_i character_degrees = [c[0] for c in G.character_table()] [[n, character_degrees.count(n)] for n in set(character_degrees)] # Define the group with the given generators and relations: # This uses Sage's interface to GAP, as Sage (currently) has no native support for PC groups GPC = gap.new('PcGroupCode(4654099430450565712020007211379781158183094687378951584157,124500)'); a = GPC.1; b = GPC.5; # Define the group as a permutation group: PermutationGroup(['(2,4)(3,5)(6,11)(7,12)(8,10)(9,13)(14,22)(15,23)(16,21)(17,24)(18,20)(19,25)(26,30)(27,31)(28,32)(29,33)(34,38)(35,39)(36,40)(37,41)(42,46)(43,47)(44,48)(45,49)(50,54)(51,55)(52,56)(53,57)(58,62)(59,63)(60,64)(61,65)(66,70)(67,71)(68,72)(69,73)(74,78)(75,79)(76,80)(77,81)(82,86)(83,87)(84,88)(85,89)(90,94)(91,95)(92,96)(93,97)(98,102)(99,103)(100,104)(101,105)(106,110)(107,111)(108,112)(109,113)(114,118)(115,119)(116,120)(117,121)(122,125)(123,124)(126,127,128,129)(130,131,133,136,140,145,151,157,163,169,175,181,187,193,198,168,139,143,148,154,160,166,172,178,184,190,196,201,205,208,210,186,156,132,134,137,141,146,152,158,164,170,176,182,188,194,199,203,174,144,149,155,161,167,173,179,185,191,197,202,206,209,211,212,192,162,135,138,142,147,153,159,165,171,177,183,189,195,200,204,207,180,150)(213,214,215)', '(1,2,6,14,19,28,35,42,45,52,59,66,69,76,83,90,93,100,107,114,117,124,120,113,110,103,96,89,86,79,72,65,62,55,48,41,38,31,24,13,18,21,10,3,7,15,26,29,36,43,50,53,60,67,74,77,84,91,98,101,108,115,122,125,119,112,105,102,95,88,81,78,71,64,57,54,47,40,33,30,23,12,5,8,16,20,9,17,27,34,37,44,51,58,61,68,75,82,85,92,99,106,109,116,123,121,118,111,104,97,94,87,80,73,70,63,56,49,46,39,32,25,22,11,4)(126,128)(127,129)(130,132,135,139,144,150,156,162,168,174,180,186,192,198,203,207,210,212,193,199,204,208,211,187,194,200,205,209,181,188,195,201,206,175,182,189,196,202,169,176,183,190,197,163,170,177,184,191,157,164,171,178,185,151,158,165,172,179,145,152,159,166,173,140,146,153,160,167,136,141,147,154,161,133,137,142,148,155,131,134,138,143,149)(213,214,215)']) # Define the group as a matrix group with coefficients in GLFp: MS = MatrixSpace(GF(499), 2, 2) MatrixGroup([MS([[436, 74], [132, 63]]), MS([[345, 162], [237, 345]])]) # The abelianization of the group: G.quotient(G.commutator()) # The Schur multiplier of the group: G.homology(2) # List of subgroups of the group: G.subgroups() # Center of the group: G.center() # Commutator subgroup of the group G: G.commutator() # Frattini subgroup of the group G: G.frattini_subgroup() # Fitting subgroup of the group G: G.fitting_subgroup() # Socle of the group G: G.socle() # Derived series of the group G: G.derived_series() # Chief series of the group G: libgap(G).ChiefSeries() # The lower central series of the group G: G.lower_central_series() # The upper central series of the group G: G.upper_central_series() # Character table: G.character_table() # Output not guaranteed to exactly match the LMFDB table