Skip to main content

pypi

Signal Temporal Logic Monitoring

This package provides an interface to define offline monitoring for Signal Temporal Logic (STL) specifications. The library is written in C++ (and can be used with CMake) and has been wrapped for Python usage using pybind11.

The library is inspired by the following projects:

  • py-metric-temporal-logic is a tool written in pure Python, and provides an elegant interface for evaluating discrete time signals using Metric Temporal Logic (MTL).
  • Breach and S-TaLiRo are Matlab toolboxes designed for falsification and simulation-based testing of cyber-physical systems with STL and MTL specifications, respectively. One of their various features includes the ability to evaluate the robustness of signals against STL/MTL.

The signal-temporal-logic library aims to be different from the above in the following ways:

  • Written for speed and targets Python.
  • Support for multiple quantitative semantics.
    • All the above tools have their own way of computing the quantitative semantics for STL/MTL specifications.
    • This tool will try to support common ways of computing the robustness, but will also have support for other quantitative semantics of STL.

List of Quantitative Semantics

  • Classic Robustness
    • A. Donzé and O. Maler, "Robust Satisfaction of Temporal Logic over Real-Valued Signals," in Formal Modeling and Analysis of Timed Systems, Berlin, Heidelberg, 2010, pp. 92–106.
  • Temporal Logic as Filtering
    • A. Rodionova, E. Bartocci, D. Nickovic, and R. Grosu, "Temporal Logic As Filtering," in Proceedings of the 19th International Conference on Hybrid Systems: Computation and Control, New York, NY, USA, 2016, pp. 11–20.
  • Smooth Cumulative Semantics
    • I. Haghighi, N. Mehdipour, E. Bartocci, and C. Belta, "Control from Signal Temporal Logic Specifications with Smooth Cumulative Quantitative Semantics," arXiv:1904.11611 [cs], Apr. 2019.

Installing Python package

Using pip

$ python3 -m pip install signal-temporal-logic

Build from source

Requirements: cmake >= 3.5, git and a C++ compiler that supports C++17.

First clone the repository:

$ git clone https://github.com/anand-bala/signal-temporal-logic

Then install using pip, install the package:

$ python3 -m pip install -U .

Usage

See the examples/ directory for some usage examples in C++ and Python.

Metadata

Release files for signal-temporal-logic 0.1.3.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for signal-temporal-logic 0.1.3.post1
File
signal_temporal_logic-0.1.3.post1-pp36-pypy36_pp73-manylinux2010_x86_64.whl PyPy 3.6 PyPy 3.6 7.3 Linux glibc 2.12+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2010_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-32 Details
signal_temporal_logic-0.1.3.post1-cp38-cp38-macosx_10_15_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.15+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2010_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32 Details
signal_temporal_logic-0.1.3.post1-cp37-cp37m-macosx_10_15_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2010_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32 Details
signal_temporal_logic-0.1.3.post1-cp36-cp36m-macosx_10_15_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2014_x86_64.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.17+ x86-64 Details
signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2010_i686.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.12+ x86-32 Details
signal_temporal_logic-0.1.3.post1-cp35-cp35m-macosx_10_15_x86_64.whl CPython 3.5 CPython 3.5 pymalloc macOS 10.15+ x86-64 Details

Total release size: 3.5 MB

Release files / signal_temporal_logic-0.1.3.post1-pp36-pypy36_pp73-manylinux2010_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Size 267.2 kB
Tags Linux glibc 2.12+ x86-64 PyPy 3.6 PyPy 3.6 7.3
SHA-256 checksum
How to use checksums
b74fc50fa6ddec5b6b11756864805104c246bdd1cbb71178b264a413d99fa746
BLAKE2b-256 checksum
How to use checksums
831ec4e559451920b203fef244b9806675ff81e03af06936d492e3d7bfcad343
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2014_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2014_x86_64.whl
Size 289.0 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8d3af1e5b0257b310670077ba588ac088996a2681ec388e97742c8bcf03b5e9b
BLAKE2b-256 checksum
How to use checksums
48f5eaf4c92fa08f699f9f62de15654769b97dadc8940d79bde22fde5d353e96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2010_i686.whl

