
    The Cayley System for Discrete Algebraic and Combinatorial Structures

                       Greg Butler and John Cannon

        Department of Computer Science, Department of Pure Mathematics
                        University of Sydney



 
1. Introduction

   The Cayley system for discrete algebra and combinatorial theory is designed
to solve hard problems in related areas of algebra, number theory and combinat-
orial theory.  The structures targeted include finite and infinite groups,
fields, matrix rings, polynomial rings, modules, associative algebras, finite
geometries, finite graphs and linear codes. Primary objectives include the
provision of facilities which can

   (a) perform arithmetic efficiently in a variety of groups, rings and fields,

   (b) compute deep structural properties of groups and number fields, and 

   (c) study algebraic and combinatorial structures under the action of a group.

   The Cayley system isquite different to the class of classical algebra
systems of which MACSYMA is typical. The differences include:-
      
    (*) The user is able to create a large number of different computational
domains in which he or she can then proceed to calculate.  With the exception
of Scratchpad, and a small number of special purpose group theory packages
(eg CAS, SOGOS, CAMAC), other computer algebra systems restrict the user to
computing within a small number of predefined structures - typically polynomial
rings over finite fields, the integers, and rings of real or complex functions.

   (*) The system is designed to answer questions not only about individual
elements of an algebraic structure, but more importantly, to answer questions
about the structure as a whole, eg is the structure finite or infinite; list
 the elements that commute with all the elements of the structure. All existing
computer algebra systems are designed to compute with particular elements of a
structure (eg a polynomial ring). None of them has the capability of represent-
ing entire structures and obtaining global information about such structures.

   (*) The objects (types) which the system manipulates include the standard
objects of modern algebra: algebraic structures, algebraic elements, sets, seq-
uences, and mappings.

   (*) The system currently contains a large amount of mathematical knowledge
in the form of algorithmic knowledge (procedures),and  knowledge of a large
number of critical examples and their properties (data base knowledge) while
in the longer term it will additionally contain formal knowledge (definitions,
theorems, etc). 

   Such a system has wide application to problems arising in many branches of
mathematical research. Such areas include group theory, representation theory,
algebraic topology, geometry, number theory, combinatorial theory and graph
theory. Further, applications arise in many areas of modern applied mathematics
including complexity of algorithms, coding theory, data encryption, communicat-
ion network design, mathematical crystallography and solid state physics.



2. Overall Structure of the System


   The system is designed to perform highy efficient computation in a carefully
chosen collection of algebraic and combinatorial structures. The structures are
chosen firstly on the basis of utility, and secondly, on the assumption that
effective algorithms either exist or can be designed for them. The language
permits the user to implement new structures but computation in user-programmed
structures can be expected to be considerably less efficient.

   The system  consists of four principal functional components:

   (1) A very high level programming language that is designed around the basic
concepts of modern algebra: structure, set and mapping;

   (2) A large run-time library containing polished implementations of a wide
range of basic algebraic, geometric and combinatorial algorithms;

   (3) A database containing mathematical knowledge (mainly group theoretic
and geometric knowledge);

   (4) A deduction engine.



3. Computational Domains


   When the complete system is operational it will support computation in the
following types of algebraic and combinatorial structures:

   (*) Fields
          finite fields - GF(q)
          rationals - Q
          cyclotomic number fields
          p-adic number fields
          simple extensions of the rationals (typically low degree)

   (*) Rings
          integers - Z
          integer residue class ring - Zm
          ring of integers of an algebraic number field
          matrix rings
          polynomial rings, R[x,...,z], where R is GF(q), Zm, or Z

   (*) Associative algebras
          matrix algebras

   (*) Modules
          K-modules, where K is GF(q)
          Z-modules
          KG-modules, where K is GF(q) and G is a finite group

   (*) Monoids
          finitely presented monoids

   (*) Groups
          finitely presented groups
          finite p-groups
         finite soluble groups
          permutaion groups
          matrix groups

   (*) Group rings
          group rings over finite fields, residue class rings, and the ring
           of integers
    
   (*) Geometries
          group geometries
          projective geometries
          abstract geometries

   (*) Graphs
          undirected graphs
          directed graphs

   (*) Block designs

   (*) Linear Codes



   The current release of Cayley (V3.8) supports computation in groups, matrix
