• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

ag_data/H03-May-2022-817752

doc/H03-May-2022-4,1043,575

fsa_data/H03-May-2022-253243

kb_data/H03-May-2022-479443

lib/H03-May-2022-27,53421,781

src/H03-May-2022-12,8769,659

subgp_data/H03-May-2022-959837

READMEH A D03-May-20227.8 KiB210151

README

1				KBMAG
2Version 2.4.3						11 March 1999.
3
4KBMAG stands for Knuth-Bendix on Monoids and Automatic Groups.
5The package has three principal applications:
6(i)  A standalone Knuth-Bendix program for finitely presented monoids;
7(ii) A package for calculating the automatic structure of a short-lex
8     automatic group, which supercedes the existing Warwick "Automata" package;
9(iii) A few programs for manipulating finite state automata.
10     (This now includes a program, written by Laurent Bartholdi, for
11      computing the growth function of a finite state automaton.)
12
13and the new features in Version 2.*,
14(iv) A version of the standalone Knuth-Bendix that is specially designed to
15     work with cosets of a subgroup of a group.
16(v) A package for calculating the automatic structure of an automatic coset
17    system (for the cosets of certain subgroups of short-lex automatic groups),
18    and to calculate a presentation of the subgroup.
19(vi) A program for calculating a finite state automaton that accepts a unique
20    word for each element of a suitable subgroup of a short-lex automatic group.
21
22All programs are in standard 'C', but there are three Bourne shell scripts
23(which are not completely essential for using the package).
24It is designed to run on any Unix sytem.
25
26NEW in Version 2.3: It is now possible to use kbmag with more than the
27previous default number of 127 generators. To use up to 65535 generators,
28before making the package, edit the file "defs.h" in the lib directory,
29and change the two lines:
30
31#define MAXGEN MAXCHAR /* maximum number of generators */
32typedef char gen; /* for generators of monoids and groups */
33
34to
35
36#define MAXGEN MAXUSHORT /* maximum number of generators */
37typedef unsigned short gen; /* for generators of monoids and groups */
38
39NEW in Version 2.4: There are one or two new programs, such as
40nfadeterminize, which determinizes a non-deterministic automaton,
41and fsareverse, which compute an fsa accepting the reversed language
42of a given fsa.
43
44There is a new file wordorder.g in the GAP directory written by Sarah Rees,
45which contains experimental GAP routines for computing automatic structures
46using orderings other than shortlex. These still have a few minor bugs,
47and potential users are advised to communicate by e-mail.
48
49Apart from that, the code has been substantially re-organized to
50reduce the number of external variables, so watch out for new bugs!
51
52CONTENTS
53--------
54
55This distribution contains a single directory, kbmag, which contains the
56following files:
57
58README 				(the file you are now reading)
59lib (directory)			.c files for library
60src (directory)			.c source files for executables
61bin (directory)			for executables - empty on distribution
62doc (directory)			documentation
63Makefile			general makefile to make all executables
64kb_data	(directory)		sample data files for Knuith-Bendix program
65ag_data	(directory)		sample data files for automatic groups program
66subgp_data (directory)		sample data files for subgroup & coset programs
67fsa_data (directory)		sample data files for general fsa programs
68gap				some GAP library files
69gapdoc				documentation for the GAP3 share package
70
71You will probably want to put the bin directory into your path.
72
73
74MAKING THE PACKAGE
75------------------
76
77By default, simply type "make" from within the kbmag directory
78
79The default C-compiler is cc; to use gcc, type "make CC=gcc".
80
81The default compiler option is -O; to use -g, for example (if you wish to do
82your own debugging), then type "make COPTS=-g".
83
84To make things in two steps instead of one, first go into the lib directory
85and type "make" (+ any options) and then go into the src directory and type
86"make". (This is what the general "make" does anyway.)
87
88To recompile individual programs later, for example "kbprog", go into the src
89directory and type "make ../bin/kbprog".
90(To do this, the file "fsalib.a" must be present in the lib directory - this
91may have been removed, if you have done "make clean" in the meantime, in which
92case you will need to go back into lib and type "make" again.)
93
94If successful, you can remove .o and .a files by typing "make clean".
95
96You can remove everything created by make (and a few other things besides,
97such as .dvi files) by typing "make distclean".
98
99To do a very quick test, type "make test".
100You should get about 66 lines of output, with nothing which looks like
101an error message, ending with:
102#Subgroup word-acceptor is proved correct!
103If this succeeds, then things are probably working properly
104(although it is not a very thorough test).
105
106This package has not yet been compiled on a wide variety of machines, so
107you may encounter problems. If so, please let me know (and preferably sort the
108problem out yourself first).
109
110
111DOCUMENTATION
112-------------
113
114This is in the directory doc.
115The main documentation is in the latex file manual.tex.
116You need to run "latex manual" twice of course.
117The plain-text file fsa_format is a not completely precise and not completely
118up-to-date description of the file format for finite state automata that is
119used in the programs, and was agreed by the international GASP committee. You
120may be better off not bothering to read this, and just copying and editing the
121example files in the data directories.
122All of the files conform to GAP format, and so can be read from within the
123GAP system (Version 3). (See below.)
124
125
126SAMPLE DATA FILES
127-----------------
128
129These are in the directories kb_data, ag_data subgp_data and fsa_data. They
130correspond roughly to the three principal uses of KBMAG, as a standalone
131Knuth-Bendix program, an automatic groups package, corresponding calculations
132with subgroups and cosets, and a collection of programs for manipulating
133finite state automata. The files in fsa_data are simply the examples in the
134file doc/fsa_format.
135
136
137GAP FILES
138---------
139
140In the directory gap, there are some GAP library files, which contain
141functions that can be used to manipulate finite state automata and rewriting
142systems that are read into GAP from files produced by the programs in the
143package. See the manual for more information.
144
145
146Installing KBMAG as GAP share library package
147---------------------------------------------
148
149If you want to install KBMAG as a share library package for GAP V3, go
150into the directory where GAP resides on your system and from there
151into the directory pkg.  Unpack the tar file kbmag.tar in this
152directory:
153
154        tar xzf kbmag.tar.Z
155
156After this has finished, perform the commands
157
158        cd kbmag
159        make -f Makefile.gap
160
161In order to update the GAP manual follow these instructions:
162
163        cp gapdoc/kbmag.tex ../../doc
164        cp gapdoc/kbmag.bib ../../doc
165        cd ../../doc
166
167Now edit the file manual.tex.  There is a list of lines of the form
168
169        \Include{...}
170
171towards the end of the file. Add the line
172
173        \Include{kbmag}
174
175and, a couple of lines further down, add kbmag to the arguments of the
176command \bibliography:
177
178        \bibliography{manual,kbmag}
179
180All that is left to do now is to run  LaTeX and bibtex:
181
182        latex manual
183        bibtex manual
184        latex manual
185        latex manual
186
187
188When this is finished you should be able to use kbmag from within GAP
189via the GAP function LoadPackage():
190
191    gap> LoadPackage("kbmag");
192
193Typing
194
195    gap> ?KB
196
197gives you an introduction to the package.  Using `?>' one can step
198through the subsequent manual entries.
199
200Note that this way of installing KBMAG creates a subdirectory in the
201directory kbmag/bin with the name of the computer you are working on.
202In this way you can install KBMAG as a share library package on
203different computer architectures that share the same GAP directory.
204If you have several computers with the same architecture sharing the
205same GAP directory it is sufficient to install GAP on one of them and
206create symbolic links in the directory bin for each of the others.
207
208Please report all problems, bugs, etc. to me.
209(Derek Holt, dfh@maths.warwick.ac.uk)
210