🤖 AI Summary
This work addresses the performance bottlenecks of existing online monitoring tools for Signal Temporal Logic (STL) when handling formulas with high time depth and deep nesting. The authors propose mstlo, a high-performance Rust library that establishes a unified monitoring framework supporting multiple STL semantics. By employing a bottom-up dynamic programming approach, mstlo enables incremental monitoring and integrates operator-level caching with streaming extremum computation to enhance efficiency. The system leverages Rust procedural macros to perform static syntax checking of its embedded domain-specific language and provides Python bindings for broader accessibility. Experimental results demonstrate that mstlo significantly outperforms state-of-the-art tools on standard benchmarks, exhibiting exceptional scalability and runtime efficiency—particularly for complex STL specifications.
📝 Abstract
We present mstlo (mistletoe), a Rust library for high-performance online monitoring of signal temporal logic (STL), with Python bindings. The library provides: (i) a unified interface for multiple STL semantics, including Robust Satisfaction Intervals (RoSI) and Boolean evaluation with early verdicts; (ii) an incremental monitoring algorithm based on bottom-up dynamic programming with per-operator caching and streaming extremum computation for temporal operators; and (iii) an embedded STL domain-specific language for both Rust and Python implementations, with procedural macros in Rust for static syntax checking. Benchmarks show scalability and performance improvements over state-of-the-art tools, especially for formulas with large temporal depth and deep nesting.