nuXmv is a state-of-the-art symbolic model checker for the analysis of finite- and infinite- state systems.
pyxmv
is a (very much WIP) wrapper for the nuXmv command-line interface; it
aims at providing APIs for several features, and comes with a small CLI to
showcase what it can do.
The CLI itself should, in time, become an alternative to the official one with a focus on automation/scriptability/interop with other tools/pipelines/workflows.
Besides nuXmv, the tool requires Python >= 3.10 and Poetry.
After cloning this repository:
cd pyxmv
poetry update
poetry install
pyxmv --help
poetry install --only main # Only installs packages that pyxmv needs to run
poetry install # Also install dev dependencies
poetry install --all-extras # Installs all optional packages
Dev dependencies are packages that are only required for contributing or
testing, such as mypy
. Since v0.3.0 we strive
to have a codebase that can pass at least mypy --allow-redefinition
,
at least on commits tagged with a version number.
At the moment the only optional package is
rich
.
When installed, it provides somewhat fancier output, especially on --help
.
-
Support alternative simulation heuristics
-
Support NuSMV
pyxmv
is MIT-licensed, but it is perfectly useless unless you obtain a copy
of nuXmv. Licensing restrictions forbid me from redistributing it, but it may
be downloaded here