Compiling Programs and Proofs: FoCaLiZe Internals - Archive ouverte HAL Access content directly
Reports (Research Report) Year : 2018

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.
Fichier principal
Vignette du fichier
compil-fcl.pdf (501.14 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
Loading...

Dates and versions

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

Identifiers

  • HAL Id : hal-01801276 , version 1

Cite

François Pessaux, Damien Doligez. Compiling Programs and Proofs: FoCaLiZe Internals. [Research Report] Ensta ParisTech. 2018. ⟨hal-01801276⟩
142 View
112 Download

Share

Gmail Facebook X LinkedIn More