Scheduling and compiling rate-synchronous programs with end-to-end latency constraints

Embedded control software is often specified as a set of periodic tasks together with a dependency graph describing their communications via shared variables. This talk will describe an ongoing collaboration with Airbus to express such systems in a specialized version of Lustre. This version of Lustre is “rate synchronous” in…

Continue reading

Analyse statique de valeurs par interprétation abstraite de langages fonctionnels

Dans cette présentation, je vous parlerai de mes travaux sur l’analyse de valeurs par interprétation abstraite des langages fonctionnels.Nos premiers résultats, basés sur des domaines abstraits relationnels et des résumés des champs récursifs des types algébriques, permettent d’analyser des fonctions récursives du premier ordre manipulant des types algébriques récursifs et…

Continue reading

Abstract heap relations for a compositional shape analysis

Static analyses aim at inferring semantic properties of programs. We distinguish two important classes of static analyses: state analyses and relational analyses. While state analyses aim at computing an over-approximation of reachable states of programs, relational analyses aim at computing functional properties over the input-output states of programs. Relational analyses…

Continue reading

Sound Static Analysis of Regular Expressions for Vulnerabilities to Denial of Service Attacks

Modern programming languages often provide functions to manipulate regular expressions in standard libraries.If they offer support for advanced features, the matching algorithm has an exponential worst-case time complexity: for some so-called vulnerable regular expressions, an attacker can craft ad hoc strings to force the matcher to exhibit an exponential behaviour…

Continue reading

Automatic Detection of Vulnerable Variables for CTL Properties of Programs

Violations of program properties pose significant risks, particularly when they can be triggered by attackers. Multiple approaches has been proposed recently to detect these vulnerabilities. In this seminar, we will present a new abstract interpretation-based static analysis for this problem. By leveraging a static analysis by abstract interpretation for CTL…

Continue reading

A static information flow analysis to ensure privacy-preserving FPGA logic designs

For performance and scalability reasons, most cloud providers start using Field-Programmable Gate Arrays (FPGAs) to provide FPGA-based acceleration services. FPGA virtualization becomes then necessary to optimize hardware resources utilization, but raises security and privacy concerns.In this work we consider a temporal multi-tenancy environment, where a single FPGA instance running a…

Continue reading

Cryptographic Reductions By Bi-Deduction

In this presentation, we are interested in the Computationally Complete Symbolic Attack (CCSA) approach to security protocol verification, and its implementation in the proof assistant SQUIRREL. The proof of a protocol relies on assumptions on the security provided by its primitives (e.g. hash, encryption, etc.), which are generally formulated in…

Continue reading

SSA Translation Is an Abstract Interpretation, and its Application to Static Analysis of Machine Code

Conversion to Static Single Assignment (SSA) form is usually viewed as a syntactic transformation algorithm that gives unique names to program variables, and reconciles these names using “phi” functions based on a notion of domination. We instead propose a semantic approach, where SSA translation is performed using a simple dataflow…

Continue reading

The impossibility result of Fischer, Lynch, and Paterson and its proof

One of the most important results in distributed computing was published in April 1985 by Fischer, Lynch and Paterson. Their short paper “Impossibility of Distributed Consensus with One Faulty Process” definitively placed an upper bound on what it is possible to achieve with distributed processes in an asynchronous environment. The problem of…

Continue reading

Automatic Inference of Ranking Functions by Abstract Interpretation

We present an abstract interpretation framework for proving liveness properties of imperative programs, to ensure that some event happens once or infinitely many times during program execution. A further abstraction based on piecewise-defined ranking functions yields a static analysis that automatically infers sufficient conditions for these liveness properties as well as upper…

Continue reading

From Neural Network Verification to Efficient Robust Training

Fundamental concerns exist on the trustworthiness of deep learning systems, with examples including robustness, fairness, privacy and explainability. Phenomena like adversarial examples prompt the need to train robust networks and to provide formal guarantees on their behaviour. In this talk, we will first introduce the neural network verification problem. Then,…

Continue reading

Thesis rehearsal: “Faithful Model Reduction of Discrete Biological Systems”

Modeling paradigms for Systems Biology plays an important role in investigating the orchestrated function of various biological systems. Additionally, they permit one to study a system in-silico in order to gain mechanistic insights from the trajectories resulting from the model. A common battle to derive an ideal representation for a…

Continue reading

Enforcing Modular Security through Language Design: A Study on Object and Reference Capabilities

We present an approach to language design aimed at enforcing modular security, where a security architect can define specific object capabilities that enforce custom security properties. Unlike traditional models that assume an uncompromised system (‘clean garden’), this model (‘dark forest’) assumes local machines are already compromised but anchored by a…

Continue reading

Towards verified inference in probabilistic programs

Probabilistic programming languages aim at designing and implementing algorithms that compute over probability distributions rather than states. They feature dedicated primitives for sampling and conditioning. Moreover, the evaluation of probabilistic programs relies on general purpose inference engines. In the last few years, several languages such as Pyro, Edward or Stan…

Continue reading

Event structures, CAT(0) cube complexes, and median graphs

Event structures, trace automata, and Petri nets are fundamental models in concurrency theory. There exist nice interpretations of these structures as combinatorial and geometric objects and both conjectures can be reformulated in this framework. Namely, from a graph theoretical point of view, the domains of prime event structures correspond exactly…

Continue reading

Analysis of incomplete programs via Proof Engines and Fuzzing

We tackle the problem of testing and verifying “incomplete” programs—that contain components whose source code is either unavailable (like third-party libraries and cloud-based APIs), or too complex to model formally (like large machine learning models). We show how classical techniques like symbolic execution, deductive verification and SMT solving can be…

Continue reading