rings, finite fields, and modules. The first release of Cayley Version 4 due 
out in 1989 will also include polynomial rings, monoids, graphs and codes, while
the remaining structures will follow .

 
4. The Algorithm Knowledge Base


   The algorithm portion of the knowledge base has the ability to compute
detailed information about a very rich class of particular instances of math-
ematical structures. Over the past two decades a great deal of work has been
done on devising algorithms for group theory, representation theory, number
theory, polynomial ring theory, and combinatorial structures. Most of these 
algorithms are now either included in the Cayley system or are in the process
of being implemented.
   We briefly indicate the nature and type of the algorithms, both already
implemented and planned, for the complete system.

   (*) Fields
           Arithmetic
           Discriminant
           Integral basis
           Group of units
           Class group

       Status: Only finite fields are available in V3.

   (*) The Ring of Integers
           Infinite precision arithmetic
           Primality testing
           Factorization
           Congruences
           Primitive roots
           Quadratic reciprocity
           Moebius inversion
           
       Status: Infinite precision integer arithmetic is available in V3.

   (*) Matrix Rings
           Arithmetic
           Subring generated by a set

       Status: Available in V3.

   (*) Associative algebras
           Arithmetic

       Status: To come in V4.

   (*) Polynomial Rings
           Arithmetic
           Gcd
           Factorization
           Ideal generated by a set (Groebner basis)
 
       Status: Currently being implemented.

   (*) Modules
           Arithmetic
           Submodules and quotient modules
           Submodule invariant under group action
           Endomorphism ring

       Status: Modules over finite fields have been implemented by G. Schneider
       as part of V3.

   (*) Monoids
           Knuth-Bendix algorithms

       Status: To come in V4.

   (*) Finitely Presented Groups
           Word operations
           Coset enumeration
           Subgroup presentations (eg Reidemeister-Schreier) 
           Presentation simplification
           Abelian quotient
           Nilpotent quotient
           Generation of p-groups
           Soluble quotient
           Structure of small finite finitely-presented groups

        Status: All are available in V3 except p-group generation and a soluble
        quotient algorithm. Versions of the Todd-Coxeter and nilpotent quotient
        algorithms implemented by G. Havas and M. Newman are included.

   (*) Finite p-groups
           Order of the group
           Fast multiplication of elements (collection)
           Construction of a subgroup
           Normalizer, centralizer, normal closure of a subgroup
           Intersection of subgroups
           Core of a subgroup
           Centre, derived subgroup, Frattini subgroup, Fitting subgroup
           Derived series, upper central series, lower central series
           Conjugacy classes
           Normal subgroups
           Automorphism group
           Isomorphism of two groups
           Character table
           Normal subgroup lattice
           Subgroup lattice (for small groups)

        Status: All available in V3 except automorphism group and isomorphism
        testing. The system is capable of computing with groups of order p^50
        while some functions are applicable to groups of order up to p^200, for
        small primes p. The subgroup lattice code used is that developed for a
        general group by V. Felsch in Aachen.

    (*) Finite Soluble Groups
           As for p-groups, plus
           Hall pi-subgroups
           Sylow basis
           Complement basis
           System normalizer
           Relative system normalizer
           Carter subgroup
           Complements and supplements

        Status: All are available in V3 except complements and supplements. The
        current facilities can handle soluble goups having composition length
        up to 50. 

    (*) Permutation Groups
           As for p-groups, plus
           Base and strong generating set
           Sylow p-subgroup
           Regularity, transitivity, primitivity
           Orbits on points, sets, sequences
           Systems of imprimitivity
           Stabilizer of a point, set of points, sequence of points
           Homomorphisms induced by actions on orbits and systems of 
             imprimitivity
           Elementary abelian regular normal subgroup of a primitive group
           Socle of a primitive group
           Composition factors
 
         Status: All are currently available in V3. It is possible to compute a
         base and strong generating set for a group having degree up to 50,000.
         More detailed computations can be performed in groups having degree 
         up to 10,000.

     (*) Matrix Groups over Finite Fields
           As for p-groups, plus
           Sylow subgroup
           Stabilizer of a vector, subspace
           Homomorphisms induced by actions on point and line orbits

         Status: Available for matrix groups of small degree in V3.

     (*) Representation Theory of Groups
           Table of ordinary characters
           Construction of KG-modules, K a finite field
           Induction and restriction of representations
           Splitting a reducible module
           Composition series for a KG-module
           Simple submodules
           Endomorphism ring of a KG-module
           Indecomposability
           Vertices and Sources

         Status: A good deal of this machinery is avaliable in V3. Much of this
         machinery has been developed for Cayley by G. Schneider in Essen. It is
         possible to split modules of dimension  up to 1000.

     (*) Group rings
            Arithmetic
            Jenning basis
            Canonical maps: augmentation, trace, involution
            Recognize units, idempotents

         Status: To come in V4.

     (*) Cohomology of Groups
            Calculation of first and second cohomology groups
            Group extensions

         Status: Cohomology programs written by Derek Holt are to be installed
         in the fourth quarter of 1988.

     (*) Graphs
            Operations
            Properties: connected, eulerian, hamiltonian, regular, planar
            Cliques
            Diameter, circumference, girth
            Chromatic number, chromatic index, chromatic polynomial
            Automorphism group
            Group actions on a graph

         Status: This module will be installed in the first quarter of 1988.

     (*) Geometries
            Define: group geometries, projective geomeries and abstract
            geometries
            Test incidence of a pair of objects
            Orbits, stabilizers under group actions

         Status: To come in V4.

     (*) Linear Codes
            Weights
            Actions of an automorphism
            Automorphism group

         Status: To come in V4.



