Releases: autmn-lab/posto_tool
Posto
About The Tool
With the increasing autonomous capabilities of cyber-physical systems, the complexity of their models also increases significantly, thus continually posing challenges to existing formal methods for safety verification. In contrast to model checking, monitoring emerges as an effective lightweight, yet practical verification technique capable of delivering results of practical importance with better scalability. Monitoring involves analyzing logs from an actual system to determine whether a specification (such as a safety property) is violated. Although current monitoring techniques work well in some areas, it has largely been unable to cope with the growing complexity of the models. Monitoring techniques, such as those using reachability methods, may fail to produce results when dealing with complex models like Deep Neural Networks (DNNs). We propose here a novel statistical approach for monitoring that is able to generate results with high probabilistic guarantees.
Posto is a Python-based prototype tool that implements the proposed statistical monitoring technique, enabling an effective monitoring of complex systems, including non-linear systems with DNN-based components, while providing results with high probabilistic guarantees.
Posto provides three main command-line operations:
behavior – draw multiple random trajectories and visualise system evolution under uncertainty.
generateLog – simulate one trajectory, probabilistically sample it, and save it as a .lg log for later analysis.
checkSafety – verify whether logged trajectories satisfy user-defined safety constraints.
Posto supports three model types:
Equation mode – update equations supplied through a JSON model.
ANN mode – system dynamics represented by a trained .h5 neural network model.
Development mode (dev) – supply a custom Python getNextState function without modifying core files.