Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fpoli/ctlmc
CTL model checker, implemented using BDDs (JavaBDD library)
https://github.com/fpoli/ctlmc
bdd ctl model-checking scala
Last synced: 23 days ago
JSON representation
CTL model checker, implemented using BDDs (JavaBDD library)
- Host: GitHub
- URL: https://github.com/fpoli/ctlmc
- Owner: fpoli
- License: gpl-3.0
- Created: 2015-03-25T15:06:43.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-06-24T21:49:00.000Z (over 9 years ago)
- Last Synced: 2024-10-16T04:47:21.827Z (2 months ago)
- Topics: bdd, ctl, model-checking, scala
- Language: Scala
- Homepage:
- Size: 539 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CTL model checking
==================[*CTL*](https://en.wikipedia.org/wiki/Computation_tree_logic)
[model checking](https://en.wikipedia.org/wiki/Model_checking),
implemented using
[BDDs](https://en.wikipedia.org/wiki/Binary_decision_diagram)
([JavaBDD](http://javabdd.sourceforge.net/) library).[![Build Status](https://travis-ci.org/fpoli/ctlmc.svg?branch=master)](https://travis-ci.org/fpoli/ctlmc)
## Usage
Usage: program (CTL specification) (path to model file)
e.g.: program 'AG(Not(And("c1"="T", "c2"="T")))' "model.fsm"Arguments:
1. CTL specification (e.g. `Imply(AG("t1"="T"), AF("c1"="T"))`);
2. path to model file, in the [FSM format](http://www.mcrl2.org/release/user_manual/language_reference/lts.html) with the following restriction:
- all the states must be univocally identified by the value of their atomic propositions.## Quick start
1. Install [Scala](http://www.scala-lang.org/) and [sbt](http://www.scala-sbt.org/)
2. Run tests with `make test`
3. Prepare jar package with `make package`
4. Run demo with `java -jar /path/to/ctl-model-checking.jar 'AG(Not(And("c1"="T", "c2"="T")))' ./src/test/resources/mutual-exclusion.fsm`## Example (output)
=== CTL Model Checking ===
(*) Parsing CTL specification AG(Not(And("c1"="T", "c2"="T"))) ...
(*) Parsing FSM model ./src/test/resources/mutual-exclusion.fsm ...
- 9 atomic propositions
- 9 states
- 14 transitions
(*) Model checking...
[OK] The model satisfies the specification## License
Copyright (C) 2015 Federico Poli
Released under the GNU General Public License, version 3