Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

A symbolic automata library

This efficient automata library allows you to represent large (or infinite) alphabets succinctly.

Symbolic automata

In a symbolic automaton transitions carry predicates instead of concrete symbols. This allows you to represent large characters sets like UTF. For example a transition 0-[a-z]->1 represents a transition for going from state 0 to state 1 with every symbol in the interval [a-z].

You can read more about symbolic automata here:

The library

The library supports:

  • Symbolic automata and all their algorithms (intersection, equivalence, minimization, etc.)
  • Symbolic visibly pushdown automata and all their algorithms
  • Symbolic streaming string transducers
  • Symbolic finite transducer (You can read more about SFT here:
  • The character theory of intervals

Before installing

Use the following instructions if you want to run the benchmarks from

After cloning run:

  • git submodule init
  • git submodule update

Instructions with Eclipse

Requirements: Java SE >= 1.8

The easiest way to use the libraries and build them is to open them in Eclipse. You need to use a recent version of Eclipse (> Mars) otherwise you might see some problems. Import all the libraries in Eclipse as existing maven projects (Right click, import, existing maven projects). Right click on each project -> Maven -> Update project.

The main library resides in the project SVPALib. The character theory of interval resides in the project BooleanAlgebras. To see usage examples of the library check the test folder.

Instructions from command line


  1. Java SE >= 1.8
  2. Apache Maven >= 3.2.1

If you have insatlled automatark just run "mvn clean install" in the symbolicautomata directory.


Library for symbolic automata and symbolic visibly pushdown automata







No releases published


No packages published