Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
375 views
unlisted
ubuntu2204
Kernel: SageMath 9.6

Here we check that the ideal II defined in the proof of Proposition 10.17 indeed fully realizes GG for G=C2×C6G = \mathbf{C}_2 \times \mathbf{C}_6 (SmallGroup(12,5)), G=C2×A4G = \mathbf{C}_2 \times \mathbf{A}_4 (SmallGroup(24, 13)), and G=C24⋊C6G = \mathbf{C}_2^4 \rtimes \mathbf{C}_6 (SmallGroup(96,70)).

%run -i FPENAG.py G = gap.SmallGroup(12,5) [ag, bg, cg] = G.Generators() xg = bg*cg kG = gap.GroupRing(GF(2), G) f = gap.Embedding(G, kG) id = gap.Image(f, xg^0) print("G = " + str(gap.StructureDescription(G)) + " of order " + str(G.Order()) + '.') print() x = gap.Image(f, xg) a = gap.Image(f, ag) # Here we define the subgroups V = A : <x^3> and W = A : <x^2> (see the proof). V = G.Subgroup([ag, xg^3]) W = G.Subgroup([ag, xg^2]) print("V = " + str(gap.StructureDescription(V)) + " of order " + str(V.Order()) + '.') print("W = " + str(gap.StructureDescription(W)) + " of order " + str(W.Order()) + '.') # Here we construct the ideal given in the proof of the proposition # that we claim fully realizes G. Jgens = [] for vg in V.Elements(): for wg in W.Elements(): for ep in [0,1]: v = gap.Image(f, vg) w = gap.Image(f, wg) elt = id + v + w*x^(3*ep) + x^(3*ep)*v*x^(-3*ep)*w*x^(3*ep) if elt not in Jgens: Jgens += [elt] J = gap.Ideal(kG, Jgens) # Switch to a smaller set of generators, but check # that we're dealing with exactly the same ideal as J above. Igens = [id + a + x + a*x, id + x^3 + x + x^4] I = gap.Ideal(kG, Jgens) print() print("I == J", I == J) print() kGmodI = kG/I # Check that the ideal I defined in the proof of the proposition # indeed fully realizes G. analyzekGmodI(G, f, id, I, kGmodI, Igens, skipFRCheck=False)
G = C6 x C2 of order 12. V = C2 x C2 of order 4. W = C6 of order 6. I == J True G = C6 x C2 of order 12. G embeds in kG/I. kG/I has 32 elements and 12 units. G is fully realizable.
G = gap.SmallGroup(24,13) print("G = " + str(gap.StructureDescription(G)) + " of order " + str(G.Order()) + '.') print() # Orders: 2, 3, 2, 2 [cg, dg, ag, bg] = G.Generators() xg = cg*dg V = G.Subgroup([ag, bg, xg^3]) W = G.Subgroup([ag, bg, xg^2]) print("V = " + str(gap.StructureDescription(V)) + " of order " + str(V.Order()) + '.') print("W = " + str(gap.StructureDescription(W)) + " of order " + str(W.Order()) + '.') kG = gap.GroupRing(GF(2), G) f = gap.Embedding(G, kG) id = gap.Image(f, xg^0) x = gap.Image(f, xg) a = gap.Image(f, ag) b = gap.Image(f, bg) Jgens = [] for vg in V.Elements(): for wg in W.Elements(): for ep in [0,1]: v = gap.Image(f, vg) w = gap.Image(f, wg) elt = id + v + w*x^(3*ep) + x^(3*ep)*v*x^(-3*ep)*w*x^(3*ep) if elt not in Jgens: Jgens += [elt] J = gap.Ideal(kG, Jgens) Igens = [id + b + x^2 + b*x^2, id + a + x^2 + a*x^2, id + x + x^3 + x^4] I = gap.Ideal(kG, Igens) print() print("I == J", I == J) kGmodI = kG/I analyzekGmodI(G, f, id, I, kGmodI, Igens, skipFRCheck=False)
G = C2 x A4 of order 24. V = C2 x C2 x C2 of order 8. W = A4 of order 12. I == J True G = C2 x A4 of order 24. G embeds in kG/I. kG/I has 64 elements and 24 units. G is fully realizable.
%run -i FPENAG.py G = gap.SmallGroup(96,70) print("G = " + str(gap.StructureDescription(G)) + " of order " + str(G.Order()) + '.') print() # Orders: 2, 3, 2, 2, 2, 2. [x3g, x2g, ag, gg, bg, dg] = G.Generators() xg = x3g*x2g kG = gap.GroupRing(GF(2), G) f = gap.Embedding(G, kG) id = gap.Image(f, ag^0) [x, a, b, g, d] = [gap.Image(f, t) for t in [xg, ag, bg, gg, dg]] # x has order 6, <a, b, g, d> is C_2^4. # G = C_2^4 : C_6, C_6 = <x>. # # The action t |---> x*t*x^(-1) maps # # a |---> a b g d # b |---> b d # g |---> a b # d |---> b print("Checking action identities:") print(x*a*x^(-1) == a*b*g*d, x*b*x^(-1) == b*d, x*g*x^(-1) == a*b, x*d*x^(-1) == b) print() V = G.Subgroup([ag, bg, gg, dg, xg^3]) W = G.Subgroup([ag, bg, gg, dg, xg^2]) print("V = " + str(gap.StructureDescription(V)) + " of order " + str(V.Order()) + '.') print("W = " + str(gap.StructureDescription(W)) + " of order " + str(W.Order()) + '.') Jgens = [] for vg in V.Elements(): for wg in W.Elements(): for ep in [0,1]: v = gap.Image(f, vg) w = gap.Image(f, wg) elt = id + v + w*x^(3*ep) + x^(3*ep)*v*x^(-3*ep)*w*x^(3*ep) Jgens += [elt] J = gap.Ideal(kG, Jgens) g1 = id + x^2+ x^3 + x^5 g2 = id + x^2 + a + a* x^2 Igens = [g1, g2] I = gap.Ideal(kG, Igens) kGmodI = kG/I print() print("I == J", I == J) print() analyzekGmodI(G, f, id, I, kGmodI, Igens, skipFRCheck=False)
G = ((C2 x C2 x C2 x C2) : C2) : C3 of order 96. Checking action identities: True True True True V = (C2 x C2 x C2 x C2) : C2 of order 32. W = (C2 x C2 x C2 x C2) : C3 of order 48. I == J True G = ((C2 x C2 x C2 x C2) : C2) : C3 of order 96. G embeds in kG/I. kG/I has 256 elements and 96 units. G is fully realizable.