I want to be able to model a system as a finite state machine and test the properties of the model against temporal logic specifications.
I am aware of StateFlow's model-checking capabilities, but if possible I would prefer to use Python because it is open-source. I am also aware of TuLiP as a solid option for designing and simulating finite state machines, but as far as I can tell it does not do model-checking. The FSM package list on the Python wiki seems to be full of similarly implementation-focused packages.
Does anyone know of a different Python package which is capable of model-checking per temporal logic design specifications?
There are plenty of free model checkers such as NuSMV and Spin https://en.wikipedia.org/wiki/List_of_model_checking_tools
https://github.com/johnyf/tool_lists/blob/master/verification_synthesis.md
I doubt that you find many python based tool, but there are a few available
PyNuSMV - a python frontend to NuSMV, industrial strength free model checker https://github.com/sbusard/pynusmv
Spot - an LTL-omega-automata library for model checking with a python binding https://spot.lrde.epita.fr/
Small CTL, CTL* and LTL Buchi automata model checker https://github.com/albertocasagrande/pyModelChecking
PyBoolNet A frontend to NuSMV https://github.com/hklarner/PyBoolNet along with miscellaneous utilities for analysing Boolean networks
Intrepyd a model checker and simulator within a python module, that allow rapid prototyping of "formal methods algorithms" https://github.com/formalmethods/intrepyd
pySMT-based hardware LTL model checker https://github.com/cristian-mattarei/CoSA
HyLaa Hybrid Systems model checker https://github.com/stanleybak/hylaa
Small CTL,CTL* and LTLmodel-checking package https://github.com/albertocasagrande/pyModelChecking