Pamphlet files

These documents are works in process. In general they are self-contained literate programs. In all cases so far we have been using Norman Ramsey's noweb literate programming tool. In most cases you can just use
notangle -t8 filename.pamphlet >Makefile
to extract the latex code, create the dvi file, build the executable (if there is one), and run the examples.

axiom.sty is used in most of these pamphlet files.

Axiom documents

The booklet.c function is a enhancement of the standard Web idea used in literate programs. Normally a literate program contains "chunks" which are blocks of quoted code that occurs inline with the document. The format of a chunk name is any character string encloded by << and >> The booklet idea is to give a meaning to the chunk name. The booklet function parses a chunk name. If the name follows standard URL syntax then it is considered a URL. When a URL is found the inlined code is copied from the URL location. This is useful for construction booklets. In this case we use the "file://" syntax to include files from subdirectories. Further extensions are possible but the need has not yet arisen.

The Axiom book is now fully electronic. This is a complete rewrite of the original book by Jenks and Sutor.

The Axiom book has been broken into 4 volumes. The first volume, Axiom Tutorial volume 1 (Tutorial) is a tutorial for beginning users.

The second volume, Axiom Programming volume 2 is on programming Axiom. The CompilerTutorial is an essay in this volume.

The third volume, Axiom Reference volume 3 is a reference work.

The fourth volume, Axiom Developer Guide volume 4 is for developers and people who want to know further details of Axiom development. The debugfile.lisp document is an example of one of the essays that will be included in this volume. The DeveloperNotes are another section.

The original Axiom textbook contains information on the endpapers of the printed volume. The endpaper is a document which captures that information.

The dhmatrix is an example of a fully documented Axiom domain. It uses Richard Paul's PhD thesis as the source of most of the text (with permission) and inlines the actual Axiom code at the appropriate places. This document was written to provide an example for future Axiom domain documentation as well as a test case for various literate programming ideas.

The integrate document is Barry's original thesis which underlies the integration machinery in Axiom. This is gradually being transformed (with permission) into a series of documents which will explain how integration works in Axiom.

The primesp.spad is a literate version of Agrawal, Kayal, and Saxena paper Primes is in P (with permission). It is intended to show the full range of a literate program.

The Planarity paper will be converted (with permission) to another example of a literate Axiom domain.

CATS documents

The Computer Algebra Test Suite (CATS) project is based on the observation that there are a limited number of people who develop computer algorithms, that these algorithms are implemented in a variety of systems, and that the developers usually have a limited number of test cases that are used as regression tests. CATS tries to categorize the tests in some regular way and organize these informal test suites into some standardized hierarchy.

The CATS document is intended to be an organized suite of test programs based on a standardized category of tests. It uses the booklet technology which is an extension of the standard Web programming idea.

Portable GUI documents

Axiom runs on a variety of platforms and has a couple GUI front end programs, the browser and the graphics. Efforts are underway to find a portable solution to the problem of porting these tools to non-X11 platforms such as Windows.

The clim.lisp program is an exploration of the new McClim common lisp user interface. At the present time this code is too unstable to use but we will revisit this lisp-only solution in the future.

The textk program is an attempt to build a portable Axiom front end using the TK function from the Tcl/TK combination. This does not appear to be a viable path and has been abandoned.

The jman, browser, graphics jear documents are the latest approach to the GUI portability problem.

The jman file contains a TK-like front end written in Java. It listens on a socket and is capable of creating and manipulating windows by socket commands.

The browser is a lisp implementation of the Axiom browser using the jman front end.

The graphics is a lisp implementation of the Axiom graphics using the jman front end.

The jear is a lisp implementation of the Axiom sman socket listener.

The graphviz.spad is a domain used to import the functions used by graphviz for graph creation. This is part of the effort to organize the existing algebra in a graphical format.

Research Documents

These documents are my work on various research problems. They contain both an explanation of the problem and code to help solve the problem. Being research documents they most likely contain partially implemented and reasonably broken code.

provisos is the beginnings of a research paper on the subject of provisos. In addition there are some examples.

The simplification problem is attacked with some scratchings about what simplification means at the lowest level of equation manipulation. The rules file contains those notes.

Magman is a multi-terminal simulator which is used to evaluate cryptographic communication security. We are working on using finite presentations as the basis for a new kind of security mechanism. This code is intended to evaluate problems such as a "man in the middle" attack.

The Andrews-Curtis Conjecture is an open problem in Infinite Group Theory. This pamphlet is a naive approach to the enumeration problem. It will be expanded to include a much more agressive move enumerator using a bit-encoding scheme.

The acme document is the beginnings of a more agressive Andrews-Curtis move enumerator. AC moves generate multi-megabyte words so word size and memory usage quickly dominate the computation. A combination of bit-encoding and memory management schemes are developed based on this fact.

The indefinite document is a collection of musings on the problem of representing indefinite computation in computational mathematics. At the present time it is a collection of notes on the subject.

The caissline document is the beginnings of a sample "book" used as input to the CAISSLine project, part of the Zero Learning Curve effort. This book is based on the video lecture by Gilbert Strang at the MIT Open Courseware Site.

The diffeq document is the beginnings of a sample "book" used as input to the CAISSLine project. It is based on the book "Differential Equations DeMystified".

The grptheory.spad is the initial construction of categories and domains to handle Infinite Groups in Axiom.

The structure is an initial layout of the classes and methods in Magnus. This in intended to be used to explain the existing system as well as serves as a basis for reorganizing the classes and methods into a form that is structurally compatible with Axiom.

The RS.lisp is a set of lisp routines for manipulating group symbols. It is a partial effort to research the Reidemesiter-Schreier conjecture.