Section: New Results
Type theory and formalization of mathematics
Participants : Georges Gonthier [ Microsoft Research ] , Assia Mahboubi [ project-team Typical ] , Laurence Rideau, Laurent Théry, Sidi Ould Biha.
We participate in the collaborative research agreement “Mathematical Components” with Microsoft Research. This project aims at evaluating the applicability of a new approach to mathematical proofs called “small-scale reflection”, especially in the domain of finite group theory  .
This year we have studied a methodology to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular allows multiple inheritance, maximal sharing of notations and theories, and automated structure inference. Our methodology is robust enough to support a hierarchy comprising a broad variety of algebraic structures, from types with a choice operator to algebraically closed fields. Interfaces for the structures enjoy the handiness of a classical setting, without requiring any axiom. The library of algebraic strucutures we obtain is described in the paper  .
We have also completed a formalisation of linear algebraic structures. This formalisation includes an algebraic hierarchy that covers vector spaces, algebra and modules over algebra. This hierarchy extend previous work on algebraic structures. We also developed theories of sub-structures and homomorphisms associated to these algebraic structures. These developments provide an infrastructure for the abstract theory of representation and character of finite groups. It was the subject of a paper and an oral presentation at the Mathematical Knowledge Management 2009 conference  .
On Bernstein coefficients
Participants : Assia Mahboubi [ Project-team Typical, INRIA Saclay – Île-de-France ] , Yves Bertot.
We re-visited a proof that a polynomial with a single change of sign among its coefficients has exactly one real root between 0 and positive infinity. The new proof is more systematic and constructive, it relies on rational numbers in a clearer way and is adapted to the ssreflect style also advocated in our group theory work. The corollary that a polynomial with a single change of sign among its Bernstein coefficients for a given interval has a single root inside this interval is the next step. In the long run, this should contribute to a formally verified implementation of cylindrical algebraic decomposition.
Formalising Geometric Algebras
Participants : Laurent Fuchs [ Université de Poitiers ] , Laurent Théry.
As part of the Galapagos project, we further improve our formalisation of Geometric algebras. We have implemented and proved correct the join and meet operations of the Cayley-Grassman algebras and verified a factorisation algorithm.
Participants : Yves Bertot, Frédérique Guilhot, Tuan Minh Pham.
We have submitted a paper describing our work on Ptolemy's theorem, a theorem about cocyclic points where oriented triangles play a role.
Dependent elimination and type-based termination
Participants : Bruno Barras [ Project-team Typical, INRIA Saclay – Île-de-France ] , Pierre Corbineau [ Université Joseph Fourier ] , Hugo Herbelin [ Project-team r2 , INRIA Paris-Rocquencourt ] , Benjamin Werner [ Project-team Typical, INRIA Saclay – Île-de-France ] , Benjamin Grégoire, Jorge Luis Sacchini.
We worked on extending the elimination rule of the Calculus of Inductive Constructions (CIC) to automatically perform inversion reasoning on dependent data structures. The results were published in  .
We also worked on extending the type system of CIC to perform type-based termination. In particular, we focused on proving metatheoretical properties of the system, namely, strong normalization and decidability of type checking. We have proved these properties for a subsystem without universes, and we are currently working on the proofs for the full system.
Proof of the Java Bytecode Verifier
Participants : Benjamin Grégoire, David Pichardie [ Project-team Celtique, IRISA ] .
We have developed a formal proof of correctness for the Java Bytecode Verifier (BCV). This work was done on top of Bicolano, the formal semantic of the Java bytecode developed by David Pichardie. The algorithm can be executed in Coq, and we plan to extract it to get a certified BCV executable in Ocaml.