Compiling Programs and Proofs: FoCaLiZe Internals

Abstract : Designing a tool to ease the development of high-level security or safety systems must consider to facilitate not only design and coding but also formal demonstrations of correctness and compliance to standards. This entails some requirements on the tool as these demonstrations ask to link together computational and logical aspects of the development. These requirements are briefly considered and a solution is proposed: functions, statements and proofs are handled in a unique language, offering inheritance and parametrized modules. The FoCaLiZe environment implements this language, which remains simple enough to be used in a usual engineering process. The code generation produces an executable functional code (in OCaml) and a checkable term of a logical Type Theory (verified by Coq), close enough to truly ease traceability. It ensures that OCaml and Coq produced codes are error-free and provides compact generated code. The main contribution of this paper is a detailed presentation of the compilation scheme, which is supported by an original treatment of the dependencies induced by the combination of computational and logical constructs. As the whole source code is translated to a logical term verified by Coq, we get a strong assurance in the correctness of the generated code, hence avoiding the need to prove correctness of the compiler itself.
Type de document :
[Research Report] Ensta ParisTech. 2018
Liste complète des métadonnées

Littérature citée [40 références]  Voir  Masquer  Télécharger
Contributeur : François Pessaux <>
Soumis le : lundi 28 mai 2018 - 13:12:34
Dernière modification le : jeudi 7 février 2019 - 14:00:00
Document(s) archivé(s) le : mercredi 29 août 2018 - 13:32:58


Fichiers produits par l'(les) auteur(s)


  • HAL Id : hal-01801276, version 1


François Pessaux, Damien Doligez. Compiling Programs and Proofs: FoCaLiZe Internals. [Research Report] Ensta ParisTech. 2018. 〈hal-01801276〉



Consultations de la notice


Téléchargements de fichiers