homepage: ''
changelog-type: markdown
hash: 995dddb46ebdd2b85109e7bf2bd4e6aab70144992a09e359c5ebfe12bf5bfb03
test-bench-deps:
  tasty-smallcheck: -any
  base: -any
  time: -any
  LTS: -any
  criterion: -any
  smallcheck: -any
  tasty-hunit: -any
  tasty: -any
  QuickCheck: ==2.14
maintainer: aeeralla@galois.com
synopsis: 'LTS: Labelled Transition System'
changelog: |
  # Revision history for LTS

  ## 0.1.0.0 -- YYYY-mm-dd

  * First version. Released on an unsuspecting world.
basic-deps:
  base: '>=4.8.2.0 && <5'
  LTS: -any
  fin: '>=0.1.1 && <0.2'
all-versions:
- 0.1.0.0
author: Ajay Kumar Eeralla
latest: 0.1.0.0
description-type: markdown
description: |+
  ## LTS: Labelled Transition System
  [![Travis](https://api.travis-ci.com/ajayeeralla/LTS.svg?branch=master)](https://travis-ci.com/github/ajayeeralla/LTS)
  [![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/ajayeeralla/LTS/edit/master/LICENSE)

  This is a library that implements a [labelled transition system](https://en.wikipedia.org/wiki/Transition_system) that can be either deterministic or non-deterministic.

  ## Example

  Here is an example to use LTS library:

  ```
  import Data.LTS

  main = do
      let s0 :: LTSState Int = LTSState {stateId=0, out=3}
      let s1 :: LTSState Int = LTSState {stateId=1, out=5}
      let s2 :: LTSState Int = LTSState {stateId=2, out=7}
      let t1 :: Transition Int Char = Transition {transitionFrom=s0, transitionGuard='a', transitionTo=s1}
      let t2 :: Transition Int Char = Transition {transitionFrom=s1, transitionGuard='b', transitionTo=s2}

      putStrLn "depth of LTS [t1, t2]:"
      print (depth [t1, t2] s0)
  ```

license-name: MIT

Update from Hackage at 2020-04-08T18:44:00Z
Update from Hackage at 2020-04-08T18:44:00Z
