Groups Algorithms Programming / Computational...

43
What is group homology? What is gap? A couple of algorithms Groups Algorithms Programming / Computational Homological Group Theory Santiago de Compostela Summer School, July 2007 Graham Ellis & Marc R¨ oder http://www.maths.nuigalway.ie

Transcript of Groups Algorithms Programming / Computational...

Page 1: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Groups Algorithms Programming /Computational Homological Group Theory

Santiago de Compostela Summer School, July 2007

Graham Ellis & Marc Roderhttp://www.maths.nuigalway.ie

Page 2: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Lecture 1:

What is group homology?What is gap?A couple of basic algorithms

Lecture 2:

Integral cohomology of finite/infinite isometry groups andArtin groupsPolytopes, polymake and gap

Lecture 3:

Mod p cohomology of finite groupsLinear algebra computations with gap

Lecture 4:

Integral cohomology of finite groupsProgramming spectral sequences in gap

Page 3: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Tutorial 1:

Permutation groupsFinitely presented groupsLists and basic programming

Tutorial 2:

gap attributes and propertiesMore on permutation groups and finitely presented groupsFinite fields and matrix algebra

Tutorial 3:

Coset enumerationRecords in gap

Group homology and poincare series

Tutorial 4:

Cohomology of group extensionsCohomology of crystallographic groupsLie algebra homology

Page 4: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Heinz Hopf, “Fundamentalgruppe und zweiteBettische Gruppe”, Commentarii Mathematicii Helvetici, 1941:

Theorem

Let B be a path-connected space with π2(B) = 0. Then

H1(B , Z) = π1(B)ab, H2(B , Z) = R∩[F ,F ][R,F ] where F is any free

group with normal subgroup R and isomorphism F/R ∼= π1(B).

Page 5: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Definition (topological version)

The homology of a group G is defined to be the homology of theorbit space B = X/G where X is any contractible space on whichG acts freely.

Page 6: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Example

G = 〈P ,Q | PQ = QP〉 acts on X = R2

P · (x , y) = (x + 1, y)Q · (x , y) = (x , y + 1)

X

PQ

B = X/G

Page 7: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Example

G = 〈P ,Q | PQ = QP〉 acts on X = R2

P · (x , y) = (x + 1, y)Q · (x , y) = (x , y + 1)

X

PQ

B = X/G

Hn(G , Z) = Hn(B, Z) =

0, n = 0Z ⊕ Z, n = 1Z, n = 20, n ≥ 3

Page 8: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

The cellular chain complex

C∗(X ) : · · · → C3(X )d3→ C2(X )

d2→ C1(X )d1→ C0(X )

is a free ZG-resolution:

(Freeness) each Cn(X ) is a free ZG -module

(Exactness) Image(dn+1) = Kernel(dn) for n ≥ 1

(Augmentation) Cokernel(d1) is the trivial ZG -module Z

Definition (algebraic version)

For any free ZG -resolution C∗ and any ZG -module A, set

Hn(G ,A) =ker(Cn ⊗ZA A −→ Cn−1 ⊗ZA A)

image(Cn+1 ⊗ZA A −→ Cn ⊗ZA A)

Page 9: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP is a free, open and extensible software package forcomputation in discrete abstract algebra

Page 10: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP stands for Groups Algorithms Programming

Page 11: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Development began in 1985 under leadership of Joachim Neubuserat Aachen. Version 2.4 released in 1988.

Version 4.1 released in 1999 from St Andrews.

Current version is 4.4 .

Page 12: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

a kernel written in C:

rational arithmetic, finite fields, linear algebra, permutationsand words, lists, records, . . .interpreter for the GAP programming language.a few functions for handling external files and executingexternal programs.a few functions for testing, debugging and timing algorithms.

Page 13: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

a large library of algorithms implemented in the GAPprogramming language.

Page 14: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

data libraries:

all groups of order at most 2000 except order 1024Brauer character tablestables of marks.

Page 15: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

many independent GAP packages of algorithms

Page 16: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

documentation; discussion forum; user support team

Page 17: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

GAP contains

a kernel written in C:

rational arithmetic, finite fields, linear algebra, permutationsand words, lists, records, . . .interpreter for the GAP programming language.a few functions for handling external files and executingexternal programs.a few functions for testing, debugging and timing algorithms.

a large library of algorithms implemented in the GAPprogramming language.

data libraries:

all groups of order at most 2000 except order 1024Brauer character tablestables of marks.

