Modular, Fully-abstract Compilation by Approximate Back-translation
Dominique Devriese, Marco Patrignani, Frank Piessens, Steven Keuchel

TL;DR
This paper introduces a novel method for proving compiler full-abstraction using approximate back-translation, enabling simpler, modular, and mechanized proofs even when source languages lack certain features.
Contribution
It presents a general technique for approximate back-translation to prove full-abstraction, applicable to modular compilation and mechanized in Coq.
Findings
Successfully applied to a compiler from STLC to ULC.
Uses asymmetric logical relations and step-indexing.
First fully mechanized proof of compiler full-abstraction in Coq.
Abstract
A compiler is fully-abstract if the compilation from source language programs to target language programs reflects and preserves behavioural equivalence. Such compilers have important security benefits, as they limit the power of an attacker interacting with the program in the target language to that of an attacker interacting with the program in the source language. Proving compiler full-abstraction is, however, rather complicated. A common proof technique is based on the back-translation of target-level program contexts to behaviourally-equivalent source-level contexts. However, constructing such a back- translation is problematic when the source language is not strong enough to embed an encoding of the target language. For instance, when compiling from STLC to ULC, the lack of recursive types in the former prevents such a back-translation. We propose a general and elegant solution…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
