A Java library and framework for learning Symbolic Mealy Automata built on top of AutomataLib and the Symbolic Automata toolkit.
- Java 8 or higher
- Maven 3.6 or higher
This project depends on the Symbolic Automata toolkit for symbolic finite automata (SFA) support. Clone and install it into your local Maven repository:
git clone --recursive https://github.com/lorisdanto/symbolicautomata.git /tmp/symbolicautomata
# If you omitted --recursive above, initialize submodules:
git -C /tmp/symbolicautomata submodule update --init --recursive
cd /tmp/symbolicautomata
# Use -DskipTests to speed up and, if necessary, -Dmaven.repo.local to point to a writable repo
mvn clean install -DskipTestsClone this repository and run Maven. After installing the Symbolic Automata toolkit (models module), all dependencies will be pulled from your local repository and Maven Central.
git clone https://github.com/SoftwareFoundationGroupAtKyotoU/learningsma.git
cd learningsma
mvn clean installAside from the Symbolic Automata toolkit (models module installed above), all other dependencies are pulled automatically by Maven. Notable libraries include:
- AutomataLib (via
net.automatalib.distribution:automata-distribution) - SAT4J (
org.ow2.sat4j:org.ow2.sat4j.core) - Guava (
com.google.guava:guava) - Apache Commons Lang & Collections
- JavaFX (controls & FXML)
Several example classes are provided in src/main/java/example. For instance:
mvn exec:java -Dexec.mainClass="example.Example"- Kengo Irie, Masaki Waga, Kohei Suenaga, "Active Learning of Symbolic Mealy Automata." ICTAC 2025.