Section: New Results
Program specification and proof
Characteristic formulae for modular verification of functional programs
Participant : Arthur Charguéraud.
In previous work  , Arthur Charguéraud has proposed a framework for modular verification of purely functional OCaml code using the Coq proof assistant. The approach relied on a deep embedding , that is, a description of the syntax and the semantics of a programming language in the logic of a proof assistant.
This year, Arthur Charguéraud has introduced characteristic formulae , which are higher-order logic formulae that can be used to reason on programs. Intuitively, characteristic formulae can be viewed as an abstract layer built on the top of a deep embedding. By hiding all the technical details associated with deep embeddings, characteristic formulae make program verification significantly easier.
The result of this work is a practical, sound and complete approach to the compositional verification of total correctness properties. It applies to call-by-value, well-typed, purely functional programs, and relies on the use of a standard higher-order logic proof assistant, namely Coq, for carrying out formal reasoning.
Characteristic formulae are described in an article submitted for publication  . A characteristic formulae generator has been implemented in OCaml and used to formally prove correct implementations of advanced purely-functional data structures such as persistent real-time queues.
The Zenon automatic theorem prover
Participant : Damien Doligez.
Damien Doligez continued the development of Zenon, a tableau-based prover for first-order logic with equality and theory-specific extensions. The major extensions this year include: support for TLA+'s character strings; support for CASE expressions; support for Hilbert's choice operator. Zenon's handling of equality was also improved.
Tools for TLA+
Participants : Damien Doligez, Leslie Lamport [ Microsoft Research ] , Stephan Merz [ EPI Mosel ] , Kaustuv Chaudhuri [ Microsoft Research-INRIA Joint Centre ] , Simon Zambrowski [ Microsoft Research-INRIA Joint Centre ] .
Damien Doligez is head of the “Tools for Proofs” team in the Microsoft-INRIA Joint Centre. The aim of this team is to extend the TLA+ language with a formal language for hierarchical proofs, formalizing the ideas in  , and to build tools for writing TLA+ specifications and mechanically checking the corresponding formal proofs.
This year, the TLA+ project released the first version of the TLA+ tools: the GUI-based TLA Toolbox and the TLA+ Proof System, and an environment for writing and checking TLA+ proofs. Kaustuv Chaudhuri, the post-doc who developped the Proof System, left in November. He is replaced by Denis Cousineau, on a 2-year post-doc position. Dan Ricketts was hired as an engineer to continue the development of the Toolbox, replacing Simon Zambrowski who left in October.