package lascar
Install
Dune Dependency
Authors
Maintainers
Sources
md5=eeed7e1ee24ab2a399305b0cbd4b1ebb
sha512=aa14182eb2da1b4af3d5c3e3fe86cecfe46a49370b626d16a82b5d6771849a9c9d3a3cc62b65aab64a074cfddb19d97bf5ee0a9dcd32b9aa20978da0d9e734ca
Description
A library for manipulating Labeled Transition Systems in OCaml
Published: 08 Mar 2021
README
LASCAr
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 (
.dot
format) and text (.tex
format) representationscomputing 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.
Documentation
The library API is documented here.
Some annotated code snippets can be found here
Other examples are provided in a dedicated directory.
Installation
The latest stable version is provided as a ready-to-install OPAM package.
Installation can also be carried by downloading compiling the source code from github :
git clone https://github.com/jserot/lascar
cd lascar
make
make install
For displaying the generated
.dot
files, 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 the example.
To build the executable, type
make build
To run the generated executable, type
make run
(or simplymake
)
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 Makefile
and will probably have to be adjusted according to your Graphviz
installation.
Dependencies (4)
-
ocaml
>= "4.10" & < "5.0.0"
- ppx_deriving
-
ppxlib
>= "0.13.0"
-
dune
>= "2.6"
Dev Dependencies
None
Used by (1)
-
rfsm
>= "1.6.0" & < "2.0"
Conflicts
None