Table Of ContentDISCRETE
MATHEMATICS
AND
ITS APPLICATIONS
Series Editor
Kenneth H.Rosen, Ph.D.
Charles J.Colbourn and Jeffrey H.Dinitz, The CRC Handbook of Combinatorial
Designs
Charalambos A.Charalambides, Enumerative Combinatorics
Steven Furino, Ying Miao, and Jianxing Yin, Frames and Resolvable Designs:
Uses, Constructions, and Existence
Randy Goldberg and Lance Riek, A Practical Handbook of Speech Coders
Jacob E.Goodman and Joseph O’Rourke, Handbook of Discrete and
Computational Geometry, Second Edition
Jonathan Gross and Jay Yellen, Graph Theory and Its Applications
Jonathan Gross and Jay Yellen, Handbook of Graph Theory
Darrel R.Hankerson, Greg A.Harris, and Peter D.Johnson, Introduction to
Information Theory and Data Compression, Second Edition
Daryl D.Harms, Miroslav Kraetzl, Charles J.Colbourn, and John S.Devitt, Network
Reliability: Experiments with a Symbolic Algebra Environment
David M.Jackson and Terry I.Visentin, An Atlas of Smaller Maps in Orientable
and Nonorientable Surfaces
Richard E.Klima, Ernest Stitzinger, and Neil P.Sigmon, Abstract Algebra
Applications with Maple
Patrick Knupp and Kambiz Salari, Verification of Computer Codes in
Computational Science and Engineering
Donald L.Kreher and Douglas R.Stinson, Combinatorial Algorithms: Generation
Enumeration and Search
Charles C.Lindner and Christopher A.Rodgers, Design Theory
Alfred J.Menezes, Paul C.van Oorschot, and Scott A.Vanstone, Handbook of
Applied Cryptography
Richard A.Mollin, Algebraic Number Theory
Richard A.Mollin, Fundamental Number Theory with Applications
Richard A.Mollin, An Introduction to Cryptography
© 2005 by Chapman & Hall/CRC Press
Continued Titles
Richard A.Mollin, Quadratics
Richard A.Mollin, RSA and Public-Key Cryptography
Kenneth H.Rosen, Handbook of Discrete and Combinatorial Mathematics
Douglas R.Shier and K.T.Wallenius, Applied Mathematical Modeling: A
Multidisciplinary Approach
Douglas R.Stinson, Cryptography: Theory and Practice, Second Edition
Roberto Togneri and Christopher J.deSilva, Fundamentals of Information Theory
and Coding Design
Lawrence C.Washington, Elliptic Curves: Number Theory and Cryptography
Kun-Mao Chao and Bang Ye Wu, Spanning Trees and Optimization Problems
Juergen Bierbrauer, Introduction to Coding Theory
William Kocay and Donald L.Kreher, Graphs, Algorithms, and Optimization
Derek F.Holt with Bettina Eick and Eamonn A.O’Brien, Handbook of
Computational Group Theory
© 2005 by Chapman & Hall/CRC Press
DISCRETE MATHEMATICS AND ITS APPLICATIONS
Series Editor KENNETH H. ROSEN
HANDBOOK OF
COMPUTATIONAL
GROUP THEORY
DEREK F.HOLT
BETTINA EICK
EAMONN A.O’BRIEN
CHAPMAN & HALL/CRC
A CRC Press Company
Boca Raton London New York Washington, D.C.
© 2005 by Chapman & Hall/CRC Press
Library of Congress Cataloging-in-Publication Data
Catalog record is available from the Library of Congress
This book contains information obtained from authentic and highly regarded sources.
Reprinted material is quoted with permission, and sources are indicated. A wide variety
of references are listed. Reasonable efforts have been made to publish reliable data and
information, but the author and the publisher cannot assume responsibility for the
validity of all materials or for the consequences of their use.
Neither this book nor any part may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, microfilming, and recording,
or by any information storage or retrieval system, without prior permission in writing
from the publisher.
The consent of CRC Press does not extend to copying for general distribution, for
promotion, for creating new works, or for resale. Specific permission must be obtained
in writing from CRC Press for such copying.
Direct all inquiries to CRC Press, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431.
Trademark Notice: Product or corporate names may be trademarks or registered
trademarks, and are used only for identification and explanation, without intent to
infringe.
Visit the CRC Press Web site at www.crcpress.com
© 2005 by Chapman & Hall/CRC Press
No claim to original U.S. Government works
International Standard Book Number 1-58488-372-3
Printed in the United States of America 1 2 3 4 5 6 7 8 9 0
Printed on acid-free paper
© 2005 by Chapman & Hall/CRC Press
Preface
This book is about computational group theory, which we shall frequently
abbreviate to CGT. The origins of this lively and active branch of mathematics
can be traced back to the late nineteenth and early twentieth centuries, but
it has been flourishing particularly during the past 30 to 40 years. The aim
of this book is to provide as complete a treatment as possible of all of the
fundamental methods and algorithms in CGT, without straying above a level
suitable for a beginning postgraduate student.
There are currently three specialized books devoted to specific areas of
CGT, namely those of Greg Butler [But91] and Ákos Seress [Ser03] on
algorithms for permutation groups, and the book by Charles Sims [Sim94]
on computation with finitely presented groups. These texts cover their
respective topics in greater detail than we shall do here, although we have
relied heavily on some of the pseudocode presented in [Sim94] in our treatment
of coset enumeration in Chapter 5,
The most basic algorithms in CGT tend to be representation specific; that
is, there are separate methods for groups given as permutation or matrix
groups, groups defined by means of polycyclic presentations, and groups that
are defined using a general finite presentation. We have devoted separate
chapters to algorithms that apply to groups in these different types of
representations, but there are other chapters that cover important methods
involving more than one type. For example, Chapter 6 is about finding
presentations of permutation groups and the connections between coset
enumeration and methods for finding the order of a finite permutation group.
We have also included a chapter (Chapter 11) on the increasing number of
precomputed stored libraries and databases of groups, character tables, etc.
that are now publicly available. They have been playing a major rôle in CGT
in recent years, both as an invaluable resource for the general mathematical
public, and as components for use in some advanced algorithms in CGT. The
library of all finite groups of order up to 2000 (except for order 1024) has
proved to be particularly popular with the wider community.
It is inevitable that our choice of topics and treatment of the individual
topics will reflect the authors’ personal expertise and preferences to some
extent. On the positive side, the final two chapters of the book cover applications
of string-rewriting techniques to CGT (which is, however, treated in much
greater detail in [Sim94]), and the application of finite state automata to the
computation of automatic structures of finitely presented groups. On the
other hand, there may be some topics for which our treatment is more
superficial than it would ideally be.
One such area is the complexity analysis of the algorithms of CGT. During
the 1980s and 1990s some, for the most part friendly and respectful, rivalry
developed between those whose research in CGT was principally directed
towards producing better performance of their code, and those who were
more interested in proving theoretical results concerning the complexity of
v
© 2005 by Chapman & Hall/CRC Press
vi
the algorithms. This study of complexity began with the work of Eugene
Luks, who established a connection in his 1982 article [Luk82] between
permutation group algorithms and the problem of testing two finite graphs
for isomorphism. Our emphasis in this book will be more geared towards
algorithms that perform well in practice, rather than those with the best
theoretical complexity. Fortunately, Seress’ book [Ser03] includes a very
thorough treatment of complexity issues, and so we can safely refer the
interested reader there. In any case, as machines become faster, computer
memories larger, and bigger and bigger groups come within the range of
practical computation, it is becoming more and more the case that those
algorithms with the more favourable complexity will also run faster when
implemented.
The important topic of computational group representation theory and
computations with group characters is perhaps not treated as thoroughly as
it might be in this book. We have covered some of the basic material in
Chapter 7, but there is unfortunately no specialized book on this topic. For a
brief survey of the area, we can refer the reader to the article by Gerhard
Hiss [His03].
One of the most active areas of research in CGT at the present time, both
from the viewpoint of complexity and of practical performance, is the
development of effective methods for computing with large finite groups of
matrices. Much of this material is beyond the scope of this book. It is, in any
case, developing and changing too rapidly to make it sensible to attempt to
cover it properly here. Some pointers to the literature will of course be provided,
mainly in Section 7.8.
Yet another topic that is beyond the scope of this book, but which is of
increasing importance in CGT, is computational Lie theory. This includes
computations with Coxeter groups, reflection groups, and groups of Lie type
and their representations. It also connects with computations in Lie algebras,
which is an area of independent importance. The article by Cohen, Murray,
and Taylor [CMT04] provides a possible starting point for the interested reader.
The author firmly believes that the correct way to present a mathematical
algorithm is by means of pseudocode, since a textual description will generally
lack precision, and will usually involve rather vague instructions like “carry
on in a similar manner”. So we have included pseudocode for all of the most
basic algorithms, and it is only for the more advanced procedures that we
have occasionally lapsed into sketchy summaries. We are very grateful to
Thomas Cormen who has made his LATEXpackage ‘clrscode’ for displaying
algorithms publicly available. This was used by him and his coauthors in
the well-known textbook on algorithms [CLRS02].
Although working through all but the most trivial examples with procedures
that are intended to be run on a computer can be very tedious, we have
attempted to include illustrative examples for as many algorithms as is
practical.
At the end of each chapter, or sometimes section, we have attempted to
direct the reader’s attention to some applications of the techniques developed
© 2005 by Chapman & Hall/CRC Press
vii
in that chapter either to other areas of mathematics or to other sciences. It is
generally difficult to do this effectively. Although there are many important
and interesting applications of CGT around, the most significant of them
will typically use methods of CGT as only one of many components, and so it
not possible to do them full justice without venturing a long way outside of
the main topic of the book.
We shall assume that the reader is familiar with group theory up to an
advanced undergraduate level, and has a basic knowledge of other topics in
algebra, such as ring and field theory. Chapter 2 includes a more or less
complete survey of the required background material in group theory, but we
shall assume that at least most of the topics reviewed will be already familiar
to readers. Chapter 7 assumes some basic knowledge of group representation
theory, such as the equivalence between matrix representations of a group G
over a field K and KG-modules, but it is interesting to note that many of the
most fundamental algorithms in the area, such as the ‘Meataxe’, use only
rather basic linear algebra.
A number of people have made helpful and detailed comments on draft
versions of the book, and I would particularly like to thank John Cannon,
Bettina Eick, Joachim Neubüser, and Colva Roney-Dougal in this regard.
Most of all, I am grateful to my two coauthors, Bettina Eick and Eamonn
O’Brien for helping me to write parts of the book. The whole of Chapter 8, on
computing in polycyclic groups, was written by Bettina Eick, as were Sections
11.1 and 11.4 on the libraries of primitive groups and of small groups,
respectively. Section 7.8 on computing in matrix groups and Section 9.4 on
computing p-quotients of finitely presented groups were written by Eamonn
O’Brien.
August 2004 Derek Holt
© 2005 by Chapman & Hall/CRC Press
Contents
Notation and displayed procedures xvi
1 A Historical Review of Computational Group Theory 1
2 Background Material 9
2.1 Fundamentals 9
2.1.1 Definitions 9
2.1.2 Subgroups 11
2.1.3 Cyclic and dihedral groups 12
2.1.4 Generators 13
2.1.5 Examples—permutation groups and matrix groups 13
2.1.6 Normal subgroups and quotient groups 14
2.1.7 Homomorphisms and the isomorphism theorems 15
2.2 Group actions 17
2.2.1 Definition and examples 17
2.2.2 Orbits and stabilizers 19
2.2.3 Conjugacy, normalizers, and centralizers 20
2.2.4 Sylow’s theorems 21
2.2.5 Transitivity and primitivity 22
2.3 Series 26
2.3.1 Simple and characteristically simple groups 26
2.3.2 Series 27
2.3.3 The derived series and solvable groups 27
2.3.4 Central series and nilpotent groups 29
2.3.5 The socle of a finite group 31
2.3.6 The Frattini subgroup of a group 32
2.4 Presentations of groups 33
2.4.1 Free groups 33
2.4.2 Group presentations 36
2.4.3 Presentations of group extensions 38
2.4.4 Tietze transformations 40
2.5 Presentations of subgroups 41
2.5.1 Subgroup presentations on Schreier generators 41
2.5.2 Subgroup presentations on a general generating set 44
2.6 Abelian group presentations 46
ix
© 2005 by Chapman & Hall/CRC Press
x
2.7 Representation theory, modules, extensions, derivations, and
complements 48
2.7.1 The terminology of representation theory 49
2.7.2 Semidirect products, complements, derivations, and
first cohomology groups 50
2.7.3 Extensions of modules and the second cohomology
group 52
2.7.4 The actions of automorphisms on cohomology groups 54
2.8 Field theory 56
2.8.1 Field extensions and splitting fields 56
2.8.2 Finite fields 58
2.8.3 Conway polynomials 59
3 Representing Groups on a Computer 61
3.1 Representing groups on computers 61
3.1.1 The fundamental representation types 61
3.1.2 Computational situations 62
3.1.3 Straight-line programs 64
3.1.4 Black-box groups 65
3.2 The use of random methods in CGT 67
3.2.1 Randomized algorithms 67
3.2.2 Finding random elements of groups 69
3.3 Some structural calculations 72
3.3.1 Powers and orders of elements 72
3.3.2 Normal closure 73
3.3.3 The commutator subgroup, derived series, and lower
central series 73
3.4 Computing with homomorphisms 74
3.4.1 Defining and verifying group homomorphisms 74
3.4.2 Desirable facilities 75
4 Computation in Finite Permutation Groups 77
4.1 The calculation of orbits and stabilizers 77
4.1.1 Schreier vectors 79
4.2 Testing for Alt((cid:1)) and Sym((cid:1)) 81
4.3 Finding block systems 82
4.3.1 Introduction 82
4.3.2 The Atkinson algorithm 83
4.3.3 Implementation of the class merging process 85
4.4 Bases and strong generating sets 87
4.4.1 Definitions 87
4.4.2 The Schreier-Sims algorithm 90
4.4.3 Complexity and implementation issues 93
4.4.4 Modifying the strong generating set—shallow Schreier
trees 95
© 2005 by Chapman & Hall/CRC Press
xi
4.4.5 The random Schreier-Sims method 97
4.4.6 The solvable BSGS algorithm 98
4.4.7 Change of base 102
4.5 Homomorphisms from permutation groups 105
4.5.1 The induced action on a union of orbits 105
4.5.2 The induced action on a block system 106
4.5.3 Homomorphisms between permutation groups 107
4.6 Backtrack searches 108
4.6.1 Searching through the elements of a group 110
4.6.2 Pruning the tree 113
4.6.3 Searching for subgroups and coset representatives 114
4.6.4 Automorphism groups of combinatorial structures and
partitions 118
4.6.5 Normalizers and centralizers 121
4.6.6 Intersections of subgroups 124
4.6.7 Transversals and actions on cosets 126
4.6.8 Finding double coset representatives 131
4.7 Sylow subgroups, p-cores, and the solvable radical 132
4.7.1 Reductions involving intransitivity and imprimitivity 133
4.7.2 Computing Sylow subgroups 134
4.7.3 A result on quotient groups of permutation groups 137
4.7.4 Computing the p-core 138
4.7.5 Computing the solvable radical 140
4.7.6 Nonabelian regular normal subgroups 141
4.8 Applications 143
4.8.1 Card shuffling 144
4.8.2 Graphs, block designs, and error-correcting codes 145
4.8.3 Diameters of Cayley graphs 147
4.8.4 Processor interconnection networks 148
5 Coset Enumeration 149
5.1 The basic procedure 150
5.1.1 Coset tables and their properties 151
5.1.2 Defining and scanning 152
5.1.3 Coincidences 156
5.2 Strategies for coset enumeration 162
5.2.1 The relator-based method 162
5.2.2 The coset table-based method 165
5.2.3 Compression and standardization 167
5.2.4 Recent developments and examples 168
5.2.5 Implementation issues 170
5.2.6 The use of coset enumeration in practice 171
5.3 Presentations of subgroups 173
5.3.1 Computing a presentation on Schreier generators 173
5.3.2 Computing a presentation on the user generators 178
© 2005 by Chapman & Hall/CRC Press