Tue 24 Aug 2021 07:45 - 08:00 at ICFP Talks - Session 2
Compositional compiler verification is a difficult problem that focuses on separate compilation of program components with possibly different verified compilers. Logical relations are widely used in proving correctness of program transformations in higher-order languages; however, they do not scale to compositional verification of multi-pass compilers due to their lack of transitivity. The only known technique to apply to compositional verification of multi-pass compilers for higher-order languages is parametric inter-language simulations (PILS), which is however significantly more complicated than traditional proof techniques for compiler correctness. In this paper, we present a novel verification framework for \emph{lightweight compositional compiler correctness}. We demonstrate that by imposing the additional restriction that program components are compiled by pipelines that go through \emph{the same sequence of intermediate representations}, logical relation proofs can be transitively composed in order to derive an end-to-end compositional specification for multi-pass compiler pipelines. Unlike traditional logical-relation frameworks, our framework supports divergence preservation—even when transformations reduce the number of program steps. We achieve this by parameterizing our logical relations with a pair of \emph{relational invariants}.
We apply this technique to verify a multi-pass, optimizing middle-end pipeline for CertiCoq, a compiler from Gallina (Coq's specification language) to C. The pipeline optimizes and closure-converts an untyped functional intermediate language (ANF or CPS) to a subset of that language without nested functions, which can be easily code-generated to low-level languages. Notably, our pipeline performs more complex closure-allocation optimizations than the state of the art in verified compilation. Using our novel verification framework, we prove an end-to-end theorem for our pipeline that covers both termination and divergence and applies to whole-program and separate compilation, even when different modules are compiled with different optimizations. Our results are mechanized in the Coq proof assistant.
Mon 23 AugDisplayed time zone: Seoul change
19:00 - 20:45 | Session 2Research Papers at ICFP Talks +12h
| ||
19:00 15mTalk | Contextual Modal Types for Algebraic Effects and Handlers Research Papers DOI Media Attached | ||
19:15 15mTalk | Calculating Dependently-Typed Compilers (Functional Pearl) Research Papers DOI Media Attached | ||
19:30 15mTalk | Reasoning about Effect Interaction by Fusion Research Papers DOI Pre-print Media Attached | ||
19:45 15mTalk | Compositional Optimizations for CertiCoq Research Papers Zoe Paraskevopoulou Northeastern University, John M. Li Princeton University, Andrew W. Appel Princeton DOI Media Attached | ||
20:00 15mTalk | Generalized Evidence Passing for Effect Handlers Research Papers DOI Media Attached | ||
20:15 15mTalk | Deriving Efficient Program Transformations from Rewrite Rules Research Papers DOI Media Attached | ||
20:30 15mTalk | Algebras for Weighted Search Research Papers DOI Media Attached |
Tue 24 AugDisplayed time zone: Seoul change
07:00 - 08:45 | |||
07:00 15mTalk | Contextual Modal Types for Algebraic Effects and Handlers Research Papers DOI Media Attached | ||
07:15 15mTalk | Calculating Dependently-Typed Compilers (Functional Pearl) Research Papers DOI Media Attached | ||
07:30 15mTalk | Reasoning about Effect Interaction by Fusion Research Papers DOI Pre-print Media Attached | ||
07:45 15mTalk | Compositional Optimizations for CertiCoq Research Papers Zoe Paraskevopoulou Northeastern University, John M. Li Princeton University, Andrew W. Appel Princeton DOI Media Attached | ||
08:00 15mTalk | Generalized Evidence Passing for Effect Handlers Research Papers DOI Media Attached | ||
08:15 15mTalk | Deriving Efficient Program Transformations from Rewrite Rules Research Papers DOI Media Attached | ||
08:30 15mTalk | Algebras for Weighted Search Research Papers DOI Media Attached |