Abstract

(Coinductive) natural semantics is presented as a unifying framework for the verification of total correctness of compilers in Coq (with the feature that a verified compiler can be obtained). In this way, we have a simple, easy, and intuitive framework; to carry out the verification of a compiler, using a proof assistant in which both cases are considered: terminating and non-terminating computations (total correctness).

Highlights

  • This paper tackles the problem of compiler verification in proof assistants

  • We remark that only one formalism, natural semantics, is sufficient to conduct this task as opposed to usual verifications in the literature where more than one distinct formalism are needed in order to accomplish the same goal

  • In each of them, is to present a natural semantics with coinduction of a high-level language and it is this aspect that we review

Read more

Summary

Introduction

This paper tackles the problem of compiler verification in proof assistants. At present, a number of long-term projects deals with several aspects of this issue, for instance, CompCert C [1,2,3,4,5], CertiCoq [6], and IRIS [7]. Leroy [14] and Leroy and Grall [15] advance coinductive natural semantics as a formalism to express non-terminating computations; they do not use coinductive natural semantics as a unifying framework in the original sense of Kahn, but they use it only to specify the source language (a high-level language). They make an ad-hoc formalization in which in addition, they use small-step semantics in (what was later called) the Modern SECD (MSECD) machine [8] and a function to define the compilation. As an alternative target machine, we offer the original small-step semantics Modern SECD machine (Sections 2.2 and 3.2) extended to support all Mini-ML features, in particular, with native recursion support, mainly to compare it with our solution, in which a big-step machine is used, i.e., our Modern SECD machine big-step version

Related Work
Contributions
MiniMLdB
Modern SECD Machine
Compilation
Correctness
Big-Step MSECD Machine
Rules of Non-terminating Computations
Compilation Correctness
Abstract to Coq Translation Algorithm
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call