Simplification is a program that I have written to construct rewrite systems. It is currently at Version 0.1, if only because there is much more to be done with the GUI.
Simplification prompts the user to declare operators and variable names, and then to enter axioms consisting of well-formed formulae. The program then attempts to construct a rewrite system using Knuth-Bendix string rewriting process with this information.
Knuth-Bendix is not guaranteed to converge; Simplification uses an explicit bound on the number of equations processed to prevent an infinite loop. This bound can be changed in the GUI.
The code is mostly written in Python; the GUI is written in Jython to make use of Java's GUI features, and then packaged as a Java JAR file.
To run Simplification, download the JAR file and run it with Java; on Windows, this can be done by double-clicking on the file name.
Jar fileThe following two links lead to source code archives.
Gzipped tar-fileHere is a presentation on Simplification that I gave at the 2004 meeting of the Southeastern Section of the Mathematical Association of America.
Truth and Consequences (PDF file)Here is a presentation on Simplification that I gave at the 2004 Joint Mathematics Meetings.
Using Term Rewriting Systems in Algebra (PDF file)