Embedding Runtime Verification in Python

Runtime verification consists of verifying that an execution trace satisfies a specification. The specification can be formal, but it can also be informal, e.g. code in a general purpose programming language. In this paper we present the tool PyDejaVu, which explores the boundary between general purpose programming and formal specification. The tool supports a two-phase approach to writing properties, where a property can be expressed in a combination of an operational phase and a declarative phase. The operational phase is expressed in an internal Python DSL (Domain-Specific Language), whereas the declarative phase is expressed in the external DSL Qtl (Quantified Temporal Logic) for first-order past time temporal logic. This approach benefits from the expressiveness of Python and the succinctness and efficiency of monitoring Qtl. The tool builds on the previous runtime verification tool DejaVu monitoring Qtl properties, and is compared with the previous TP-DejaVu tool, which supports a purely external DSL for two-phase runtime verification.

Institutions

Publication Details

Journal
Zenodo (CERN European Organization for Nuclear Research)
Published
2024-10-12
DOI
https://doi.org/10.5281/zenodo.13847188
Primary Topic
Formal Methods in Verification
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Embedding Runtime Verification in Python

Zenodo (CERN European Organization for Nuclear Research)
Formal Methods in Verification
article

Embedding Runtime Verification in Python

article en

Abstract

Runtime verification consists of verifying that an execution trace satisfies a specification. The specification can be formal, but it can also be informal, e.g. code in a general purpose programming language. In this paper we present the tool PyDejaVu, which explores the boundary between general purpose programming and formal specification. The tool supports a two-phase approach to writing properties, where a property can be expressed in a combination of an operational phase and a declarative phase. The operational phase is expressed in an internal Python DSL (Domain-Specific Language), whereas the declarative phase is expressed in the external DSL Qtl (Quantified Temporal Logic) for first-order past time temporal logic. This approach benefits from the expressiveness of Python and the succinctness and efficiency of monitoring Qtl. The tool builds on the previous runtime verification tool DejaVu monitoring Qtl properties, and is compared with the previous TP-DejaVu tool, which supports a purely external DSL for two-phase runtime verification.

Zenodo (CERN European Organization for Nuclear Research)
Jet Propulsion Laboratory (US), Bar-Ilan University (IL)
Quality Education
Openalex Percentile: Top 60%
Formal Methods in Verification
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Embedding Runtime Verification in Python · Zenodo (CERN European Organization for Nuclear Research) (2024) | TGRS Research Map | TGRS