About Me
I'm a research scholar (Chargé de recherche) in the Inria Épicure team (formerly Celtique), working on static analyses, program verification, program safety and security.
Before that, I was a research engineer at Prove & Run, working on the formal verification of the EAL7-certified ProvenCore μkernel (copy of the Common Criteria certificate).
I was a member of the DARPA-funded CRASH/SAFE program, working as a post-doctoral researcher under the supervision of Benjamin C. Pierce.
Formerly, I was a Ph.D. student in the Inria Gallium team, under the direction of Didier Rémy. My thesis was about the typing of ML modules. I defended my Ph.D. in 2010.
My research interests include: programming languages, semantics, formal methods, type systems, static analyses, program verification, non-interference, security monitors, information flow.
News:
- The Salto project on defining sound static analyses for OCaml programs is about to start! This project is part of a partnership between Inria and Nomadic Labs, and is funded by the Tezos Foundation.
- The paper "Lifting Numeric Relational Domains to Algebraic Data Types" (with Santiago Bautista and Thomas Jensen) has been accepted at SAS2022!
- The paper "Trace-Based Control-Flow Analysis" has been accepted at PLDI'21! Check out the associated demo!
- Check out the demo associated to the ICFP 2020 paper "Stable Relations and Abstract Interpretation of Higher-Order Programs"! The page features the static analyzer that is described in the paper. It should run in your browser out of the box.
SOFTWARE
Recent software and mechanized proofs I have developed:
-
dmap
: an OCaml library that implements dependent (heterogeneous) maps. The types of the values recorded in such maps may depend on the values of the keys. Yet, they are type safe.
[ Repository ] -
sexp_decode
: an OCaml library of monadic combinators for decoding S-expressions (as defined in the Csexp library) into structured data.
[ Repository ] -
Control-flow analyzers for the
λ-calculus: prototype analyzers that
accompany the PLDI'21
paper "Trace-Based Control-Flow
Analysis". Includes the ∇-CFA,
widening-based, control-flow analysis. Written
in OCaml.
[ Demo | Sources ] -
A relational analyzer for the
λ-calculus: prototype analyzer that
accompanies the ICFP'20
paper "Stable
Relations and Abstract Interpretation of
Higher-Order Programs". Infers
stable relations between the inputs and the
outputs of a program. Written
in OCaml.
[ Demo | Sources ] -
Formal proofs on stable
relations: Coq
formalization that accompanies the ICFP'20
paper "Stable
Relations and Abstract Interpretation of
Higher-Order Programs".
[ Documentation | Sources ]
Not so recent sofware and proofs:
-
Coq
formalization that accompanies the CSF'13
article "A
Theory of Information-Flow
Labels".
[ Sources ] -
Coq
formalization of the
article "Robust
Declassification" by Zdancewic
and Myers.
[ Repository ] -
Coq
formalization of Core F-zip, the language
I developed as part of
my Ph.D.
thesis, that features the
open existential types I introduced in
the POPL'09
paper "Modeling
Abstract Types in Modules with Open Existential
Types". I described some
aspects of this development at
the Workshop
on Mechanized Metatheory (2010).
[ Repository ] -
Prototype typechecker for F-zip,
the language I developed as part of
my Ph.D.
thesis. It is a core language for modules. It
features polymorphism, open existential types,
singleton kinds, and subtyping, and is explicitly
typed. Written
in OCaml.
[ Repository ]
PUBLICATIONS
Please find below the list of my publications. Also please check out my entries on DBLP.
TEACHING
In academic year 2022-2023, I'm a teaching assistant for the following classes:
- 1st semester: Analyse et Conception Formelles (ACF). "Software Formal Analysis and Design", supervised by Thomas Genet. Keywords: formal specifications, verification, interactive theorem proving, Isabelle.
- 2nd semester: Programmation de confiance (PRGC). "Trustworthy programming", supervised by Sandrine Blazy. Keywords: formal specifications, verification, deductive verification, Why3.
- Training courses for agrégation d'informatique (ENS Rennes): "Programming languages".
Contacts
- Address:
Centre de recherche Inria Rennes Bretagne Atlantique
Campus universitaire de Beaulieu
35042 Rennes Cedex, France - Office: F 207
- Email: benoit DOT montagu AT inria DOT fr
- Phone: +33 (0) 2 99 84 74 55