View: session overviewtalk overview
10:30 | Journal-First: Formal Modelling and Runtime Verification of Autonomous Grasping for Active Debris Removal PRESENTER: Marie Farrell ABSTRACT. Verifying that autonomous space robotic software behaves correctly is crucial, particularly since such software is often mission-critical where a software failure can lead to mission failure. In this paper, we describe the process that we used to verify the autonomous grasp generation and capturing operation of a spent rocket stage in space. This paper summarises a publication by the same authors in the journal Frontiers in Robotics and AI (2022) which harnesses multiple formal and non-formal methods to verify an autonomous grasping system. |
11:00 | Formal Specification and Verification of JDK’s Identity Hash Map Implementation ABSTRACT. Hash maps are a common and important data structure in efficient algorithm implementations. Despite their wide-spread use, their real-world implementations are not regularly verified. In this paper, we present the first case study of a formal investigation of the IdentityHashMap class in the Java SDK. We specified its behavior using the Java Modeling Language (JML) and proved consistency for the main insertion and lookup methods of the implementation with respect to this specification using KeY, a semi-interactive theorem prover for JML-annotated Java programs. Furthermore, we report how the result of unit tests and bounded model checking can be exploited early in the specification process to come up with a suitable specifications more quickly. We also investigated where the bottlenecks in the verification of hash maps lie for KeY by comparing required automatic proof effort for different hash map implementations and draw conclusions for the choice of hash map implementation regarding their verifiability. |
11:30 | Reusing Predicate Precision in Value Analysis ABSTRACT. Software verification allows one to examine the reliability of software. During verification, analyses often exchange information to become more effective, more efficient, or to eliminate false results and increase trust in the analysis result. One type of information that analyses provide are precisions, which describe the abstraction level (tracked predicates, etc.) of an analysis. So far, analyses mainly reuse their own precision to efficiently reverify a modified program. In contrast, we aim to reuse a precision of a predicate analysis within a value analysis. To this end, we suggest several options to convert a predicate precision into a precision for value analysis. All options compute precisions with different degrees of abstraction. We extensively evaluate our options on three applications (cooperative verification, result validation, and regression verification) and compare them against using the coarsest and finest precision as well as a state-of-the-art approach for each application. Our evaluation results indicate that coarser precisions work better for proof detection, while finer, more detailed precisions perform better in alarm detection. We also show that reusing a predicate precision in value analysis can be beneficial in cooperative verification and works well for validating and reverifying programs without property violations. |
12:00 | Certified Verification of Relational Properties ABSTRACT. The use of function contracts to specify the behavior of functions often remains limited to the scope of a single function call. Relational properties link several function calls together within a single specification. They can express more advanced properties of a given function, such as non-interference, continuity, or monotonicity. They can also relate calls to different functions, for instance to show that an optimized implementation is equivalent to its original counterpart. However, relational properties cannot be expressed and verified directly in the traditional setting of modular deductive verification. Self-composition has been proposed to overcome this limitation, but the simplicity of its principle comes at the cost of complex transformations for non-trivial examples. We propose in this paper an alternative approach that is not based on code transformation. Instead, we show how to directly use a verification condition generator to produce logical formulas that must be verified to ensure a given relational property holds. The approach has been fully formalized and proved sound in the Coq proof assistant. |
16:00 - 16:05: Opening by the Chairs of the Artefact Evaluation Committee and an EAPLS board representative.
16:05 - 16:30: One "Elevator pitch" of 3 minutes for each of the 7 Badge-Awarded Artefacts.
16:30 - 17:00: Poster-like time (without poster): one desk for each of the 7 Badge-Awarded Artefacts, where participants can meet the authors, assist to short demos, and possibly play with the artefacts.
17:00 - 17:30: Panel discussion on open science, and specific challenges faced in sharing artefacts, reviewing them and organising an artefact track. Each author of a Badge-Awarded artefact briefly presents benefits and challenges of artefact sharing. Participants can ask questions, moderated by the Artefact Chairs. The Artefact Chairs provide a summary at the end of the session.