English
Related papers

Related papers: Verified Rust Monitors for Lola Specifications

200 papers

Precisely modeling complex systems like cyber-physical systems is challenging, which often render model-based system verification techniques like model checking infeasible. To overcome this challenge, we propose a method called LAR to…

Software Engineering · Computer Science 2019-11-21 Jingyi Wang , Jun Sun , Shengchao Qin , Cyrille Jegourel

Researchers have recently designed a number of application-specific fault tolerance mechanisms that enable applications to either be naturally resilient to errors or include additional detection and correction steps that can bring the…

Programming Languages · Computer Science 2018-05-17 Brett Boston , Zoe Gong , Michael Carbin

Runtime monitoring is an essential part of guaranteeing the safety of cyber-physical systems. Recently, runtime monitoring frameworks based on formal specification languages gained momentum. These languages provide valuable abstractions for…

Programming Languages · Computer Science 2023-11-15 Bernd Finkbeiner , Florian Kohn , Malte Schledjewski

Formal verification provides strong safety guarantees but only for models of cyber-physical systems. Hybrid system models describe the required interplay of computation and physical dynamics, which is crucial to guarantee what computations…

Logic in Computer Science · Computer Science 2019-02-26 Stefan Mitsch , André Platzer

Stream-based monitoring is a well-established runtime verification approach which relates input streams, representing sensor readings from the monitored system, with output streams that capture filtered or aggregated results. In such…

Logic in Computer Science · Computer Science 2025-07-29 Jan Baumeister , Bernd Finkbeiner , Frederik Scheerer

Formally verified compilers and formally verified static analyzers are a solution to the problem that certain industries face when they have to demonstrate to authorities that the object code they run truly corresponds to its source code…

Logic in Computer Science · Computer Science 2024-07-12 David Monniaux

The verification and validation of cyber-physical systems is known to be a difficult problem due to the different modeling abstractions used for control components and for software components. A recent trend to address this difficulty is to…

Logic in Computer Science · Computer Science 2010-10-28 Pritam Roy , Paulo Tabuada , Rupak Majumdar

Although Rust primarily intends to be a safe programming language that excludes undefined behaviour, it provides its users with the escape hatch of unsafe Rust, allowing them to circumvent some of its strong compile-time checks. This…

Programming Languages · Computer Science 2025-10-28 Alex Le Blanc , Patrick Lam

Runtime Monitoring is a lightweight and dynamic verification technique that involves observing the internal operations of a software system and/or its interactions with other external entities, with the aim of determining whether the system…

Logic in Computer Science · Computer Science 2017-08-25 Ian Cassar , Adrian Francalanza , Luca Aceto , Anna Ingólfsdóttir

We propose a new approach for modelling the functional behaviour of an Earth observation satellite. We leverage this approach in order to develop a safety critical software, a "telecommand verifier", that is in charge of checking onboard…

Software Engineering · Computer Science 2020-02-11 Vincent Mussot , Silvano Dal Zilio , Loic Correnson , Serge Rainjonneau , Yves Bardout , Grégoire Scano

Rust is a programming language that uses a concept of ownership to guarantee memory safety without the use of a garbage collector. However, some error messages related to ownership can be difficult to understand and fix, particularly those…

Software Engineering · Computer Science 2023-09-14 Ruochen Wang , Molly Maclaren , Michael Coblenz

This paper proposes a technique to specify and verify whether a loop can be parallelised. Our approach can be used as an additional step in a parallelising compiler to verify user annotations about loop dependences. Essentially, our…

Software Engineering · Computer Science 2014-06-16 Stefan Blom , Saeed Darabi , Marieke Huisman

Certified program synthesis (aka vericoding) is the process of automatically generating a program, its formal specification, and a machine-checkable proof of their alignment from a natural-language description. Two challenges make…

Software Engineering · Computer Science 2026-04-21 Yueyang Feng , Dipesh Kafle , Vladimir Gladshtein , Vitaly Kurin , George Pîrlea , Qiyuan Zhao , Peter Müller , Ilya Sergey

Critical software systems face stringent requirements in safety, security, and reliability due to the circumstances surrounding their operation. Safety and security have progressively gained importance over the years due to the integration…

Software Engineering · Computer Science 2015-12-16 Julio Escribano-Barreno , Marisol García-Valls

Reduction to the satisfiability problem for constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. The current CHC-based methods for pointer-manipulating programs, however, are not very scalable.…

Programming Languages · Computer Science 2020-06-12 Yusuke Matsushita , Takeshi Tsukada , Naoki Kobayashi

Ensuring that autonomous space robot control software behaves as it should is crucial, particularly as software failure in space often equates to mission failure and could potentially endanger nearby astronauts and costly equipment. To…

Implementing correct distributed systems is an error-prone task. Runtime Verification (RV) offers a lightweight formal method to improve reliability by monitoring system executions against correctness properties. However, applying RV in…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-06-03 Armando Castañeda , Gilde Valeria Rodríguez

Stream-based monitoring assesses the health of safety-critical systems by transforming input streams of sensor measurements into output streams that determine a verdict. These inputs are often treated as accurate representations of the…

Programming Languages · Computer Science 2026-01-19 Bernd Finkbeiner , Martin Fränzle , Florian Kohn , Paul Kröger

Runtime verification is checking whether a system execution satisfies or violates a given correctness property. A procedure that automatically, and typically on the fly, verifies conformance of the system's behavior to the specified…

Software Engineering · Computer Science 2013-03-06 Mikhail Chupilko , Alexander Kamkin

Refinement transforms an abstract system model into a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development…

Logic in Computer Science · Computer Science 2023-11-27 Aurel Bílý , João C. Pereira , Jan Schär , Peter Müller