GAP
|
Main BranchesDownloads Installation Overview Data Libraries Packages Documentation Contacts FAQ GAP 3 |
||||||||||||||||||||
Find us on GitHubNavigation Tree
|
Preface of GAP 3.1GAP stands for Groups, Algorithms and Programming. The name was chosen to reflect the aim of the system, which is introduced in this manual. Until well into the eighties the interest of pure mathematicians in computational group theory was stirred by, but in most cases also confined to the information that was produced by group theoretical software for their special research problems -- and hampered by the uneasy feeling that one was using black boxes of uncontrollable reliability. However the last years have seen a rapid spread of interest in the understanding, design and even implementation of group theoretical algorithms. These are gradually becoming accepted both as standard tools for a working group theoretician, like certain methods of proof, and as worthwhile objects of study, like connections between notions expressed in theorems. GAP was started as an attempt to meet this interest. Therefore a primary design goal has been to give its user full access to algorithms and the data structures used by them, thus allowing critical study as well as modification of existing methods. We also intend to relieve the user from unwanted technical chores and to assist him in the programming, thus supporting invention and implementation of new algorithms as well as experimentation with them. We have tried to achieve these goals by a design which in addition makes GAP easily portable, even to computers such as Atari ST and Amiga, and at the same time facilitates the maintenance of GAP with the limited resources of an academic environment. While I had felt for some time rather strongly the wish for such a truly open system for computational group theory, the concrete idea of GAP was born when, together with a larger group of students, among whom where Johannes Meier, Alice Niemeyer, Werner Nickel and Martin Schönert who eventually wrote the first version of GAP, I had my first contact with the Maple system at the EUROCAL meeting in Linz/Austria in 1985. Maple demonstrated to us the feasibility of a strong and efficient computer algebra system built from a small kernel, with an interpreted library of routines written in a problem-adapted language. The discussion of the plan of a system for computational group theory organized in a similar way started in the fall of 1985, programming only in the second half of 1986. A first version of GAP was operational by the end of 1986. The system was first presented at the Oberwolfach meeting on computational group theory in May 1988. Version 2.4 was the first officially to be given away from Aachen starting in December 1988. The strong interest in this version, in spite of its still rather small collection of group theoretical routines, as well as constructive criticism by many colleagues, confirmed our belief in the general design principles of the system. Nevertheless over three years have gone by until now in April 1992 version 3.1 is released. A main reason for this much time and the fact that there have not been intermediate releases is that we have found it advisable to make a number of changes to basic data structures until we now hope to have reached a state where we can maintain upward compatibility over further releases, which are planned to follow much more frequently. Of course the time has also been used to extend the scope of the methods implemented in GAP. A rough guess puts the size of the present program library at about eight times the size of that in version 2.4. In spite of this there are still very notable gaps in what I would like to see in GAP. The system that you are getting now consists of four parts:
The policy for the further development of GAP is to keep the kernel as small as possible, extending the set of basic functions only by very selected ones that have proved to be time-critical and, wherever feasible, of general use. In the interest of the possibility of exchanging functions written in the GAP language the kernel has to be maintained in a single place which in the foreseeable future will be Aachen. On the other hand we hope that the design of GAP will allow the library to grow not only by continued work in Aachen but, as does any other part of mathematics, by exchange of contributions from many sides. Our own plans in this respect in the near future include the removal of present restrictions on the degree of permutations and the size of finite fields, the implementation of some further standard methods for working with finite presentations, such as Reidemeister-Schreier and Tietze transformations, extension of the methods for permutation groups, some further tools for working with character tables, and better interactive means of working with the output of the subgroup lattice program. Some of this has already been implemented and just did not make it for the deadline that we had set for inclusion with this release. There are five other points to make on further policy:
GAP is given away under the conditions that have always been in use between mathematicians, i.e. in particular completely in source and free of charge. We hope that the possibility offered by modern technology of depositing GAP on a number of computers to be fetched from them by 'ftp', will assist us in this policy. We want to emphasize, however, two points. GAP is not public domain software; we want to maintain a copyright that in particular forbids commercialization of GAP. Further we ask that use of GAP be quoted in publications like the use of any other mathematical work, and we would be grateful if we could keep track of where GAP is implemented. Therefore we ask you to notify us if you have got GAP, e.g., by sending a short e-mail message to 'gap@samson.math.rwth-aachen.de'. The simple reason, on top of our curiousity, is that as anybody else in an academic environment we have from time to time to prove that we are doing meaningful work. We have established a GAP forum, where interested users can discuss GAP related topics by e-mail. In particular this forum is for questions about GAP, general comments, bug reports, and maybe bug fixes. We will read this forum and answer questions and comments, and distribute bug fixes. Of course others are also invited to answer questions, etc. We will also announce future releases of GAP on this forum. To subscribe send an e-mail message to 'listserv@samson.math.rwth-aachen.de' containing the line 'subscribe gap-forum <your-name>', where <your-name> should be your full name, not your e-mail address. You will receive an acknowledgement, and from then on all e-mail messages sent to 'gap-forum@samson.math.rwth-aachen.de'. 'listserv@samson.math.rwth-aachen.de' also accepts the following requests. 'help' for a short help on how to use 'listserv', 'unsubscribe gap-forum' to unsubscribe, 'recipients gap-forum' to get a list of subscribers, and 'statistics gap-forum' to see how many e-mail messages each subscriber has sent so far. GAP was started as a joint Diplom project of four students whose names have already been mentioned. Since then about 10 finished Diplom projects have contributed to GAP and further students are presently extending the library in the course of their work for the Diplom as well as other members of Lehrstuhl D and colleagues from other institutes. Their individual contributions to the programs and to the manual are documented in the respective files. To all of them as well as to all who have helped proofreading and improving this manual I want to express my thanks for their engagement and enthusiasm. Very special thanks however go to Martin Schönert. Not only does GAP owe many of its basic design features to his profound knowledge of computer languages and the techniques for their implementation, but in many long discussions he has in the name of future users always been the strongest defender of clarity of the design against my impatience and the temptation for "quick and dirty" solutions. As with version 2.4 we send this version out hoping for feedback of constructive criticism. Of course we ask to be notified about bugs, but moreover we shall appreciate any suggestion for the improvement of the basic system as well as of the algorithms in the library. Most of all, however, we hope that in spite of such criticism you will enjoy working with GAP. Aachen, March 31, 1992, Joachim Neubüser. |