Publications
Look no further for my bibtex entries. All my papers and slides are available from this directory.
In 2008 I implemented a type class extension in Coq which I designed with Nicolas Oury [1]. I also designed a new setoid-rewriting algorithm using type classes which is described in my thesis [2]. I'm also currently working on integrating the compilation of dependent pattern-matching in Coq [3]. In 2007 I made the implementation of Program usable and robust and developed an example application. The paper [4] describing it was accepted at ICFP'07. I've given a talk about it at TYPES'07 [5] too. In 2006, I have given a talk [6] at the TYPES'06 Workshop and published a paper on the beginning of my thesis [7].
1
First-Class Type Classes in Theorem Proving in Higher Order Logics, 21th International Conference. Matthieu Sozeau and Nicolas Oury. Otmane Ait Mohamed, César Muñoz and Sofiène Tahar (Eds). Volume 5170 of Lecture Notes in Computer Science. Springer, August 2008, pp.278-293.
Abstract
Type Classes have met a large success in Haskell and Isabelle, as a solution for sharing notations by overloading and for specifying with abstract structures by quantification on contexts. However, both systems are limited by second-class implementations of these constructs, and these limitations are only overcomed by ad-hoc extensions to the respective systems. We propose an embedding of type classes into a dependent type theory that is first-class and supports some of the most popular extensions right away. The implementation is correspondingly cheap, general and very well integrated inside the system, as we have experimented in Coq. We show how it can be used to help structured programming and proving by way of examples.
2
Un environnement pour la programmation avec types dépendants. Matthieu Sozeau, PhD Thesis,Université Paris 11, Available at http://mattam.org/research/publications/drafts/thesis-sozeau.pdf, dec 2008 - Draft.
3
Compilation du filtrage dépendant. Matthieu Sozeau, Unpublished, Available at http://mattam.org/research/publications/drafts/Equations.pdf, 2008 - Working version in french.
4
Program-ing Finger Trees in Coq in ICFP'07: Proceedings of the 2007 ACM SIGPLAN International Conference on Functional Programming. Matthieu Sozeau. ACM Press, Freiburg, Germany, 2007, pp.13--24.
Abstract
Finger Trees (Hinze & Paterson, JFP 2006) are a general purpose persistent data structure with good performance. Their genericity permits developing a wealth of structures like ordered sequences or interval trees on top of a single implementation. However, the type systems used by current functional languages do not guarantee the coherent parameterization and specialization of Finger Trees, let alone the correctness of their implementation. We present a certified implementation of Finger Trees solving these problems using the Program extension of Coq. We not only implement the structure but also prove its invariants along the way, which permit building certified structures on top of Finger Trees in an elegant way.
5
A journey with Russell: Programming Dependent Finger Trees in Coq. Matthieu Sozeau, Talk given at TYPES'07, Cividale Del Friuli, Italy, 2-5 May 2007.
6
Subset Coercions in Coq. Matthieu Sozeau, Talk given at TYPES'06, University of Nottingham, UK, 19-21 april 2006.
7
Subset Coercions in Coq in TYPES'06. Matthieu Sozeau. Volume 4502 of Lecture Notes in Computer Science. Springer, 2007, pp.237--252.
Abstract
We propose a new language for writing programs with dependent types on top of the Coq proof assistant. This language permits to establish a phase distinction between writing and proving algorithms in the Coq environment. Concretely, this means allowing to write algorithms as easily as in a practical functional programming language whilst giving them as rich a specification as desired and proving that the code meets the specification using the whole Coq proof apparatus. This is achieved by extending conversion to an equivalence which relates types and subsets based on them, a technique originating from the ``Predicate subtyping'' feature of PVS and following mathematical convention. The typing judgements can be translated to the Calculus of Inductive Constructions by means of an interpretation which inserts coercions at the appropriate places. These coercions can contain existential variables representing the propositional parts of the final term, corresponding to proof obligations (or PVS type-checking conditions). A prototype implementation of this process is integrated with the Coq environment.
Valid XHTML 1.1! Valid CSS!