// Example code from paper 10: // _Cohomology and group extensions in Magma_ by Derek F. Holt // print "Examples from: Cohomology and group extensions in Magma"; load "Paper10_funcs"; ei := GetEchoInput(); SetEchoInput(true); // Section 2: Computing cohomology groups // Subsection 2.3: Some examples G := SL(2, 5); G := CosetImage(G, Sylow(G, 5)); PM := PermutationModule(G, GF(2)); CP := Constituents(PM); CP; M := CP[2]; mu1 := ActionGenerator(M, 1); mu2 := ActionGenerator(M, 2); mu1; mu2; C := CohomologyModule(G, M); H0 := CohomologyGroup(C, 0); H1 := CohomologyGroup(C, 1); H2 := CohomologyGroup(C, 2); H0; H1; H2; nu := OneCocycle(C, H1.1); nu(); nu(); nu(); IdentifyOneCocycle(C, nu); E := Extension(C, H2.1); #E; Category(E); Ngens(E); P := CosetImage(E, sub< E | E.5, E.6, E.7 >); #P; ChiefFactors(P); N := MinimalNormalSubgroups(P); #N; #N[1]; Complements(P, N[1]); S := Sylow(G, 2); CS := CohomologyModule(S, Restriction(M, S)); H2S := CohomologyGroup(CS, 2); H2S; IdentifyTwoCocycle(CS, TwoCocycle(C, H2.1)); IdentifyTwoCocycle(CS, TwoCocycle(C, H2.2)); #Extension(CS, $1); // Subsection 2.4: H^2(G, M) as a subgroup of H^2(P, M) G := OmegaMinus(8, 3); M := GModule(G); time C := CohomologyModule(G, M); time dim := CohomologicalDimension(C, 2); dim; G := OmegaMinus(12, 2); M := GModule(G); /* Use a permutation representation of "G". */ V := VectorSpace(G); P := OrbitImage(G, V.1); Degree(P); mats := [ ActionGenerator(M, i) : i in [1..Ngens(G)] ]; M := GModule(P, mats); time C := CohomologyModule(P, M); time dim := CohomologicalDimension(C, 2); G := POmegaPlus(10, 2); Degree(G); M := PermutationModule(G, GF(2)); I := Constituents(M); I; time C := CohomologyModule(G, I[3]); time dim := CohomologicalDimension(C, 2); // Section 3: Finding group extensions // Subsection 3.3: Classifying the group extensions time E := ExtensionsOfElementaryAbelianGroup(3, 4, Alt(4)); #E; E := ExtensionsOfElementaryAbelianGroup(2, 6, Alt(5)); #E; Q8 := sub< Sym(8) | (1,2,3,4)(5,6,7,8), (1,8,3,6)(2,7,4,5) >; time E := ExtensionsOfSolubleGroup(Q8, CyclicGroup(6)); #E; SetEchoInput(ei);