Papers by Catherine Dubois
HAL (Le Centre pour la Communication Scientifique Directe), 2010
R ÉSUM É. Nous proposons une méthode de génération de code fonctionnel à partir de spécifications... more R ÉSUM É. Nous proposons une méthode de génération de code fonctionnel à partir de spécifications inductives dans le cadre de l'atelier Focalize. Cette méthode consiste en une analyse préalable de cohérence de mode, qui vérifie si un calcul est possible par rapport aux entrées/sorties sélectionnées, puis en la génération de code proprement dite. Le code produit est certifié en ce sens qu'il est systématiquement accompagné d'une preuve de correction également générée en Focalize.
Proceedings of the 3rd International Conference on Tests and Proofs
Verified Functional Iterators Using the FoCaLiZe Environment
Lecture Notes in Computer Science, 2014
Collections and iterators are widely used in the Object community since they are standards of the... more Collections and iterators are widely used in the Object community since they are standards of the Java language. We present a certified functional implementation of collections and iterators addressing the Specification And Verification of Component Based Systems 2006 challenge. More precisely we describe a FoCaLiZe implementation providing these functionalities. Our approach uses inheritance and parameterization to describe functional iterators. Our code can be run in Ocaml and is certified using Coq. We provide general specifications for collections, iterators and removable iterators together with complete implementation for collections using lists as representation and iterators over those.
Réutilisation de preuves - Une étude pour le système Foc
HAL (Le Centre pour la Communication Scientifique Directe), 2003
Preuve formelle et contrainte alldiff
HAL (Le Centre pour la Communication Scientifique Directe), Feb 10, 2016
Nous nous interessons a la verification formelle de l'algorithme de filtrage (Regin 94) pour ... more Nous nous interessons a la verification formelle de l'algorithme de filtrage (Regin 94) pour la contrainte alldiff. Cet algorithme utilise fortement la notion de couplage maximum. Nous presentons deux approches differentes de verification formelle en Coq du calcul d'un couplage maximum dans un graphe

HAL (Le Centre pour la Communication Scientifique Directe), Jun 13, 2017
L'ingénierie des lignes de produits logiciels met l'accent sur la gestion de la variabilité et la... more L'ingénierie des lignes de produits logiciels met l'accent sur la gestion de la variabilité et la réutilisation. Dans cet article, nous complétons cette approche avec la recherche de garanties de correction sur les produits issus d'une ligne de produits. Nous proposons une méthode permettant de produire des produits corrects par construction à partir d'une ligne de produits. Cette méthode s'appuie sur un langage, FFML, inspiré de FoCaLiZe et incorporant des mécanismes pour exprimer la variabilité, et deux outils : un compilateur vers FoCaLiZe et un composeur. Le composeur permet de générer automatiquement des produits corrects par construction à partir d'une configuration valide. Les outils de FoCaLiZe permettent de vérifier les preuves de correction et de générer du code exécutable OCaml. La méthode est illustrée dans cet article sur un exemple simple de ligne de produits.

