LASCAr is a library for manipulating
Labeled Transition Systems (LTS) in OCaml.
LASCAr provides functions for
building and inspecting models of such systems
generating graphical (
.dotformat) and text (
computing execution trees and displaying them in graphical or text format
computing the product (in various flavors) of such systems
LASCAr provides implementations both for "generic" LTS (with or without state attributes) and for "specialized" versions :
deterministic and non-deterministic finite automata (DFA, NFA),
Mealy and Moore automata
Finite State Machines (FSMs)
The library makes a heavy use of functors to support genericity and to maximise code reuse.
The library API is documented
Some annotated code snippets can be found
Other examples are provided in a dedicated directory.
The latest stable version is provided as a ready-to-install OPAM
Installation can also be carried by downloading compiling the source code from
git clone https://github.com/jserot/lascar
For displaying the generated
.dotfiles, you will need to install the
Graphviz suite of tools.
Compiling and running the examples
Each example directory contains both a
Makefile and a
dune file to simplify building and running
To build the executable, type
To run the generated executable, type
make run(or simply
The latest command will also invoke the
.dot file viewer to display the generated graphical
representations of the systems. The name of this viewer is specified in the supplied
will probably have to be adjusted according to your