Alg, a program for enumerating models of algebraic theories
Alg is a program for enumeration of finite models of single-sorted first-order theories. Such a theory is given by a signature (a list of constants, operations and relations) and axioms expressed in first-order logic. Examples of first-order theories include groups, lattices, rings, fields, posets, graphs, and many others. Alg can do the following:
- list or count all non-isomorphic models of a given theory,
- list or count all non-isomorphic indecomposable models of a given theory.
A Turing machine simulator
Another Turing machine simulator and compiler
A more sophisticated Turing machine simulator with a proper parser and syntax for defining them. It also allows writing multi-tape Turing machines and running them. Part of the project is also a compiler from a simple variant of call-by-value λ-calculus to 5-tape Turing machines with a few examples showing how the compiled Turing machine computes the given function.
The source, with examples and more details, is on Bitbucket.