A set of tools for analyzing languages via logic and automata.
This provides the Language Toolkit (LTK) library and associated executables. There are four main components:
factorize
, which takes as input a set of finite-state automata and writes out for each one a set of constraints that approximates (or, if possible, defines) it.plebby
, an interactive theorem-prover in which one can define languages via logical constraints or import finite-state automata and get information about the languages so defined.classify
, a command-line classification program useful for batch jobs.And the
LTK
library, which includes the functions used byfactorize
andplebby
as well as several other useful tools.
This project began as a simple tool for working with finite-state automata, and has grown considerably more useful in working specifically with sub-regular languages as it has matured.