Library for symbolic automata and symbolic visibly pushdown automata
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
TestSVPA added real interval algebra and tested pi example from paper Oct 23, 2018
automatark @ 6ab1063
.gitattributes dd Feb 3, 2016
pom.xml all compiling happily Nov 8, 2017

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 project TestSVPA.

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. If you haven't done so run "mvn clean install -pl "SVPAlib, TestSVPA" " to only install the library and the test cases.