{ "cells": [ { "cell_type": "markdown", "id": "70c682d8-4e44-4088-b09d-d57b24b67480", "metadata": {}, "source": [ "Compute the Cayley embedding of a finite group $G$" ] }, { "cell_type": "code", "execution_count": 7, "id": "80ce26d1-b0dc-431b-aa48-c3d30bfb8652", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function CayleyEmbedding(G)\n", "\t// Get the order of the group\n", "\tn := #G;\n", "\n", "\t// Define the symmetric group on n elements\n", "\tS := SymmetricGroup(n);\n", "\t\n", "\t// Get the elements of G\n", "\telements := [g : g in G];\n", "\n", "\t// Create a map from G to S_n\n", "\tCayleyMap := hom S | g :-> S![Index(elements, g * elements[i]) : i in [1..n]]>;\n", "\n", "\treturn Image(CayleyMap), CayleyMap;\n", "end function;" ] }, { "cell_type": "code", "execution_count": 8, "id": "7bf4f357-8ba5-4f14-b77a-49cd1540eeb0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Permutation group acting on a set of cardinality 12\n", "(1, 2, 4, 6, 11, 9)(3, 5, 12, 10, 8, 7)\n", "(1, 3)(2, 7)(4, 8)(5, 9)(6, 10)(11, 12)\n", "Mapping from: GrpPerm: $, Degree 6, Order 2^2 * 3 to GrpPerm: $, Degree 12, Order 2^10 * 3^5 * 5^2 * 7 * 11 given by a rule [no inverse]\n" ] } ], "source": [ "CayleyEmbedding(DihedralGroup(6));" ] }, { "cell_type": "markdown", "id": "a7e5f005-bcb3-4b35-9ed7-f9812d44dc1d", "metadata": {}, "source": [ "Construct the \"double\" of a permutation sigma" ] }, { "cell_type": "code", "execution_count": 9, "id": "b15c2838-2c8b-42e6-9125-8db672cf631c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function DoublePermutation(sigma)\n", "\tn := Degree(Parent(sigma));\n", "\tS2n := Sym(2*n);\n", "\tL := [i^sigma : i in [1..n]] cat [i^sigma + n : i in [1..n]];\n", "\t\n", " return S2n!L;\n", "end function;" ] }, { "cell_type": "code", "execution_count": 14, "id": "51694240-330a-4640-9803-224cb9380f6e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 2)(3, 4)(7, 8)(9, 10)\n" ] } ], "source": [ "S6 := Sym(6);\n", "DoublePermutation(S6!(1, 2)(3, 4));" ] }, { "cell_type": "markdown", "id": "0e6cee42-6ff1-4d73-af3d-69044e936747", "metadata": {}, "source": [ "Construct the \"double\" of a group $G$" ] }, { "cell_type": "code", "execution_count": 15, "id": "48942f2b-c0ee-4b83-b2ea-47601b1fd36f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function DoubleGroup(G)\n", "\tH := CayleyEmbedding(G);\n", "\tn := #H;\n", "\tHDouble := sub< Sym(2*n) | [ DoublePermutation(h) : h in Generators(H) ] >;\n", "\t\n", " return HDouble;\n", "end function;" ] }, { "cell_type": "markdown", "id": "15167d9d-0ada-414f-bda0-33a53ac6cfb8", "metadata": {}, "source": [ "Given a group $G$, construct a list of groups $H$\n", "such that $G < H$ with index $2$, and up to isomorphism,\n", "every group $H$ with this property appears in the list.\n", "\n", "The first version is elementary; the second uses the\n", "correspondence theorem for subgroups; and the third\n", "one optimises by not repeating subgroups that are\n", "obviously conjugate to one another and only considering\n", "a $2$-Sylow subgroup of the normaliser." ] }, { "cell_type": "code", "execution_count": 16, "id": "117f386f-53bd-450b-9aad-5442da8302a1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function ConstructDoubleCovers(G)\n", "\tGDouble := DoubleGroup(G);\n", "\tN := Normaliser( Sym(2*#G), GDouble );\n", "\tsubs := Subgroups(N : OrderEqual := 2*#G );\n", "\tsubs := [sub`subgroup : sub in subs];\n", "\tsubs := [H : H in subs | GDouble subset H ];\n", "\t\n", " return subs;\n", "end function;" ] }, { "cell_type": "markdown", "id": "13432154-d564-4a45-bf1e-d463ace254b9", "metadata": {}, "source": [ "Given a list $L$ of groups, returns a list $L'$ that contains\n", "every isomorphism class of groups in $L$ precisely once" ] }, { "cell_type": "code", "execution_count": 18, "id": "d03775ef-8f94-4d41-8224-a75f7fce4214", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function FilterDuplicates(list)\n", "\tCleanList := [];\n", "\tfor H in list do\n", "\t\ttest := true;\n", "\t\tfor H2 in CleanList do\n", "\t\t\tif test then\n", "\t\t\t\ttest := test and not IsIsomorphic(H, H2);\n", "\t\t\tend if;\n", "\t\tend for;\n", "\t\tif test then\n", "\t\t\tCleanList := CleanList cat [H];\n", "\t\tend if;\n", "\tend for;\n", "\t\n", " return CleanList;\n", "end function;" ] }, { "cell_type": "markdown", "id": "50d8d814-6b34-42f3-8326-3ab2293afe78", "metadata": {}, "source": [ "Given a list $L$ of groups $[G_i]$, returns a list $L' = [H_j]$\n", "where each $H_j$ contains some $G_i$ with index $2$, every\n", "group with this property appears in $L'$, and $L'$ contains no\n", "duplicates up to isomorphism." ] }, { "cell_type": "code", "execution_count": 19, "id": "fa09f850-76dc-41b7-98d7-65975d78771e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function DoubleListSlow(L)\n", "\tLNew := [];\n", "\tfor G in L do\n", "\t\tdc := ConstructDoubleCovers(G);\n", "\t\tdc := FilterDuplicates(dc);\n", "\t\tLNew := LNew cat dc;\n", "\tend for;\n", "\t\n", " return FilterDuplicates(LNew);\n", "end function;" ] }, { "cell_type": "code", "execution_count": 20, "id": "b1bd3351-614b-44f9-b57b-935449753aa1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time: 0.010\n", "Time: 0.150\n", "Time: 5.070\n" ] } ], "source": [ "list2 := [CyclicGroup(2)];\n", "time list4 := DoubleListSlow(list2);\n", "time list8 := DoubleListSlow(list4);\n", "time list16 := DoubleListSlow(list8);" ] }, { "cell_type": "markdown", "id": "c674fe93-cadf-45c1-9d39-b8316283bf85", "metadata": {}, "source": [ "Or for e more optimized version" ] }, { "cell_type": "code", "execution_count": 21, "id": "cdea9b61-0995-464f-bbf4-361414aaf3b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "function ConstructDoubleCovers2(G)\n", "\tGDouble := DoubleGroup(G);\n", "\tN := Normaliser( Sym(2*#G), GDouble );\n", "\tQuoziente, Proiezione := N/GDouble;\n", "\tSezione := Proiezione^(-1);\n", "\tEls2 := [q : q in Quoziente | Order(q) eq 2];\n", "\tsubs := [ sub< N | GDouble, Sezione(q) > : q in Els2 ];\n", "\t\n", " return subs;\n", "end function;\n", "\n", "function ConstructDoubleCovers3(G)\n", "\t\"Computing double\";\n", "\ttime GDouble := DoubleGroup(G);\n", "\t\"Computing normaliser\";\n", "\ttime N := Normaliser( Sym(2*#G), GDouble );\n", "\t\"Computing Sylow subgroup\";\n", "\tSylow2 := SylowSubgroup(N, 2);\n", "\t\"Computing quotient\";\n", "\t\"Order of quotient:\", #Sylow2 / #GDouble;\n", "\ttime Quoziente, Proiezione := Sylow2/GDouble;\n", "\t\"Computing section\";\n", "\ttime Sezione := Proiezione^(-1);\n", "\t\"Computing elements of order 2 in the quotient\";\n", "\ttime Els2 := Subgroups(Quoziente : OrderEqual := 2);\n", "\t\"Computing subgroups\";\n", "\ttime subs := [ sub< N | GDouble, Sezione(q`subgroup) > : q in Els2 ];\n", "\t\n", " return subs;\n", "end function;\n", "\n", "function FilterDuplicatesFast(list)\n", "\tCleanList := [];\n", "\tCleanNames := [];\n", "\tfor H in list do\n", "\t\tif not GroupName(H) in CleanNames then\n", "\t\t\tCleanList := CleanList cat [H];\n", "\t\t\tCleanNames := CleanNames cat [GroupName(H)];\n", "\t\tend if;\n", "\tend for;\n", "\t\n", " return CleanList;\n", "end function;\n", "\n", "function DoubleList(L)\n", "\tLNew := [];\n", "\tfor G in L do\n", "\t\ttime dc := ConstructDoubleCovers3(G);\n", "\t\ttime dc := FilterDuplicatesFast(dc);\n", "\t\tLNew := LNew cat dc;\n", "\tend for;\n", "\t\n", " return FilterDuplicatesFast(LNew);\n", "end function;" ] }, { "cell_type": "code", "execution_count": 24, "id": "2cd3992f-e165-45da-866f-0f6ccd5c4f85", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.000\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.000\n", "Time: 0.000\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.000\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.000\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.010\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 64\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.020\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.010\n", "Computing double\n", "Time: 0.010\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 128\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.010\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 128\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.010\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 128\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.010\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 128\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.000\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.000\n", "Time: 0.080\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.020\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.030\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.060\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 512\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.020\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.020\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.030\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 512\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.020\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 512\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.010\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 256\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.000\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.010\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 512\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.020\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.080\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.100\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.080\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.090\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.090\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.100\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.040\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.040\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.040\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.040\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.000\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.040\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.040\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.020\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.080\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.110\n", "Time: 0.010\n", "Time: 0.820\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.230\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.220\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.480\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.070\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.120\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.100\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.140\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.050\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.030\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.080\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.100\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.030\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.130\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.330\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.430\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.190\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.230\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.440\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.110\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.210\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.240\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.340\n", "Time: 0.040\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.100\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.210\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.320\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.120\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.210\n", "Time: 0.040\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.100\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.250\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.360\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.070\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.090\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.120\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.160\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.090\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.130\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.150\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.240\n", "Time: 0.030\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.080\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.120\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.130\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.170\n", "Time: 0.040\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.020\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.040\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.060\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.050\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.130\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.190\n", "Time: 0.040\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.020\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.050\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.070\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.120\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.210\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.090\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.140\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.060\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.150\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.080\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.080\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.170\n", "Time: 0.010\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 2048\n", "Time: 0.020\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.050\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.070\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 1024\n", "Time: 0.010\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.010\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.020\n", "Time: 0.000\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.060\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.140\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.070\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.140\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.150\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.470\n", "Computing subgroups\n", "Time: 0.030\n", "Time: 0.650\n", "Time: 0.060\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 65536\n", "Time: 0.870\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 1.210\n", "Computing subgroups\n", "Time: 0.120\n", "Time: 2.200\n", "Time: 0.060\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.180\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.440\n", "Computing subgroups\n", "Time: 0.030\n", "Time: 0.650\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.410\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.520\n", "Time: 0.070\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.090\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.370\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.480\n", "Time: 0.080\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.360\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.440\n", "Time: 0.060\n", "Computing double\n", "Time: 0.010\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 32768\n", "Time: 0.330\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.670\n", "Computing subgroups\n", "Time: 0.040\n", "Time: 1.050\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.100\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.220\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.340\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.060\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.030\n", "Computing subgroups\n", "Time: 0.000\n", "Time: 0.090\n", "Time: 0.020\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 65536\n", "Time: 0.750\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.450\n", "Computing subgroups\n", "Time: 0.120\n", "Time: 1.320\n", "Time: 0.070\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.100\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.300\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.420\n", "Time: 0.070\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 32768\n", "Time: 0.430\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.380\n", "Computing subgroups\n", "Time: 0.040\n", "Time: 0.850\n", "Time: 0.050\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.340\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.430\n", "Time: 0.080\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 32768\n", "Time: 0.360\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.330\n", "Computing subgroups\n", "Time: 0.070\n", "Time: 0.760\n", "Time: 0.090\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 65536\n", "Time: 0.810\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.780\n", "Computing subgroups\n", "Time: 0.150\n", "Time: 1.750\n", "Time: 0.080\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 32768\n", "Time: 0.460\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.450\n", "Computing subgroups\n", "Time: 0.060\n", "Time: 0.990\n", "Time: 0.070\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 32768\n", "Time: 0.480\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.300\n", "Computing subgroups\n", "Time: 0.050\n", "Time: 0.830\n", "Time: 0.060\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.220\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.350\n", "Computing subgroups\n", "Time: 0.020\n", "Time: 0.600\n", "Time: 0.060\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.010\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 8192\n", "Time: 0.070\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.170\n", "Computing subgroups\n", "Time: 0.030\n", "Time: 0.280\n", "Time: 0.120\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 4096\n", "Time: 0.040\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.260\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.320\n", "Time: 0.090\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 16384\n", "Time: 0.210\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 0.210\n", "Computing subgroups\n", "Time: 0.010\n", "Time: 0.440\n", "Time: 0.040\n", "Computing double\n", "Time: 0.000\n", "Computing normaliser\n", "Time: 0.000\n", "Computing Sylow subgroup\n", "Computing quotient\n", "Order of quotient: 65536\n", "Time: 0.770\n", "Computing section\n", "Time: 0.000\n", "Computing elements of order 2 in the quotient\n", "Time: 1.170\n", "Computing subgroups\n", "Time: 0.140\n", "Time: 2.090\n", "Time: 0.080\n", "Time: 25.250\n", "[ 51, 51 ]\n", "[ 267, 267 ]\n" ] } ], "source": [ "list2 := [CyclicGroup(2)];\n", "time list4 := DoubleList(list2);\n", "time list8 := DoubleList(list4);\n", "time list16 := DoubleList(list8);\n", "time list32 := DoubleList(list16);\n", "time list64 := DoubleList(list32);\n", "\n", "[#list32, NumberOfSmallGroups(32)];\n", "[#list64, NumberOfSmallGroups(64)];" ] }, { "cell_type": "code", "execution_count": 27, "id": "2776cbb8-78e2-41f3-9fda-a6b4c47d3fc0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ C16, C4^2, C2^2:C4, C4:C4, C2*C8, OD16, D8, SD16, Q16, C2^2*C4, C2*D4, C2*Q8, D4:C2, C2^4 ]\n" ] } ], "source": [ "[ GroupName(g) : g in SmallGroups(16) ];" ] }, { "cell_type": "code", "execution_count": null, "id": "9eebd2e7-17ee-4e37-933c-5d90dbe6c462", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Magma", "language": "magma", "name": "magma" }, "language_info": { "codemirror_mode": "magma", "file_extension": ".m", "mimetype": "text/x-magma", "name": "magma", "version": "2.28-4" } }, "nbformat": 4, "nbformat_minor": 5 }