Séminaire CONVECS 2023
Aix-les-Bains (Savoie)

Logo CONVECS

 

Aix-les-Bains

 


Programme scientifique


Mercredi 14 Juin 2023

13h00 – 14h30

Déjeuner et début du séminaire

14h30 – 15h30

Hubert Garavel

What's Wrong with Process Calculi? And How to Recover?

 

Based on the foundational works of Tony Hoare and Robin Milner, process calculi provide sound bases for specifying and analyzing concurrent systems. After decades of intense research, process calculi seem to have entered a phase of decline, in which they are only known and used by a shrinking community of experts. We look retrospectively to understand the reasons for the present situation and propose, based upon research going on in Grenoble, potential directions for a wider dissemination of process calculi.

15h30 – 16h15

Pierre Bouvier (joint work with Hubert Garavel)

Identifying Duplicates in Large Collections of Petri Nets and Nested-Unit Petri Nets

 

We propose efficient techniques for detecting isomorphism between nets, i.e., for identifying, in large collections of (safe) Petri nets or Nested-Unit Petri Nets, all the nets that are identical modulo a permutation of places, a permutation of transitions, and/or a permutation of units. Our approach relies upon the successive application of diverse algorithms of increasing complexities: net signatures, net canonizations, and characterization of isomorphic nets in terms of isomorphic graphs. We implemented this approach in a complete tool chain that we successfully assessed on four collections, the largest of which comprises 241,000+ nets with many duplicates.

16h15 – 16h45

Pause café

16h45 – 17h30

Quentin Nivon (joint work with Irman Faqrizal and Gwen Salaün)

Patching Liveness Bugs in Concurrent Programs

 

Model checking automatically verifies that a model, e.g., a Labeled Transition System (LTS), obtained from higher-level specification languages, satisfies a given temporal property. When the model violates the property, the model checker returns a counterexample, but this counterexample does not precisely identify the source of the bug. Moreover, manually correcting the given specification or model can be a painful and complicated task. In this paper, we propose some techniques for computing patches that can correct an erroneous specification violating a liveness property. These techniques first extract from the whole behavioral model the part that does not satisfy the given property. In a second step, this erroneous part is analyzed using several algorithms in order to compute the minimal number of patches in the specification, so as to make it satisfy the given property. The approach is fully automated using a tool we implemented and applied to a series of examples for validation purposes.

17h30 – 18h15

Radu Mateescu

On-the-fly Model Checking of Linear-time Properties in MCL

 

We briefly compare linear-time (LTL) and branching-time (CTL) temporal logics, and illustrate how linear-time properties can be expressed in the MCL branching-time logic of CADP using the infinite looping operator. The on-the-fly model checking of this operator on a Labeled Transition System (LTS) is translated to the local resolution of a Boolean Equation System (BES) containing marked variables, which must belong to a cycle of dependencies in a solution of the BES. These BESs are represented as Boolean graphs (a.k.a. dependency graphs) very similar to Büchi automata on infinite words, and can be solved efficiently using depth-first search (DFS) graph traversal algorithms. We compare two such algorithms available in the CAESAR_SOLVE library of CADP, namely A3 (based on computing strongly connected components in the Boolean graph) and A10 (based on nested DFS, the traditional algorithm used for LTL model checking) in terms of efficiency and quality of diagnostics produced.

18h15 – 19h15

Frédéric Lang

Compositional Verification using CADP

 

We consider the verification of temporal logic properties on the formal model of a system described as a parallel composition of processes. The well-known state explosion problem may be palliated by compositional verification, a divide-and-conquer approach that consists in generating, reducing with respect to some equivalence relation, and composing in an incremental way the state spaces of individual processes. The choice of the equivalence relation is crucial in that it must compress the state space sufficiently while still preserving the properties of interest. I will present the principles of compositional verification, the tools available in CADP, as well as hints for choosing an appropriate (sharp) equivalence relation.

20h00

Dîner

Jeudi 15 Juin 2023

09h00 – 09h45

Stéphane Ducasse

Pharo and its Tools 

 

