// Magma code for working with abstract group 40.5. // Some of these functions may take a long time to execute (this depends on the group). // Construction of abstract group: G := SmallGroup(40, 5); // Order of the group: Order(G); // Exponent of the group: Exponent(G); // Automorphism group: AutomorphismGroup(G); // Composition factors of the group: CompositionFactors(G); // Nilpotency class of the group: NilpotencyClass(G); // Derived length of the group: DerivedLength(G); // Determine if the group G is abelian: IsAbelian(G); // Determine if the group G is cyclic: IsCyclic(G); // Determine if the group G is elementary abelian: IsElementaryAbelian(G); // Determine if the group G is nilpotent: IsNilpotent(G); // Determine if the group G is perfect: IsPerfect(G); // Determine if the group G is simple: IsSimple(G); // Determine if the group G is solvable: IsSolvable(G); // Compute statistics for the group G: // Magma code to output the first two rows of the group statistics table element_orders := [Order(g) : g in G]; orders := Set(element_orders); printf "Orders: %o\n", orders; printf "Elements: %o %o\n", [#[x : x in element_orders | x eq n] : n in orders], Order(G); cc_orders := [cc[1] : cc in ConjugacyClasses(G)]; printf "Conjugacy classes: %o %o\n", [#[x : x in cc_orders | x eq n] : n in orders], #cc_orders; // List of conjugacy classes of the group: ConjugacyClasses(G); // Output not guaranteed to exactly match the LMFDB table // Compute statistics about the characters of G: // Outputs [, , ...] where c_i is the number of irr. complex chars. of G with degree d_i CharacterDegrees(G); // Define the group with the given generators and relations: GPC := PCGroup([4, -2, -2, -2, -5, 145, 21, 434, 34, 515]); a,b := Explode([GPC.1, GPC.2]); AssignNames(~GPC, ["a", "b", "b2", "b4"]); // Define the group as a permutation group: PermutationGroup< 9 | (2,3)(4,5)(6,7)(8,9), (6,8,7,9), (6,7)(8,9), (1,2,4,5,3) >; // Define the group as a matrix group with coefficients in Z: MatrixGroup< 6, Integers() | [[1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1], [0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0]] >; // Define the group as a matrix group with coefficients in GLFp: MatrixGroup< 2, GF(5) | [[1, 1, 0, 1], [2, 0, 0, 3], [1, 0, 0, 4]] >; // Define the group from the transitive group database: TransitiveGroup(20, 6); TransitiveGroup(40, 9); // The primary decomposition of the group: PrimaryInvariants(G); // The abelianization of the group: quo< G | CommutatorSubgroup(G) >; // List of subgroups of the group: Subgroups(G); // Center of the group: Center(G); // Commutator subgroup of the group G: CommutatorSubgroup(G); // Frattini subgroup of the group G: FrattiniSubgroup(G); // Fitting subgroup of the group G: FittingSubgroup(G); // Radical of the group G: Radical(G); // Socle of the group G: Socle(G); // Derived series of the group G: DerivedSeries(G); // Chief series of the group G: ChiefSeries(G); // The lower central series of the group G: LowerCentralSeries(G); // The upper central series of the group G: UpperCentralSeries(G); // Character table: CharacterTable(G); // Output not guaranteed to exactly match the LMFDB table