Skip to content


Choose a tag to compare
@mtf90 mtf90 released this 06 Feb 08:54
· 225 commits to develop since this release

Full changelog


  • The {DFA,Mealy,}W{p,}MethodEQOracle(MembershipOracle, int, int) constructor no longer interprets its second int parameter as the batch size, but as an estimate for the expected SUL size. In order to explicitly set the batch size of the oracle, use the {DFA,Mealy,}W{p,}MethodEQOracle(MembershipOracle, int, int, int) constructor. Now, the two parameters lookahead and expectedSize will determine the length of the middle part via Math.max(lookahead, expectedSize - hypothesis.size()). This allows to dynamically adjust the length of the middle part throughout the learning process. See LearnLib/automatalib#32.
  • Several DFA/Mealy specific (oracle) subclasses are now automatically generated. As a result they are no longer an inner class but an independent top-level class. This requires to update the import statements.
  • JSR305 annotations have been replaced with checker-framework annotations.
    • LearnLib (incl. AutomataLib) now follows checker-framework's convention that (non-annotated) types are usually considered non-null unless explicitly annotated with @Nullable.
    • LearnLib (incl. AutomataLib) no longer has a (runtime-) dependency on JSR305 (and other javax.*) annotations or includes them in the distribution artifact. This now makes LearnLib (incl. AutomataLib) compliant with Oracle's binary code license and allows LearnLib (incl. AutomataLib) artifacts as-is to be bundled in binary distributions with Oracle's JDKs/JREs.
  • A lot of code for inferring partial Mealy machines (esp. PartialLStarMealy and PartialObservationTable) has been removed/refactored. The concept of state local inputs is now implemented as a SUL filter and introduces a special StateLocalInputSULOracle which early-answers queries that would traverse unavailable inputs with a previously specified symbol. This way, queries that would traverse undefined input symbols still won't be executed on the SUL but the SUL appears as a 'total' Mealy system to the learner, allowing one to use every currently existing Mealy learner as-is. See the in-tree examples for more information.
  • SULCache no longer implements MembershipOracle.
  • Updated to AutomataLib 0.9.0


  • As a remainder of its initial implementation, the TTTEventListener (and the corresponding event feature in the TTT algorithm) has been removed due to the lack of usage.