AutomataLib :: Incremental

A library for incremental automata construction. This artifact contains algorithms for incrementally constructing DFAs (both prefix-closed and non-prefix-closed) and Mealy machines from a finite, incrementally growing set of example inputs/outputs.

License

License

Categories

Categories

Net Auto Application Layer Libs Code Generators
GroupId

GroupId

net.automatalib
ArtifactId

ArtifactId

automata-incremental
Last Version

Last Version

0.10.0
Release Date

Release Date

Type

Type

jar
Description

Description

AutomataLib :: Incremental
A library for incremental automata construction. This artifact contains algorithms for incrementally constructing DFAs (both prefix-closed and non-prefix-closed) and Mealy machines from a finite, incrementally growing set of example inputs/outputs.

Download automata-incremental

How to add to project

<!-- https://jarcasting.com/artifacts/net.automatalib/automata-incremental/ -->
<dependency>
    <groupId>net.automatalib</groupId>
    <artifactId>automata-incremental</artifactId>
    <version>0.10.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.automatalib/automata-incremental/
implementation 'net.automatalib:automata-incremental:0.10.0'
// https://jarcasting.com/artifacts/net.automatalib/automata-incremental/
implementation ("net.automatalib:automata-incremental:0.10.0")
'net.automatalib:automata-incremental:jar:0.10.0'
<dependency org="net.automatalib" name="automata-incremental" rev="0.10.0">
  <artifact name="automata-incremental" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.automatalib', module='automata-incremental', version='0.10.0')
)
libraryDependencies += "net.automatalib" % "automata-incremental" % "0.10.0"
[net.automatalib/automata-incremental "0.10.0"]

Dependencies

compile (7)

Group / Artifact Type Version
net.automatalib : automata-api jar 0.10.0
net.automatalib : automata-commons-util jar 0.10.0
net.automatalib : automata-core jar 0.10.0
net.automatalib : automata-commons-smartcollections jar 0.10.0
net.automatalib : automata-util jar 0.10.0
com.google.guava : guava jar 29.0-jre
org.checkerframework : checker-qual jar 3.7.0

test (3)

Group / Artifact Type Version
net.automatalib : automata-jung-visualizer jar 0.10.0
net.java.openjdk.cacio : cacio-tta jar 1.9
org.testng : testng jar 7.1.0

Project Modules

There are no modules declared in this project.

AutomataLib

Build Status Build Status Coverage Status Maven Central

AutomataLib is a free, open source (Apache License, v2.0) Java library for modeling automata, graphs, and transition systems.

About

AutomataLib is developed at the Dortmund University of Technology, Germany. Its original purpose is to serve as the automaton framework for the LearnLib active automata learning library. However, it is completely independent of LearnLib and can be used for other projects as well.

AutomataLib supports modeling a variety of graph-based structures. Currently, it covers generic transition systems, Deterministic Finite Automata (DFA) and Mealy machines as well as more advanced structures such as Visibly Pushdown Automata (VPDA).

Models of AutomataLib can be (de-)serialized (from) to one of the various supported serialization formats and may be visualized using either the GraphViz or JUNG library. Furthermore, a plethora of graph-/automata-based algorithms is implemented, covering the following topics:

  • graph theory (traversal, shortest paths, strongly-connected components)
  • automata theory (equivalence, minimization)
  • model checking (adaptive distinguishing sequences, W(p)Method, characterizing sets, state/transition covers, LTL checking (via LTSMin))

While we strive to deliver code at a high quality, please note that there exist parts of the library that still need thorough testing. Contributions -- whether it is in the form of new features, better documentation or tests -- are welcome.

Build Instructions

For simply using AutomataLib you may use the Maven artifacts which are available in the Maven Central repository. It is also possible to download a bundled distribution artifact if you want to use AutomataLib without Maven support. Note that AutomataLib requires Java 8 or newer.

Building development versions

If you intend to use development versions of AutomataLib, you can either use the deployed SNAPSHOT artifacts from the continuous integration server (see Using Development Versions) or build them yourself. Simply clone the development branch of the repository

git clone -b develop --single-branch https://github.com/LearnLib/automatalib.git

and run a single mvn clean install. This will build all the required maven artifacts and will install them in your local Maven repository so that you can reference them in other projects.

If you plan to use a development version of AutomataLib in an environment where no Maven support is available, simply run mvn clean package -Pbundles. The respective JARs are then available under distribution/target/bundles.

Developing AutomataLib

For developing the code base of AutomataLib it is suggested to use one of the major Java IDEs which come with out-of-the-box Maven support.

  • For IntelliJ IDEA:

    1. Select File -> New -> Project from existing sources and select the folder containing the development checkout.
    2. Choose "Import Project from external model", select "Maven" and click Next.
    3. Configure the project to your liking but make sure to check "Import Maven projects automatically" and have "Generated sources folders" set to "Detect automatically".
    4. Click Next until the project is imported (no Maven profile needs to be selected).
  • For Eclipse:

    1. Note: AutomataLib uses annotation processing on several occasions throughout the build process. This is usually handled correctly by Maven, however, for Eclipse you need to install the m2e-apt-plugin and activate annotation processing afterwards (see the LearnLib issue #32).
    2. Select File -> Import... and select "Existing Maven Projects".
    3. Select the folder containing the development checkout as the root directory and click Finish.

Documentation

Mailing Lists

Maintainers

net.automatalib

LearnLib

Versions

Version
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.0
0.5.2
0.5.1
0.4.1
0.4.0
0.3.1-ase2013-tutorial-r1
0.3.1-ase2013-tutorial
0.3.1
0.3.0