5. The Knowledge Base


   As indicated above, the system will ultimately utilize three types of
knowledge: procedural knowledge, knowledge of particular examples, and
theoretical knowledge (definitions and theorems). We believe that the power
of such a system can be greatly enhanced if it has the capability of utilizing
an extensive body of knowledge.

   The examples database will contain a large number of critical examples of
groups, geometries and other combinatorial structures. It is possible
to identify a body of examples of manageable size which are traditionally
used in great variety of studies in group theory, representation theory,
and geometry. For example, those finite simple groups having representations
of manageable size are used extensively in all kinds of studies.

   Already a number of databases are present in the Cayley system and 
others are in preparation by various groups of workers. These include

  (*) Simple groups of order less than a million

  (*) Sporadic simple groups having reasonable degree representations

  (*) Simple groups of Lie type having reasonable degree representations

  (*) Geometries on which these simple groups act

  (*) Perfect groups of order less than a million

  (*) Two-groups of order dividing 256

  (*) Primitive groups of degree up to at least 50

  (*) Transitive groups of degree up to 15

  (*) All groups of order up to 240

  A group database would typically contain definitions and properties
of groups. For example, we might store the group order, a presentation,
character table, modular representations, maximal subgroups, Schur
multiplier etc.

   A novel feature of the data base is that it will have the capability of
storing information about infinite families of groups. This can be achieved
in those situations where it is possible to provide an algorithm which, given
the parameters describing a particular member of some family, will produce,
for example, the information for that particular group. For example, while an
individual presentation would be stored for each sporadic simple group, in the
case of a family, such as the alternating groups, one would employ a procedure
to generate a presentation for any particular alternating group.

   The use of such databases will be seamlessly integrated into the system,
so that when the system is asked to solve some problem, it might attempt to
solve it directly, or attempt to deduce the answer from information stored in
the data base.


6. The Programming Language


   The system is provided with a high-level user programming language which
is intended to provide a natural vehicle for the expression of computations
with algebraic and combinatorial structures. A new language is being implement-
ed for V4 which has the following capabilities:

   (*) The language is designed around the concepts of algebraic structure,
algebraic element, set, sequence and mapping.

   (*) It permits the user to specify a broad range of algebraic and combin-
atorial structures in a fairly natural manner.

   (*) The use of a set/mapping notation enables the user to specify a
great range of constructions and computations in a concise and elegant
manner.

   (*) The language provides a mechanism whereby a user can make a broad
range of assertions about mathematical objects that have been defined earlier.

   (*) The language will eventually incorporate a query language for the
database.

   (*) The language processor will also eventually include a planner whose task
it is to devise an efficient strategy for performing the desired calculation.
The executable program synthesized by the planner will utilize both the algor-
ithm base and the examples base.

   The flavour of the V4 language may be obtained by examining the following
