LearnLib is a free and open source (Apache License 2.0) Java framework for automata learning. It is mainly being developed at the Chair of Programming Systems at TU Dortmund University, Germany. 20 years of research in the field of automated learning as well as our experience in engineering software have gone into the development of LearnLib.


In order to start using the latest, stable release of LearnLib in your Maven project, include the following snippet into the dependencies section of the pom.xml.

  <!-- other dependencies -->

Note: This dependency will add all components of LearnLib to your project. If you only need a subset, have a look at the List of LearnLib Artifacts to get an overview of the individual modules available on Maven Central.

If you are not using any build management, you can also download the distribution artifacts of LearnLib, with and without its dependencies.

Examples Wiki API docs


LearnLib provides a sophisticated set of active and passive learning algorithms for various automaton models as well as a variety of equivalence approximation strategies. Its modular, generic and extensible nature allows you to instantiate learning experiments that are tailored specifically to your needs. See the figure and the listing below to get a quick overview over all relevant features.

Learning Algorithms
Data Structures
Counterexample Analysis
Equivalence Queries
Conformance Tests
Equivalence Tests
Import / Export
SUL Adapter

Learning algorithms

Algorithm (active) Target models   Algorithm (passive) Models
ADT Mealy   RPNI (incl. variants) DFA Mealy Moore
DHC Mealy      
Kearns & Vazirani DFA Mealy      
L* (incl. variants) DFA Mealy Moore      
NL* NFA      
Observation Pack DFA Mealy Moore VPA      
OML DFA Mealy      
Procedural SPA SBA SPMM      
TTT DFA Mealy Moore VPA      

Equivalence approximation strategies

  • Complete, depth-bounded exploration
  • Random words
  • Random walk
  • W-method (incl. variants)
  • Wp-method (incl. variants)

More features

  • Query cache
  • Parallel oracles
  • Reuse filter
  • Abstract to concrete system mapping
  • Generic, extensible design