package lascar

  1. Overview
  2. Docs
A library for manipulating Labeled Transition Systems in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

0.7.0.tar.gz
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) representations

  • 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.

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 simply make)

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)

  1. ocaml >= "4.10" & < "5.0.0"
  2. ppx_deriving
  3. ppxlib >= "0.13.0"
  4. dune >= "2.6"

Dev Dependencies

None

Used by (1)

  1. rfsm >= "1.6.0" & < "2.0"

Conflicts

None

OCaml

Innovation. Community. Security.