program for computing the degrees of the characters of a p-group. The algorithm
is due to M. Slattery and both the algorithm and the V3 implementation of the
algorithm may be found in the Journal of Symbolic Computation 2 (1986), 51-58.



function chardegs( G );

"Given a p-group defined by a PNG-presentation, determine the degrees on the
characters of G. The character degrees are returned as a sequence whose i-th
entry contains the number of characters having degree p^i."

   p := forder( G )[1];

   if abelian( G ) then
 
      s := [ order( G ) ];

   else

      x := pelt( centre( G ), p );
      s := chardegs( G / < x > );
      t := reldegs( G, < x >, p );
      s := [ s[i] + (p-1)*t[i] : i in [1..#s] ] cat [ (p-1)*t[i] : i in [#s+1..#t]];

   end if;

   return s;

end function;


function reldegs( G, N, p );

   if abelian( G ) then

      s := [ index( G, N ) ];

   else

      Q, f := G / N;
      Z := centre( Q );
      M := (< pelt( Z, p ) >)@f;
      C := centralizer( G, M );
 
      if cyclic( M ) then

         t := reldegs( C, M, p );
 
         if G eq C then

            s := [ p*t[i] : i in [1..#t] ];

         else
     
            s := [ 0 ] cat t;

         end if;

      else

         s := empty;
         y := rep { x : x in M - N | order(x) eq p };

         if G eq C then

            x := pelt( N, p );
   
            for i := 1 to p do

               Q, f := G / < y*x^i >;
               t := reldegs( Q, (M)f, p );
               s := [ s[i] + t[i] : i in [1..#s] ] cat [ t[i] : i in [#s+1..#t] ];

            end for;

         else

            Q, f := C / < y >;
            t := reldegs( Q, (M)f, p );
            s := [ 0 ] cat t;

         end if;

      end if;

   end if;

   return s;

end function;


function pelt( H, p );

   y := rep { x : x in H | x ne H(id) };
   return y^(order(y)/p);

end function;



   8. Current User Base

 
   A version of Cayley primarily restricted to computation with groups
has been distributed since 1982. As of January 1988, some 140
institutions in 21 countries have acquired licences to run the system.
These institutions include:

  ANU                                     U of California-Santa Barbara
  AT&T Bell Laboratories                  U of Chicago
  Birmingham U                            U of Illinois
  CUNY-Graduate Center                    U of Manchester
  Ecole Normale Superieure                U of Manitoba
  ETH, Zuerich                            U of Michigan
  Kansas State U                          U of Minnesota
  King Saud U-Riyadh                      U of Pittsburg
  National U of Singapore                 U of Texas
  Olou U-Finland                          U of Wisconsin-Madison
  Princeton U                             U Essen       
  Queen Mary College                      U Erlangen-Nuernberg
  Rutgers U                               U Giessen
  RWTH Aachen                             U Karlsruhe
  Tata Institute-Bombay                   U Koln
  Tel Aviv U                              U Milan
  U of Arizona                            U Tuebingen
  U of California-Berkeley                U College Galway
  U of California-Los Angeles             Warwick U
  
  
9. Applications

   Various releases of the current Cayley system have been distributed
since 1982. The capabilities of this system are mainly restricted to group
theory. Some 200 papers and theses cite some application of Cayley. We list
some examples of situations where it has been successfully applied:


ALGEBRAIC GRAPH THEORY

  (*) Presentations for cubic graphs - Biggs.

  (*) A new construction of the Rudvalis simple group - Delgado and Weiss.

  (*) Classification of all vertex transitive graphs on 24 points - Praeger
and Royle.

COMBINATORIAL THEORY

  (*) Construction of perfect difference sets - Atkinson.

  (*) Counting with groups and rings - Plesken.

  (*) Analysis of the groups of perfect shuffles - Morrison.

GEOMETRY

  (*) Geometries of the groups PSL( 2, q) - Cruyce.

  (*) Recognition of collineation groups of certain projective planes - Lorimer

  (*) Collineation groups of spreads of PG(3, q) - Volcheck.

GRAPH THEORY

   (*) Construction of a family of regular graphs that are hamiltonian - Berger.

GROUP THEORY

  (*) Subgroup structure of M12 - Buekenhout.

  (*) Maximal subgroups of He and G(2, 4) - Butler.

  (*) Analysis of a family of finitely presented finite groups having
deficiency zero - Kenne.

  (*) Classification of the groups associated with the "triangle" chamber
system - Koehler and Timmesfeld.

  (*) Classification of the minimal 2-groups which act uniserially in
dimension 8 and having class less than 8 - Leedham-Green and McKay.

  (*) Determination of groups of order 128 and 256 - Newman and O'Brien.

  (*) 2-groups data base - Newman and O'Brien.

  (*) Structure of the Sylow 2-subgroup of M24 - Schoenwaelder.

GROUP RINGS

   (*) Group of units in a modular group ring - Sandling.

KNOT THEORY

   (*) Distinguishing eleven crossing knots - Havas and Kovacs.

MATHEMATICAL CRYSTALLOGRAPHY

   (*) Finite quotient groups of the plane crystallographic groups - Felix.

   (*) Subgroup structure of 3-dimensional crystal groups - Moody.

NUMBER THEORY

  (*) Computing Galois groups over the rationals - Soicher and McKay.

  (*) Maximal finite irreducible subgroups of GL(n, Z), n ge 5 - Plesken.

  (*) Constructing lattices with prescribed minimum - Plesken and Pohst.

NUMERICAL ANALYSIS

  (*) Construction of symmetry adapted bases for the solution of 3-dimensional
partial differential equations - Ungricht.

PERMUTATION GROUPS

  (*) Classification of all transitive groups of degree up to 12 - Royle.

REPRESENTATION THEORY

  (*) Character tables of Sylow normalizers of the sporadic simple groups 
- Ostermann.

  (*) Vertices and sources of the 2-modular representations of the Mathieu
groups - Schneider.

  (*) Irreducible 3-modules for PSL( 3, 4) - Schneider.

  (*) Character degrees of p-groups - Slattery.

RING THEORY

  (*) Verbal embeddings of rings in groups - Fournelle and Weston.

TOPOLOGY

  (*) A computer search for homology 3-spheres - Dunwoody.

  (*) Classification of hyperbolic manifolds from regular polyhedra -
Richardson and Rubinstein.



   (10) Implementations


   As of January 1988, Cayley has been implemented on the following processors:


      (*)  SUN 3                      
      (*)  VAX/VMS                    
      (*)  VAX/UNIX bsd 4.3         
      (*)  VAX/ULTRIX
      (*)  IBM 30xx, 43xx under VM/CMS
      (*)  IBM RT
      (*)  Masscomp
      (*)  HP9000 series under UNIX
      (*)  AT&T 3B15
      (*)  Pyramid 
      (*)  Cray 2 (planned for summer 1988)



   (11) Further Information

   
   Further information may be obtained by writing to

          The Secretary
          Computational Algebra Group
          Department of Pure Mathematics
          University of Sydney
          NSW 2006
          Australia


 
    REFERENCES


J.J. Cannon. The basis of a computer system for modern algebra. SYMSAC'81.
Proceedings of the 1981 ACM Symposium on Symbolic and Algebraic Computation,
Snowbird, Utah, August, 1981. Assoc. Comp. Mach., New York, 1981, pp.1-5.

J.J. Cannon. An introduction to the group theory language Cayley. In Comput-
ational Group Theory, edited by M.D. Atkinson, Academic Press, London, 1984,
pp.145-183.

J.J. Cannon. A Language for Group Theory. Department of Pure Mathematics,
University of Sydney, 1982, 1984, 1987. 300 pages.

J.J. Cannon. The group theory system Cayley. To appear in the Journal of
Symbolic Computation.

G. Butler and J.J. Cannon. The design of Cayley - A language for modern algebra.
December, 1987.

G. Butler and J.J. Cannon. Cayley V4 - The user language. Proceedings of the
1988 International Symposium on Symbolic and Algebraic Computation. Rome,
July, 1988.

G. Butler and S. Sridhar. Towards a deductive database for the simple groups
G, |G| < 10^6. Proceedings of the 1988 International Symposium on Symbolic
and Algebraic Computation, Rome, July, 1988.

M.F. Newman and E.A. O'Brien. A Cayley library for the groups of order divid-
ing 128. Proceedings of the Singapore Group Theory Conference, June, 1987.



-------------------------------------------------------------------------------
   THE CAYLEY SYSTEM FOR DISCRETE ALGEBRAIC AND COMBINATORIAL COMPUTATION

                 Announcement of Versions 3.7 and 3.8

 
1. Introduction

   The Cayley system for discrete algebra and combinatorial theory is designed
to solve hard problems in related areas of algebra, number theory and finite 
geometry. 

   Cayley is not simply an alternative to other Computer Algebra systems. It 
supports computation in important new areas of algebra (eg group theory, 
modules) which are not included in the standard systems. Moreover, its design 
is based on a computational model arising from the structural principles of 
modern abstract algebra.

   Cayley enables users to define and to compute in structures such as finite 
and infinite groups, rings, fields and modules.  Features include:

   (*) User definition of the particular algebraic structures needed to solve a
    problem. Each object arising in the course of the computation is then 
    defined in terms of these structures;

   (*) Fast computation in important classes of algebraic structures;

   (*) Correspondence of the user language data types to the central concepts 
    of modern algebra: algebraic structures, algebraic elements, sets, 
    sequences, and mappings; 

   (*) Several hundred built-in functions capable of determining deep 
    structural properties of groups and other structures; and 

   (*) Data bases containing many useful examples of structures (mainly groups 
   at present) are available which further enhance the knowledge-base of the 
   system. 

   Approximately 200 institutions spread over 28 countries have installed the
system and it has found wide application to problems arising in many branches 
of mathematical research including group theory, representation theory, 
topology, knot theory, finite geometry, number theory, combinatorial theory and
graph theory. Further, the system has successfully solved problems arising in 
application areas such as complexity theory, coding theory, data encryption, 
communication network design, discrete fourier transforms, mathematical 
crystallography and solid state physics. Cayley has been cited in approximately
400 papers and theses.

2.   Standard Mathematical Structures Available in Versions 3.7 and 3.8.

   The kernel of the system consists of machinery for representing and computing
with various fundamental types of algebraic structures. Much of the power of the
system derives from the inclusion of a large number of sophisticated algorithms
for group theory, representation theory, number theory, commutative algebra, 
and finite geometry. 

   The structures supported in version 3.7 (distributed first quarter 1990) 
and version 3.8 (to be distributed first quarter 1991) are summarized below.

   (A)  GROUPS

   (a1) Finitely Presented Groups - Computing with Presentations
   (a2) Finitely Presented Groups - Structure of a Finite FP-Group
   (a3) Finite p-groups
   (a4) Finite Soluble Groups
   (a5) Permutation Groups
   (a6) Matrix Groups over Finite Fields and the Integers
   (a7) Ordinary Representations of Finite Groups
   (a8) Modular Representations of Finite Groups  (See also KG-modules)
   (a9) Cohomology of Groups

   (B)  RINGS

   (b1) The Ring of Integers Z
   (b2) The Residue Class Ring Zm  (Version 3.8)
   (b3) Polynomial Rings over Z, Zm and GF(q)  (Version 3.8)
   (b4) Matrix Rings over Z, Zm (Version 3.8) and GF(q)
   (b5) Group Rings over Z, Zm, and GF(q)  (Version 3.8)

   (C) FIELDS

   (c1) Finite Fields
   (c2) The Rational Field   (Version 3.8)
   (c3) Cyclotomic Number Fields  (Version 3.8)

   (D)  MODULES

   (d1) K-Modules, K a finite field
   (d2) KG-modules, K a finite field, G a finite group

   (E) INCIDENCE STRUCTURES

   (e1)  Graphs   (Version 3.8)

3.   Summary of Standard Functions for Permutation Groups

   The built-in functions provided for permutation groups are summarized below 
to illustrate the machinery typically provided for these classes of structures:

         Construction of permutation representations for classical groups:
           Eg  PGL(n,q), PSp(n,q), PSU(n,q^2),...
         Orbits on points, sets of points, and sequences of points
         Systems of imprimitivity
         Base and strong generating set (Sims-Schreier algorithms)
         Stabilizer of a point, set of points, sequence of points
         Homomorphisms induced by actions on orbits and systems of imprimitivity
         Elementary abelian regular normal subgroup of a primitive group
         Socle of a primitive group, composition factors 
         Representation of subgroups, quotient groups
         Permutation representation on the cosets of a subgroup
         Normalizer, centralizer, normal closure, core of a subgroup
         Intersection of subgroups, Sylow p-subgroup, centre, derived subgroup
         Derived-, upper central-, lower central-, p-central-, Jennings-series
         Conjugacy classes, normal subgroup lattice, subgroup lattice 
         Character table, automorphism group
 
Cayley can construct a base and strong generating set and hence basic structural
information for permutation groups of degree up to 100,000 in many cases. More 
detailed computations can be performed with groups having degree up to 10,000.

4. A Simple Example

   The output displayed below was produced by a simple Cayley run which first 
constructs generators for the wreath product (under product action) of the 
groups PGL(2,7) and S5 (producing a group of degree 32768 and order 
513,898,834,821,120) and then determines the isomorphism type of each of its 
composition factors.



SUN/UNIX CAYLEY      V3.8-188      Tue May 29 1990 10:33:40   STORAGE 16000000

>"Create generators for the groups PGL(2, 7) and S5."

>PGL27 = Projective General(2, 7);
>S5 = Symmetric( 5 );

>"Create generators for their wreath product G."
>G = pwreath(PGL27, S5);
>print degree( G );
   32768
>print order( G );
 513898834821120 

"Now compute and print the composition factors."
>print composition factors( G );

COMPOSITION FACTORS OF GROUP K
------------------------------

     G
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Alternating(5)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  A(1, 7)              = L(2, 7)
     *
     |  A(1, 7)              = L(2, 7)
     *
     |  A(1, 7)              = L(2, 7)
     *
     |  A(1, 7)              = L(2, 7)
     *
     |  A(1, 7)              = L(2, 7)
     1

     END OF RUN.
10593.979 SECONDS

5. The Data Bases

   The use of mathematical data bases is an integral part of the system. The 
following databases, built by various workers, are currently distributed with 
the Cayley system:

  (*) Simple groups of order less than a million  (Campbell & Robertson)
  (*) Permutation representations of sporadic simple groups
  (*) Matrix representations (over GF(q)) of sporadic simple groups (Parker)
  (*) Perfect groups of order less than a million  (Holt & Plesken)
  (*) Two-groups of order dividing 256  (O'Brien)
  (*) Primitive groups of degree not exceeding 50  (Sims)
  (*) Transitive groups of degree up to 15  (Royle)
  (*) All groups of order up to 100  (Neubueser & Laue)

6. The Programming Language

   The system is provided with a high-level user programming language which
is designed around the concepts of algebraic structure, algebraic element, set,
sequence and mapping. Constructors are provided which enable the user to define
instances of the standard algebraic structures in a natural manner.

7. Implementations

   Cayley comprises approximately 350,000 lines of C. The system is distributed
only in binary form. An interface is provided to enable users to link their own
code with the Cayley system and then to call it directly from within the Cayley
language.

   As of June 1990, versions of Cayley are available for the following 
processors:

      (*)  SUN 3, SUN 4
      (*)  Apollo M680x0 based models, DN10000                
      (*)  VAX/VMS                    
      (*)  IBM 30xx, 43xx under VM/CMS
      (*)  IBM RT;  IBM PS/2 Models 55, 70 and 80;  IBM RS 6000 series
      (*)  Cadmus PCS

8. Ordering Information

   Cayley is distributed on a subscription basis: a site acquires a licence
for a period (typically three years) and over that period is provided with 
upgrades and new releases. At the present time the system is evolving
rapidly and a major new release is put out each year. The subscription price
varies according to processor type and whether the licencee is a university, 
government, or industrial organization. As an illustration, the university 
price for a version running on a SUN fileserver together with its clients is 
currently $US2000. A discount is available in certain cases for single work-
station versions. 

For more information, or to order the system, contact

            The Secretary, 
            Computational Algebra Group, Pure Mathematics,
            University of Sydney, NSW 2006, Australia

Email:cayley@maths.su.oz.au  Telephone:(+61)(2) 692 3338  Fax:(+61)(2) 692 4534

--------------------------------------------------------------------------------
