# SageMath code for working with abstract group 5668704.it. # Some of these functions may take a long time to execute (this depends on the group). # Construction of abstract group: G = PermutationGroup(['(1,15,27,3,13,25,2,14,26)(4,12,18,23,30,34,5,10,17,22,29,35,6,11,16,24,28,36)(7,19,31,8,21,32,9,20,33)', '(1,25)(2,27)(3,26)(4,17,29,5,16,28,6,18,30)(7,19)(8,21)(9,20)(10,22,34,11,24,35,12,23,36)(13,15,14)(31,33,32)', '(1,16,20,35,3,18,19,36,2,17,21,34)(4,8,22,26,5,9,24,27,6,7,23,25)(10,14,29,31,11,15,28,32,12,13,30,33)']) # 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(149068683020856106404083804002533493859141235578158705776429979429583197002400994625731224708422422750869493494514378280490244315871588092513449730340497982912247325823095637536193286767821333596573183336784102319994176661073854531578043535442393506142317041696603459820562462219499004735859624180018269884528056144519188729731977461311269098533917519385081274289001483299670753681089242235186923175051322652367677401768934970026719665259140727951831189893518537714985434278704379128042942215155699507201946150687694964531198788999013506938778745265015174435682442671651635268403164301947640850037201752066255540581632531951959539211505272175536659073813596242818376126107222238733101926053785176671319299722301769535251097572411827370097492480194792860415,5668704)'); a = GPC.1; b = GPC.2; c = GPC.4; d = GPC.6; e = GPC.8; f = GPC.10; g = GPC.11; h = GPC.12; i = GPC.13; j = GPC.14; k = GPC.15; l = GPC.16; # Define the group as a permutation group: PermutationGroup(['(1,15,27,3,13,25,2,14,26)(4,12,18,23,30,34,5,10,17,22,29,35,6,11,16,24,28,36)(7,19,31,8,21,32,9,20,33)', '(1,25)(2,27)(3,26)(4,17,29,5,16,28,6,18,30)(7,19)(8,21)(9,20)(10,22,34,11,24,35,12,23,36)(13,15,14)(31,33,32)', '(1,16,20,35,3,18,19,36,2,17,21,34)(4,8,22,26,5,9,24,27,6,7,23,25)(10,14,29,31,11,15,28,32,12,13,30,33)']) # Define the group from the transitive group database: TransitiveGroup(36, 54911) # 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