CTL model checking, implemented using BDDs (JavaBDD library).
Usage: program (CTL specification) (path to model file)
e.g.: program 'AG(Not(And("c1"="T", "c2"="T")))' "model.fsm"
Arguments:
- CTL specification (e.g.
Imply(AG("t1"="T"), AF("c1"="T"))
); - path to model file, in the FSM format with the following restriction:
- all the states must be univocally identified by the value of their atomic propositions.
- Install Scala and sbt
- Run tests with
make test
- Prepare jar package with
make package
- Run demo with
java -jar /path/to/ctl-model-checking.jar 'AG(Not(And("c1"="T", "c2"="T")))' ./src/test/resources/mutual-exclusion.fsm
=== 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
Copyright (C) 2015 Federico Poli federpoli@gmail.com
Released under the GNU General Public License, version 3