Skip to content

Create DOT images from DFAs, with the option of interleaving the DFA (to represent multi-threading) or applying trace-based symmetry reduction or reachability reduction.

License

Notifications You must be signed in to change notification settings

danyalette/mara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mara

Create DOT graphs from DFAs, with the option of interleaving the DFA (to represent multi-threading) or applying trace-based symmetry reduction or reachability reduction.

cabal new-build
cabal new-run --  mara -f thread-templates/simple.tt -c -n 3 | tail -n +2 | dot -Tpng > img/simple.png

The example thread template file thread-templates/simple.tt contains:

{
    "states": ["q0", "q1"]
  , "alphabet": ["i"]
  , "initialState": "q0"
  , "transitions": [["q0", "i", "q1"], ["q1", "i", "q0"]]
  , "finalStates": ["q1"]
  , "caption": "Simple Thread Template"
}

The cabal run command above produces the following image: 4-Threaded Simple

Options

  -f,--file FILEPATH       Path to thread template file.
  -n,--threadcount INT     Number of threads. (default: 1)
  -c,--cluster             Whether to cluster states.
  -t,--tracereduce         Whether to apply trace reduction.
  -r,--reachreduce         Whether to apply reachability reduction.
  -h,--help                Show this help text

About

Create DOT images from DFAs, with the option of interleaving the DFA (to represent multi-threading) or applying trace-based symmetry reduction or reachability reduction.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published