Compiling Programs and Proofs: FoCaLiZe Internals - Archive ouverte HAL Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2018

Compiling Programs and Proofs: FoCaLiZe Internals

Résumé

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.
Fichier principal
Vignette du fichier
compil-fcl.pdf (501.14 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01801276 , version 1 (28-05-2018)

Identifiants

  • HAL Id : hal-01801276 , version 1

Citer

François Pessaux, Damien Doligez. Compiling Programs and Proofs: FoCaLiZe Internals. [Research Report] Ensta ParisTech. 2018. ⟨hal-01801276⟩
143 Consultations
112 Téléchargements

Partager

Gmail Facebook X LinkedIn More