Download URL signal_temporal_logic-0.1.3.post1-cp38-cp38-manylinux2010_i686.whl
Size 276.4 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
7a16c716f087c27a265d9bbc2ca9ecc18f1c5cb3224804489698f30eb71fd623
BLAKE2b-256 checksum
How to use checksums
e08171df94806cbf1c4c0c742ea278b038cf479c29f04f0f92b1e332ec83d99a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp38-cp38-macosx_10_15_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp38-cp38-macosx_10_15_x86_64.whl
Size 242.1 kB
Tags CPython 3.8 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
a377dcd443793a8dd617c20e30042b676f6351ed6ace56a187e84f5407e9fd9c
BLAKE2b-256 checksum
How to use checksums
1325699b6e3cf98052fd3ad28a39132f6ac9cd002eef800f5e1728cdfdf03b9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2014_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2014_x86_64.whl
Size 293.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e1f79f7c85b211588bd8a13eabcf56201fb125f80fb055285e0d8373bb708a75
BLAKE2b-256 checksum
How to use checksums
21e1b915d638ec9121a53037b0191841c9e93dd1f65514efeb759d8f6a15441d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2010_i686.whl

Download URL signal_temporal_logic-0.1.3.post1-cp37-cp37m-manylinux2010_i686.whl
Size 282.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
85d1661a159fe5673062b516647ce2c04aee83f913017f525506543cee6ca632
BLAKE2b-256 checksum
How to use checksums
fb540ec6903cdc71dd41cd69644fd5464c55b73b70c65c1fd81bf2ed2a30a68e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp37-cp37m-macosx_10_15_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp37-cp37m-macosx_10_15_x86_64.whl
Size 233.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
a9071f0728f887e89fdd0515e96979f009be201de882bb3d539e8ee09a9e8739
BLAKE2b-256 checksum
How to use checksums
ba211bddc3509a0984ba412af2827e4ebb3a64c001876b3314e80e6cecdf2e66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2014_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2014_x86_64.whl
Size 293.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8a46f72f7a3025a014cf7f193e5284a5ed49c498edcedd1861594dc7d066ef9a
BLAKE2b-256 checksum
How to use checksums
a8d543eb6a7b480756003373d5728b52084d233482561555569d83ec8871ffee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2010_i686.whl

Download URL signal_temporal_logic-0.1.3.post1-cp36-cp36m-manylinux2010_i686.whl
Size 282.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
5e5ff4ab6e68012aaa4359fe50081c1da070f9027ddaa4c6c354e5b2e8e01435
BLAKE2b-256 checksum
How to use checksums
ce7123e8872ea8bd360eecaca5bc7be58360821594238cbc435a68b4bf81e8ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp36-cp36m-macosx_10_15_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp36-cp36m-macosx_10_15_x86_64.whl
Size 233.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
457ff4fc37024da6e17f165e81f3a1bb15b66d5d3a5f625f24270b3d31aabbb2
BLAKE2b-256 checksum
How to use checksums
72d8d4fb05b8adec61c9d61e7e222b99538e4d8441d42dcc907a8ccb343efe9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2014_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2014_x86_64.whl
Size 293.1 kB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c91ee7cfcfbb79dde7e04b215eeff162f70c186239a5991ca3358256068289ad
BLAKE2b-256 checksum
How to use checksums
63608455f13023632d72ade24b983651c825012a802ce3c734fb88f98fb83428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2010_i686.whl

Download URL signal_temporal_logic-0.1.3.post1-cp35-cp35m-manylinux2010_i686.whl
Size 282.1 kB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
7777908610c1a5ec09b2f545f8d07fd0cda64a0f53271cafa7f0d534d971b94d
BLAKE2b-256 checksum
How to use checksums
aef2b8d2f3097e513b79a98a1381810ffc51ed54999850d2a1893301c1879df6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release files / signal_temporal_logic-0.1.3.post1-cp35-cp35m-macosx_10_15_x86_64.whl

Download URL signal_temporal_logic-0.1.3.post1-cp35-cp35m-macosx_10_15_x86_64.whl
Size 233.7 kB
Tags CPython 3.5 CPython 3.5 pymalloc macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
a8ec966745412b52795a4ded59d3fa1e56ce080491f8e768e610da61bacc94a7
BLAKE2b-256 checksum
How to use checksums
03f294e3f3ab29282fdb2e65016a49c250feec08aaa6a085569fc91c6119d395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.1.3.post1 This release

13 release files

0.1.3

17 release files

0.1.2

17 release files

0.1.1

17 release files

0.1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page