HAL (Le Centre pour la Communication Scientifique Directe), Jun 7, 2016
Modularité, généricité, héritage sont des mécanismes qui facilitent le développement et la vérifi... more Modularité, généricité, héritage sont des mécanismes qui facilitent le développement et la vérification formelle de logiciels corrects par construction en permettant de réutiliser des spécifications, du code et/ou des preuves. Cependant les lignes de produits exploitent d'autres techniques de réutilisation ou de modification graduelle. Les méthodes formelles permettant la production de code correct par construction (en B ou FoCaLiZe par exemple) ne sont pas bien adaptées à la variabilité telle qu'elle apparaît dans les lignes de produits. Nous proposons d'approcher ce problème par la définition d'un langage formel, GFML, proche de la variabilité mise en oeuvre dans les lignes de produits permettant de spécifier, implanter et prouver. Ce langage est compilé vers un formalisme existant, ici FoCa-LiZe. Cet article illustre par l'exemple une des constructions offertes par GFML ainsi que sa traduction en FoCaLiZe.
HAL (Le Centre pour la Communication Scientifique Directe), Jun 27, 2012
We propose a method which allows us to develop tableaux modulo theories using the principles of s... more We propose a method which allows us to develop tableaux modulo theories using the principles of superdeduction, among which the theory is used to enrich the deduction system with new deduction rules. This method is presented in the framework of the Zenon automated theorem prover, and is applied to the set theory of the B method. This allows us to provide another prover to Atelier B, which can be used to verify B proof rules in particular. We also propose some benchmarks, in which this prover is able to automatically verify a part of the rules coming from the database maintained by Siemens IC-MOL.
Lecture Notes in Computer Science, 2011
We propose a formal and mechanized framework which consists in verifying proof rules of the B met... more We propose a formal and mechanized framework which consists in verifying proof rules of the B method, which cannot be automatically proved by the elementary prover of Atelier B and using an external automated theorem prover called Zenon. This framework contains in particular a set of tools, named BCARe and developed by Siemens IC-MOL, which relies on a deep embedding of the B theory within the logic of the Coq proof assistant. This toolkit allows us to automatically generate the required properties to be checked for a given proof rule. Currently, this tool chain is able to automatically verify a part of the derived rules of the B-Book, as well as some added rules coming from Atelier B and the rule database maintained by Siemens IC-MOL.
RelExt : Synthèse de code à partir de spécifications inductives
HAL (Le Centre pour la Communication Scientifique Directe), Apr 3, 2013
Dans ce papier, nous decrivons l?outil RelExt, qui permet de generer du code fonctionnel a partir... more Dans ce papier, nous decrivons l?outil RelExt, qui permet de generer du code fonctionnel a partir de specifications inductives Coq. Cet outil est capable de produire deux types de sorties differentes. La premiere est une sortie ML, obtenue grâce a une extension du mecanisme natif d?extraction de Coq aux relations inductives. La deuxieme sortie est une sortie Coq, ou le code fonctionnel genere est accompagne des theoremes et preuves de correction correspondants. Nous presentons egalement quelques exemples illustrant ces deux types de sortie.
Springer eBooks, Oct 6, 2007
The use of formal methods provides confidence in the correctness of developments. Yet one may arg... more The use of formal methods provides confidence in the correctness of developments. Yet one may argue about the actual level of confidence obtained when the method itself -or its implementation -is not formally checked. We address this question for the B, a widely used formal method that allows for the derivation of correct programs from specifications. Through a deep embedding of the B logic in Coq, we check the B theory but also implement B tools. Both aspects are illustrated by the description of a proved prover for the B logic.
Raffinement de données en B événementiel pour les algorithmes géométriques
Proceedings Second International Workshop on Formal Integrated Development Environment
Electronic proceedings in theoretical computer science, Aug 14, 2015
Tutorial: introduction to Coq
HAL (Le Centre pour la Communication Scientifique Directe), Jun 29, 2011
Raffinement de modèles topologiques : des droites aux 2-G-cartes
HAL (Le Centre pour la Communication Scientifique Directe), 2007
Apprentissage de la programmation avec OCaml
HAL (Le Centre pour la Communication Scientifique Directe), 2004

Universality of Proofs (Dagstuhl Seminar 16421)
Dagstuhl Reports, 2016
This report documents the program and the outcomes of Dagstuhl Seminar 16421 "Universality o... more This report documents the program and the outcomes of Dagstuhl Seminar 16421 "Universality of Proofs" which took place October 16-21, 2016. The seminar was motivated by the fact that it is nowadays difficult to exchange proofs from one proof assistant to another one. Thus a formal proof cannot be considered as a universal proof, reusable in different contexts. The seminar aims at providing a comprehensive overview of the existing techniques for interoperability and going further into the development of a common objective and framework for proof developments that support the communication, reuse and interoperability of proofs. The seminar included participants coming from different fields of computer science such as logic, proof engineering, program verification, formal mathematics. It included overview talks, technical talks and breakout sessions. This report collects the abstracts of talks and summarizes the outcomes of the breakout sessions.
Réutilisation de preuves formelles : une étude pour le système FoC
Formalisation of General Logics in the Calculus of Inductive Constructions: Towards an Abstract
Formal specifications of logics share many standard concepts and in order to avoid repetitious wo... more Formal specifications of logics share many standard concepts and in order to avoid repetitious works, it seems desirable to express these specifications in a uniform framework. General logics à la J. Meseguer provide an uniform and modular way of encoding a logical language, its semantics and its inference system. Hence, we describe here a formalisation of general logics in the calculus of inductive constructions thus providing a generic and modular set of speci cations (with the proofs of s...
Uploads
Papers by Catherine Dubois