# SageMath code for working with abstract group 124500.a. # Some of these functions may take a long time to execute (this depends on the group). # Construction of abstract group: G = PermutationGroup(['(87,88)(90,91)(92,93)(94,95)(96,97)(98,99)(100,101)(102,103)(104,105)(106,124)(107,126)(108,128)(109,130)(110,132)(111,133)(112,123)(113,135)(114,120)(115,137)(116,118)(117,139)(119,141)(121,143)(122,145)(125,147)(127,149)(129,151)(131,153)(134,155)(136,157)(138,159)(140,161)(142,163)(144,165)(146,167)(148,169)(150,171)(152,173)(154,175)(156,177)(158,179)(160,181)(162,183)(164,185)(166,187)(168,189)(170,191)(172,193)(174,195)(176,197)(178,199)(180,201)(182,203)(184,205)(186,206)(188,207)(190,204)(192,209)(194,211)(196,212)(198,210)(200,213)(202,208)', '(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83)(84,85,86)(87,88)(89,90,92,94,96,98,100,102,104,121,129,125,127,131,134,136,138,140,142,146,166,174,170,172,176,178,180,182,184,186,190,208,213,210,211,209,212,207,189,185,183,181,179,177,175,171,169,173,165,145,141,139,137,135,133,130,126,124,128,132,123,120,118,116,114,112,110,108,106,107,109,111,113,115,117,119,122,144,152,148,150,154,156,158,160,162,164,168,188,196,192,194,198,200,202,204,206,205,203,201,199,197,193,191,195,187,167,163,161,159,157,155,153,149,147,151,143,105,103,101,99,97,95,93,91)']) # 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(6372324679266810872284735140182647424210801730510068964527728319338107,124500)'); a = GPC.1; b = GPC.2; # Define the group as a permutation group: PermutationGroup(['(87,88)(90,91)(92,93)(94,95)(96,97)(98,99)(100,101)(102,103)(104,105)(106,124)(107,126)(108,128)(109,130)(110,132)(111,133)(112,123)(113,135)(114,120)(115,137)(116,118)(117,139)(119,141)(121,143)(122,145)(125,147)(127,149)(129,151)(131,153)(134,155)(136,157)(138,159)(140,161)(142,163)(144,165)(146,167)(148,169)(150,171)(152,173)(154,175)(156,177)(158,179)(160,181)(162,183)(164,185)(166,187)(168,189)(170,191)(172,193)(174,195)(176,197)(178,199)(180,201)(182,203)(184,205)(186,206)(188,207)(190,204)(192,209)(194,211)(196,212)(198,210)(200,213)(202,208)', '(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83)(84,85,86)(87,88)(89,90,92,94,96,98,100,102,104,121,129,125,127,131,134,136,138,140,142,146,166,174,170,172,176,178,180,182,184,186,190,208,213,210,211,209,212,207,189,185,183,181,179,177,175,171,169,173,165,145,141,139,137,135,133,130,126,124,128,132,123,120,118,116,114,112,110,108,106,107,109,111,113,115,117,119,122,144,152,148,150,154,156,158,160,162,164,168,188,196,192,194,198,200,202,204,206,205,203,201,199,197,193,191,195,187,167,163,161,159,157,155,153,149,147,151,143,105,103,101,99,97,95,93,91)']) # Define the group as a matrix group with coefficients in GLFp: MS = MatrixSpace(GF(499), 2, 2) MatrixGroup([MS([[1, 0], [0, 498]]), 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