The implementation language will be Java. Concurrency module it would also be desirable to animate the analysis algorithms so that students can observe their operation. Any system with a Java Development toolkit. F Term rewriting is a general computational mechanism based on the transformation of syntactic expressions. It includes reduction-based program evaluation but also is used in automated support for performing proofs.
Unification is the synactic solution of equations and is an integral part of rewriting in general.
F Abstract algebra abounds in constructions - constructions of, say, algebras from other algebras or of numerical values from given algebras. For finite algebras we may code these as programs to perform the construction. The aim of this project is to build a system exhibiting an area of computational algebra. This will involve representing algebras as data types, and example algebras as values of these types, and then coding constructions as programs. The system should have a good user-interface for inputing, editing and displaying algebras.