Dynamic contracts for verification and enforcement of real-time systems properties

Ref: CISTER-TR-180413 Publication Date: 10, Apr, 2018

Abstract:Runtime verification is an emerging discipline that investigates methods and tools to enable the verification of program properties during the execution of the application. The goal is to complement static analysis approaches, in particular when static verification leads to the explosion of states. Non-functional properties, such as the ones present in real-time systems are an ideal target for this kind of verification methodology, as are usually out of the range of the power and expressiveness of classic static analyses.
Current real-time embedded systems development frameworks lack support for the verification of properties using explicit time where counting time (i.e., durations) may play an important role in the development process. Temporal logics targeting real-time systems are traditionally undecidable. Based on a restricted fragment of Metric temporal logic with durations (MTL-f), we will present the synthesis mechanisms 1) for target systems
as runtime monitors and 2) for SMT solvers as a way to get, respectively, a verdict at runtime and a schedulability problem to be solved before execution. The later is able to solve partially the schedulability analysis for periodic resource models and fixed priority scheduler algorithms.
A domain specific language is also proposed in order to describe such schedulability analysis problems in a more high level way. Finally, we validate both approaches, the first using empirical scheduling scenarios, and the second using the use case of the lightweight autopilot system Px4/Ardupilot.