MAF, the software package to be described in this document, is designed for performing certain computations with finitely presented groups (and monoids). The central component of the package is a library, which, for suitable presentations, allows the caller to compute, and then use, both almost instantly, an automaton that makes it easy to enumerate the group's elements without repetitions, or a similar automaton that can enumerate one of its subgroups, or an automaton that can say which coset of such a subgroup an element of the main group lies in. In principle, this can be done without creating any files, or displaying any information about the computation; the user of the program calling the library may not even be aware that such a computation has taken place, indeed might not even know what was meant by the term group, let alone finitely presented group.
That description will be surprising to anyone who is aware that they have used MAF: he or she, almost certainly a mathematician of some sort, will have experienced MAF as a collection of traditional command-line utilities providing many of the same facilities as KBMAG, and will have found that MAF is a package that emits copious diagnostics about what it is doing, requires its input to provided in text files, and sends its output to similar text files.
The author hopes that the story of how MAF came into existence will not be uninteresting to some. If nothing else it may serve as a cautionary tale about the perils of dabbling in branches of mathematics in which one is not an expert. There is no need to read this story unless you are interested in learning a little about the author. If you are interested then you can read it in How MAF happened, if not then you can start to learn about MAF itself in What is MAF?, or if you have used MAF before, you can find out about recently added features in MAF: What's new?