Let's deal with Tor, Ext and so on:
>LIB "homolog.lib"; >matrix Ps[1][2]=x5y-xy5,x20-x4y16+y20; >matrix Ph[1][1]=x; >Tor(1,Ps,Ph); _[1]=x*gen(1) _[2]=y5*gen(2) _[3]=y15*gen(1)-gen(2) >ideal I1=intersect(ideal(Ps),ideal(Ph)); >ideal I2=ideal(Ps)*ideal(Ph); >modulo(I1,I2);
Now something about Koszul complexes:
>qring Q=groebner(I); >module M=0; >ideal x=maxideal(1); >KoszulHomology(x,M,0); _[1]=y*gen(1); _[2]=x*gen(1); >KoszulHomology(x,M,1); _[1]=y*gen(1); _[2]=y*gen(2); _[3]=x*gen(1); _[4]=x*gen(2); >KoszulHomology(x,M,2); _[1]=y*gen(1); _[2]=x*gen(1); >KoszulHomology(x,M,3); _[1]=0
For a Noetherian local ring A and a finitely generated A-module M, we always have
Modules with depth(M) = dim(M) are called Cohen-Macaulay modules, A is called a Cohen-Macaulay ring if it is a Cohen-Macaulay A-module. Regular local rings are Cohen-Macaulay.
>module M=I*freemodule(1); >CohenMacaulayTest(M); 1 //M is Cohen-Macaulay, because depth(M)=dim(std(Ann(M))) >depth(M); 0 >isCohenMacaulay(I); 0
Well, SL(2,5) has an extraspecial Sylow 2-subgroup (the quaternions of order 8), and so its mod 2 cohomology ring is Cohen-Macaulay.
Finally we decided to play around with the HAP™ package (see [HAP]). Look there for a tremendous amount of more information (we must confess that this stuff is perhaps too difficult for us, but certainly our readers can make use of it).
In the first example we see that there are 4 orbits in the Schur multiplier of N:=AlternatingGroup(6) under the conjugation action of G:=SymmetricGroup(6). Note that the Schur multiplier of N is isomorphic to the second integral homology of N, and that N acts trivial on its Schur multiplier/second homology (for any group N). So we are really interested in orbits under an action of the quotient group G/N.
gap>G:=SymmetricGroup(6);; gap>N:=AlternatingGroup(6);; gap>R:=ResolutionFiniteGroup(N,3);; gap>SchurMultiplier:=Homology(TensorWithIntegers(R),2); [6] gap>#So the Schur multiplier of N is cyclic of order 6. gap>ConjugationHomomorphism:=function(g); >return GroupHomomorphismByFunction(N,N,x->g*x*g^-1); >end;; gap>HomologyMapInducedByConjugation:=function(g) >local f; >f:=EquivariantChainMap(R,R,ConjugationHomomorphism(g)); >f:=TensorWithIntegers(f); >f:=Homology(f,2); >return f; >end;; gap>#Note that (1,2) represents a nontrivial element in G/N. gap>HM:=HomologyMapInducedByConjugation((1,2)); [ f1, f2, f3, f4, f5, f6 ] -> [ f1^4*f2^-3, f1^2*f2^-1, f3, f3^-2*f4^2*f5, f3^-2*f4^2*f5, f6 ] gap>IsomorphismPermGroup(Source(HM)); [ f1, f2, f3, f4, f5, f6 ] -> [ (), (1,2,3)(4,5,6), (1,4)(2,5)(3,6), (), (), ((1,4)((2,5)(3,6) ]
Here Source(HM) is a finitely presented group isomorphic to the cyclic group
So far so good, in the next example we do s.th. else:
gap>P:=SylowSubgroup(MathieuGroup(24),2);; gap>GroupHomology(P,6,2); 143 gap>L:=List(LowerCentralSeries(P), x->GeneratorsOfGroup(x));; L[5]:=[()];; gap>R:=ResolutionNormalSeries(L,7);; gap>ModularHomology(R,6,2); 143
M(24) has a Sylow 2-subgroup P with sixth mod 2 homology
gap>N:=DerivedSubgroup(P);; gap>RelativeSchurMultiplier(P,N); [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
The implications for the game of Chess are only one step away.