You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1603 lines
44 KiB
Plaintext

{
"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<G -> 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
}