Seminar details
Résumé : Cette journée est ouverte à tous ceux et celles qui souhaitent en savoir plus sur lâassistant de preuve COQ. Les exposés sont à destination dâun public novice en COQ et mettent lâaccent sur les motivations pour utiliser COQ, lâapproche utilisée, plus que sur les détails techniques de la conduite des preuves. (Le premier exposé de la journée commencera par une brève introduction à Coq.)
Lâobjectif est quâà travers 5 retours dâexpérience, le public puisse se faire une idée de ce quâon peut faire avec COQ Comment ? à quel coût ? Et bénéficier dâune expérience qui ne sâacquiert pas en suivant un tutoriel dâintroduction à COQ.
EN MÃMOIRE DE V. A. VEOVODSKY
Cette journée de séminaires est dédiée à la mémoire de V.A.Veovodsky (1966-2017), mathématicien russe qui rêve dâune pratique mathématique où les résultats seraient vérifiables par un assistant de preuve. Après sa médaille Fields en 2002, il sâest attelé à étendre la théorie des types au coeur de lâassistant de preuve COQ. Son projet âfondements univalentsâ est en train de créer une révolution des fondements mathématiques et des assistants de preuve.
Pour en savoir plus sur V.Veovodsky
« La bifurcation de Vladimir Voevodsky. De la théorie de l'homotopie à la théorie des types », Gaz. Math., vol. 142,â 2014, p. 87-94 (lire en ligne)
Pour en savoir plus sur le projet fondements univalentsâ
- https://www.lesechos.fr/29/02/2016/LesEchos/22139-039-ECH_revolution-mathematique.htm
DETAILED PROGRAM
- 10:30-11:15 Using Coq for the formal verification of an Instruction Set Simulator
by Jean-François MONIN, VERIMAG / UGA
We present an application performed in the framework of a Sino-French cooperation : the formal verification of an Instruction Set Simulator for the ARM processor. This simulator, called SimSoC (Simulator of Systems on Chips) was designed and very efficiently implemented in C++ by another in LIAMA. For instance, it is able to boot the linux OS. In order to secure the ISS --- one of the most sensitive parts of SimSoC, we formalized in Coq the behavior of the processor; next, we got the formal behavior of (a C version of) the ISS simulator from the operational semantics of C, formalized in Coq in the Compcert Inria project, and proved that the simulator behaved accordingly to the Coq formal model. This is joint work with Xiaomu Shi, Frederic Blanqui, Claude Helmstetter and Vania Joloboff.
- 11:30-12:15 Hash consing in Coq
by David MONNIAUX, VERIMAG / CNRS
Hash consing is a technique that keeps a single copy of any immutable data structure: no isomorphic structure can be created. It is however violently imperative, which poses challenges for formalizing it in Coq. We present several approaches to this problem.
- 14:00-14:45 PADEC: A Framework for Certified Self-Stabilization
by Pierre CORBINEAU, VERIMAG / UGA
We present the PADEC framework that builds certified proofs of self-stabilizing algorithms using the proof assistant Coq. We first define in Coq the most commonly used computational model in the self-stabilizing area. We then illustrate the use of our framework by:
* certifying a non-trivial part of an existing self-stabilizing algorithm
* certifying a commonly-used composition operation for self-stabilizing algorithms
This is a joint work with Karine Altisen and Stéphane Devismes.
- 15:00-15:30 The development of a Verified Polyhedra Library made of untrusted parts mixing Ocaml, C++, threads, ... and just a little bit of Coq for certification
by Michaël PÃRIN, VERIMAG / UGA
Next year will be the 40th anniversary of the seminal paper by Cousot & Halbwachs introducing the polyhedra abstract domain. In 2013, we started the development of yet another polyhedra library, the Verimag Verified Polyhedra Library, with two goals in mind: efficiency and certification. In this talk, I will report our experience of developing a certified tool made of untrusted code with just a Coq polish.
The VPL is the result of a joint work with S.Boulmé, A.Fouilhé, A.Maréchal, D.Monniaux, M.Périn and H.Yu
- 15:45 Break
- 16:00-16:45 âTheorems for Freeâ (in Coq) about ML Oracles within Polymorphic LCF Style
by Sylvain BOULMÃ, VERIMAG / Grenoble INP
How can we reduce the required effort to develop certified programs in proof assistants such as Coq ? A major trend is to introduce untrusted oracles able to justify their answers by producing a certificate, ie. a witness of their computations. A trustworthy result is then built from this certificate by a certified checker. This alleviates the burden of proof, but producing certificates is a requirement which increases complexity of oracle development.
We propose a design pattern, called Polymorphic LCF Style, that removes the need for certificates: ML oracles directly compute the certified result by invoking trusted operators and data structures extracted from Coq. A strong requirement of this pattern is that oracles must only handle the trusted data structures as polymorphic values, which forbids oracles to forge incorrect results. Hence, our design pattern delegates a part of the certification to the ML typechecker.
We illustrate Polymorphic LCF Style on two examples:
* first, a refutation prover in propositional logic.
* second, the Verimag Polyhedra Library (an abstract domain of convex polyhedra).