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
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.
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.
book is now
fully electronic. This is a complete rewrite of the
original book by Jenks and Sutor.
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
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
document is an example of one of the essays that will be
included in this volume. The
are another section.
The original Axiom textbook contains information on the
endpapers of the printed volume. The
is a document which
captures that information.
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.
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.
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.
paper will be converted (with permission) to another example of a
literate Axiom domain.
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.
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.
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.
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.
jear documents are the latest
approach to the GUI portability problem.
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.
browser is a lisp implementation
of the Axiom browser using the jman front end.
graphics is a lisp implementation
of the Axiom graphics using the jman front end.
jear is a lisp implementation
of the Axiom sman socket listener.
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
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
The simplification problem is attacked with some scratchings
about what simplification means at the lowest level of equation
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.
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.
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.
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.
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.
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".
is the initial construction of categories and domains to handle
Infinite Groups in Axiom.
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.
is a set of lisp routines for manipulating group symbols.
It is a partial effort to research the Reidemesiter-Schreier