pnml2pins is a language front-end for the LTSmin model checking tool set. pnml2pins uses the dlopen interface of LTSmin.
make
: https://www.gnu.org/software/makePython >= 3
: https://www.python.org/download/releases/3.0LTSmin >= 2.1
: http://fmt.cs.utwente.nl/tools/ltsminGCC >= 4.8
: https://gcc.gnu.org/. Other C compilers may work as well.
To install pnml2pins run the following commands:
autoreconf -i
to create the configure script./configure
to configure pnml2pins. Provide the option--with-LTSmin=<LTSmin-prefix>
for a different LTSmin prefix. Supply the--prefix=<prefix
for a different install prefix.make
to build the compilation scriptmake install
to install pnml2pins
pnml2pins <petri-net.pnml>
to compile the Petri net into a shared library. The result will be an .so file produced in the PWD.pins2lts-sym <petri-net.so>
to perform reachability analysis of the Petri net with the symbolic back-end.
- Unfolded Petri nets
- 1-safe Petri nets: By means of the NUPN toolspecific syntax
- Sequential explicit (
pins2lts-seq
) - Multi-core explicit (thread safe) (
pins2lts-mc
) - (Mulit-core) Symbolic (Disjunctive Paritioned Transitions, thread safe) (
pins2lts-sym
) - Distributed explicit (
pins2lts-dist
)
- Partial Order Reduction: The state explosion problem (
pins2lts-mc --por
)
- Transition labels for traces/witnesses (
pins2lts-* --action=<transition-name>
) - Print maximum token count over all places
- Token count overflow detection
- Invariants/LTL/mu-calculus formulas over places (
pins2lts-* --invariant=<place=#token-count>
)
- State labels