many independent GAP packages of algorithms

documentation; discussion forum; user support team

Page 18: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Who uses GAP?

Students taking an undergraduate/postgraduate algebracourse

Researchers

Others?

Page 19: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Page 20: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> Order( Group( [ (1,2), (1,2,3,4,5,6,7,8,9,10) ] )

3628800

gap>

Page 21: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> Order( Group( [ (1,2), (1,2,3,4,5,6,7,8,9,10) ] )

3628800

gap>

gap> TimeToString(time);

‘‘0.002 sec.’’

gap>

Page 22: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> Order( Group( [ (1,2), (1,2,3,4,5,6,7,8,9,10) ] )

3628800

gap>

gap> Factorial(10);

3628800

gap>

Page 23: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> for G in AllSmallGroups(32) do

> if DerivedSubgroup(G) = Center(G) then

> Print(StructureDescription(G),‘‘\n’’);

> fi;

> od;

Page 24: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> for G in AllSmallGroups(32) do

> if DerivedSubgroup(G) = Center(G) then

> Print(StructureDescription(G),‘‘\n’’);

> fi;

> od;

(C2 x C2 x C2 x C2) : C2

(C4 x C2 x C2) : C2

(C2 x Q8) : C2

(C4 x C2 x C2) : C2

(C4 x C4) : C2

(C2 x C2) . (C2 x C2 x C2)

(C4 x C4) : C2

(C4 x C4) : C2

C4 : Q8

(C2 x D8) : C2

(C2 x Q8) : C2

gap>

Page 25: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> LoadPackage(‘‘HAP’’);

Page 26: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> LoadPackage(‘‘HAP’’);

gap> S:=SylowSubgroup(SL(2,Integers mod 5^3),5)

gap> K5:=MaximalSubgroups(S)[2];

gap> GroupHomology(K5,3);

[ 5, 5, 5, 5, 5, 5, 125 ]

Page 27: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> LoadPackage(‘‘HAP’’);

gap> S:=SylowSubgroup(SL(2,Integers mod 5^3),5)

gap> K5:=MaximalSubgroups(S)[2];

gap> GroupHomology(K5,3);

[ 5, 5, 5, 5, 5, 5, 125 ]

K5 = ker(SL2(Z53) → SL2(Z5)) has order 56 = 15, 625 .

W. Browder & J. Pakianathan [ Trans. American Math. Soc.,1999] first showed H3(Kp, Z) has exponent p3 for odd p .

Pakianathan: Hn(Kp, Z) has exponent ≤ p2 for all but finitelymany n and so Kp is a counter-example to a conjecture ofA. Adem.

Page 28: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> G:=Group( [ (1,2,3,4,5,6,7,8,9,10,11,12,13,

> 14,15,16,17,18,19,20,21,22,23),

> (3,17,10,7,9)(4,13,14,19,5)

> (8,18,11,12,23)(15,20,22,21,16) ]);;

gap> GroupHomology(G,1);

[ ]

gap> GroupHomology(G,2);

[ ]

gap> GroupHomology(G,3);

[ ]

Page 29: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> G:=Group( [ (1,2,3,4,5,6,7,8,9,10,11,12,13,

> 14,15,16,17,18,19,20,21,22,23),

> (3,17,10,7,9)(4,13,14,19,5)

> (8,18,11,12,23)(15,20,22,21,16) ]);;

gap> GroupHomology(G,1);

[ ]

gap> GroupHomology(G,2);

[ ]

gap> GroupHomology(G,3);

[ ]

J. Milgram [J. Group Theory, 2000] first showed thatHn(M23, Z) = 0 for 1 ≤ n ≤ 3, thus disproving a conjecture madeby J.-L. Loday in the 1970s.

Page 30: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> G:=MathieuGroup(11);;

gap> Order(G);

7920

gap> PoincareSeriesPrimePart(G,2,15);

(x^4-x^3+x^2-x+1)/(x^6-x^5+x^4-2*x^3+x^2-x+1)

Page 31: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> G:=MathieuGroup(11);;

gap> Order(G);

7920

gap> PoincareSeriesPrimePart(G,2,15);

(x^4-x^3+x^2-x+1)/(x^6-x^5+x^4-2*x^3+x^2-x+1)

The Poincare series for H∗(M11, Z2) was first calculated (and

proved) in [P.Webb, “A local method in group cohomology”,Comm. Math. Helv. 62 (1987) 135-167].

Page 32: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 1

Given a generating set Y for a permutation group G , we obtain afinite presentation for G by using the Cayley graph Γ = Γ(G ,Y ):

one vertex for each g ∈ G ,

one edge [g , gy ] for each g ∈ G , y ∈ Y .

Page 33: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 1

Given a generating set Y for a permutation group G , we obtain afinite presentation for G by using the Cayley graph Γ = Γ(G ,Y ):

one vertex for each g ∈ G ,

one edge [g , gy ] for each g ∈ G , y ∈ Y .

Any basis for H1(Γ, Z) corresponds to a set of relations R suchthat G = 〈Y : R〉 .

Page 34: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 1

Given a generating set Y for a permutation group G , we obtain afinite presentation for G by using the Cayley graph Γ = Γ(G ,Y ):

one vertex for each g ∈ G ,

one edge [g , gy ] for each g ∈ G , y ∈ Y .

Any basis for H1(Γ, Z) corresponds to a set of relations R suchthat G = 〈Y : R〉 .

Redundant relators in R can be discarded.

Page 35: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 1

Given a generating set Y for a permutation group G , we obtain afinite presentation for G by using the Cayley graph Γ = Γ(G ,Y ):

one vertex for each g ∈ G ,

one edge [g , gy ] for each g ∈ G , y ∈ Y .

Any basis for H1(Γ, Z) corresponds to a set of relations R suchthat G = 〈Y : R〉 .

Redundant relators in R can be discarded.

Exercise: Find a presentation for G = 〈 (1, 2), (1, 2, 3) 〉.

Page 36: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> Y:= [(1,2), (2,3), (3,4) ] ;;

gap> G:=Group( Y );;

gap> CayleyGraphDisplay(G,Y);

Page 37: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

gap> Y:= [(1,2), (2,3), (3,4) ] ;;

gap> G:=Group( Y );;

gap> CayleyGraphDisplay(G,Y);

G = 〈x , y , z : x2 = y2 = z2 = (xy)3 = (yz)3 = (xz)2 = 1〉

Page 38: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Procedure 2

There is no algorithm for deciding if a presentation 〈Y : R〉presents a finite group G .

Page 39: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Procedure 2

The Todd-Coxeter procedure is often successful in producing apermutation representation for G when G is finite. The idea is:

Assign permutations π(y) to each of the generators y ∈ Y in sucha way that the permutations satisfy only the relations π(r) forr ∈ R .

Page 40: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Procedure 2

The Todd-Coxeter procedure is often successful in producing apermutation representation for G when G is finite. The idea is:

Assign permutations π(y) to each of the generators y ∈ Y in sucha way that the permutations satisfy only the relations π(r) forr ∈ R .

Exercise: Find the order, and a permutation representation, ofG = 〈 x , y : yxyx−1 = 1, xyxy−1 = 1 〉.

Page 41: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 3

Given a set Z = {z1, . . . , zk} ≤ Sn of permutations, the order ofthe group G = 〈Z 〉 can be found using:

|G | = |nG | × |Gn|

(where nG = {ng : g ∈ G}, Gn = {g ∈ G : ng = n}).

Page 42: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 3

Given a set Z = {z1, . . . , zk} ≤ Sn of permutations, the order ofthe group G = 〈Z 〉 can be found using:

|G | = |nG | × |Gn|

(where nG = {ng : g ∈ G}, Gn = {g ∈ G : ng = n}).

Gn is generated by

Zn = {(tz)−1

tz : t ∈ T , z ∈ Z}

where T is a transversal for Gn in G , and the coset gGn isrepresented by g ∈ T .

Page 43: Groups Algorithms Programming / Computational ...hamilton.nuigalway.ie/.../Santiago/Lectures/First.pdfWhat is group homology? What is gap? A couple of algorithms Groups Algorithms

What is group homology? What is gap? A couple of algorithms

Algorithm 3

Given a set Z = {z1, . . . , zk} ≤ Sn of permutations, the order ofthe group G = 〈Z 〉 can be found using:

|G | = |nG | × |Gn|

(where nG = {ng : g ∈ G}, Gn = {g ∈ G : ng = n}).

Gn is generated by

Zn = {(tz)−1

tz : t ∈ T , z ∈ Z}

where T is a transversal for Gn in G , and the coset gGn isrepresented by g ∈ T .

Exercise: Find the order of the permutation groupG = 〈 (1, 2), (1, 3, 5) 〉.