Pharo (http://www.pharo.org) is a reflective and immersive language with its IDE (Integration Development Environment). Its syntax fits on half of a postcard. In this talk, I will briefly present the fundamental elements of Pharo (objects, messages, and lambdas) in 10 minutes, as well as several useful tools, such as automatic runtime deprecation and control flow break points using a few lines of code. I will also show how one can shape the tools to increase the speed of the development process (in particular, Xtreme Test Driven Development). I will present, for example, the tools we built around Druid, an AOT (Ahead-of-Time) compiler we are developing, as well as some sketches of debugging assembly from within Pharo.

09h45 – 10h15

Gwen Salaün (joint work with Philippe Merle)

Automated Verification of TOSCA Workflows

 

TOSCA is a specification language used for modeling topology and orchestration of cloud applications. This language particularly allows the description of workflows that can be used for specifying management tasks such as (un)deployment plans. This textual language for describing TOSCA workflows does not provide any visualization techniques for graphically designing or observing the corresponding workflows. Moreover, this language is error-prone and can be source of mistakes when writing management plans. In this work, we propose a transformation from TOSCA to the graphical workflow-based language BPMN, so as to allow the visualization of TOSCA workflows. We also provide automated verification techniques for analyzing TOSCA workflows in terms of functional and architectural properties, as well as execution times. The transformation and verification steps are achieved in a fully automated way and were validated on a set of realistic TOSCA workflows.

10h15 – 10h50

Philippe Ledent (joint work with Radu Mateescu and Wendelin Serwe)

Formal Semantics for PSS by Translation to LNT 

 

PSS (Portable test and Stimulus Standard) is an industrial language to ease the generation of test suites for System-on-Chip architectures, by completing a verification intent with necessary intermediate actions satisfying a set of constraints on the system. However, in the absence of formal semantics, it remains challenging to precisely control test generation and to provide guarantees about the obtained test suite. In this paper, we propose formal semantics for PSS by translation to the formal language LNT supported by the CADP toolbox, thus paving the way for a precise analysis of PSS models and a generation of test suites with coverage guarantees.

10h50 – 11h20

Pause café

11h20 – 11h50

Suraj Gupta

Blockchain for Log Data

 

Blockchains have emerged as a promising technology for secure and reliable data storage. A blockchain is a decentralized, distributed ledger that records transactions in a secure and transparent manner. The use of blockchains for storing log data has gained significant attention in recent years due to its potential to enhance the security and reliability of log data storage. The talk will explore the potential benefits and challenges of using blockchains for log data storage and provide insights into the potential of blockchain technology for this application.

11h50 – 12h25

Lucie Muller (joint work with Radu Mateescu, Wendelin Serwe, Mihai Nica, Tilen Semenic, and Armin Traussnig)

Probabilistic Fault Analysis using Formal Modeling and Fault Injection

 

Because faults in critical systems may have severe consequences, these systems need to be thoroughly validated, ideally using formal methods. In practice, the impact of faults on the system behavior is often studied using fault injection methods. In this paper, we use fault injection on formal models and propose two methods to quantitatively estimate the impact of faults w.r.t. the expected correct behavior: the former compares the faulty model with the correct one and computes the probability of deviation, and the latter computes the probabilities that correctness requirements do no longer hold in the faulty model. We illustrate the methods on the simple example of a coffee vending machine. Both methods can assess the criticality of faults, and have been applied to an industrial case study of a high-voltage battery for electric vehicles.

12h30 – 14h00

Déjeuner

14h00 – 14h45

Florian Gallay (joint work with Yliès Falcone)

Decentralized Runtime Enforcement

 

We consider the problem of runtime enforcement on decentralized systems with no central observation point nor central authority. A so-called enforcer is attached to each system component and observes its local trace. Should the global trace violate the specification, the various enforcers coordinate to correct their local traces. We formalize the decentralized runtime enforcement problem and define the expected properties of enforcers, namely soundness, transparency, and optimality. We present two enforcement algorithms that are based on LTL specifications. The first one explores all alternatives to perform a globally optimal correction, while the second follows an incremental strategy based on locally optimal choices. We then introduce DECENT, a benchmark for these algorithms and compare them with a centralized version. Finally, we introduce a third algorithm that uses automata instead of LTL to address some of the issues caused by formula rewriting in the previous ones.

14h45 – 15h30

Ahang Zuo (joint work with Yliès Falcone and Gwen Salaün)

Probabilistic Runtime Enforcement of Executable BPMN Processes

 

A business process is a collection of structured tasks that communicate to provide a service or a product. Business processes do not execute once and for all, but are executed multiple times, resulting in multiple instances. In this context, it is particularly difficult to ensure correctness and efficiency of the multiple executions of a process. In this work, we propose to rely on Probabilistic Model Checking (PMC) to automatically verify that multiple executions of a process respect some specific probabilistic property. This approach applies at runtime; the evaluation of the property is periodically verified and the corresponding results updated. However, we go beyond runtime PMC for BPMN (Business Process Modeling Notation) here because, in addition, we propose runtime enforcement techniques, which allow one to keep executing the process while avoiding the violation of the property. To do so, our approach combines monitoring techniques, computation of probabilistic models, PMC, and runtime enforcement techniques. The approach has been implemented as a toolchain and validated on several realistic BPMN processes.  

15h30 – 16h00

Pause café

16h00 – 16h45

Irman Faqrizal (joint work with Yliès Falcone and Gwen Salaün)

Adaptive Industrial Control Systems via IEC 61499 and Runtime Enforcement

 

This work envisions Industrial Control Systems (ICSs) that can easily adapt to specific requirements. We rely on the recent international standard IEC 61499 as a stepping stone towards this goal. This standard is known for its reconfigurability, allowing downtimeless system evolution. However, an IEC 61499 application consisting of multiple function blocks (FBs) can be reconfigured in many different ways, such as inserting or deleting FBs, creating new FBs with their respective internal behaviors, and adjusting the connections between FBs. These require considerable effort and cost, and there is no guarantee to satisfy the requirements.

 

We apply runtime enforcement techniques for supporting adaptive IEC 61499 applications. This set of techniques can modify the runtime behavior of a system according to specific requirements. Our approach begins with specifying the requirements as a state machine-based notation called contract automaton. This automaton is then used to synthesize an enforcer as a FB. Finally, the new FB is integrated into the application to execute according to the requirements. A tool is developed to automate the approach. In addition, experiments are performed to evaluate the performance of enforcers by measuring the execution time of several applications before and after the integration of enforcers.  

16h45 – 20h00

Quartier libre

20h00

Dîner

Vendredi 16 Juin 2023

09h00 – 09h30

Stéphane Ducasse

Software Maps

 

In this talk, I will present Rotten green tests, i.e., tests that contain assertions, that say everything is ok, but still do not do their job. I will also present some facts around software evolution and the need for software maps. Then, I will present some maps and the Moose reengineering platform. In addition, I will briefly present Roassal, a platform for developing new visualizations and how to integrate them in Pharo.

09h30 – 10h00

Hubert Garavel

Building Compiler Front-ends Using Syntax

 

We present an approach for building compiler front-ends using, on the one hand, the SYNTAX tool to perform lexical and syntactic analyses, and, on the other hand, a novel library SXML, to build an abstract syntax tree and print it to a file in XML-like or JSON-like format. We illustrate the approach with the example of a front-end compiler for the synchronous language LUSTRE.

10h00 – 10h30

Wendelin Serwe (joint work with Hubert Garavel and Frédéric Lang)

Compiler Construction Using SYNTAX and LNT

 

This talk presents the compiler construction technology used over the last 20 years by the CONVECS team. This technology is based on the SYNTAX system for building the lexer and parser, and on the (data part of) the formal description language LNT (interfaced with the C language) for building the abstract syntax tree and the various processing steps performed on it: static semantics checks, code generation, etc.

10h30 – 11h00

Pause café

11h00 – 11h30

Jean-Baptiste Horel (joint work with Robin Baruffa, Lukas Rummelhard, Alessandro Renzaglia, and Christian Laugier)

A Navigation-Based Evaluation Metric for Probabilistic Occupancy Grids: Pathfinding Cost Mean Squared Error

 

While robotics increasingly relies on occupancy grids for environment perception, the lack of specifically-designed metrics leads existing research to employ Image Quality Assessment (IQA) metrics and topological evaluations, which were primarily designed for binary occupancy grids. While appropriate as a first approximation, not taking into account the particular nature and usage of probabilistic occupancy grids limits the accuracy of their evaluation. In this paper, we propose the PathFinding Cost Mean Squared Error (PFC-MSE), a new probabilistic occupancy grid comparison metric designed to incorporate their main usage and attributes. Emulating grid-based navigation methods, the metric defines the difference between two grids as the measured spread between the navigation behavior their use induces, which emphasizes variations in general topology over local cell-value fluctuations. Experimental results on 10,000 driving scenes exhibit the relevance of the approach in quantifying grid disparities compared to existing approaches.

12h30 – 14h00

Déjeuner et fin du séminaire