A Higher-Order Abstract Syntax Approach to Verified Transformations on Functional Programs
Yuting Wang, Gopalan Nadathur

TL;DR
This paper presents a method for verified transformations on functional programs using higher-order abstract syntax, leveraging Lambda Prolog and Abella for implementation and correctness proofs, especially for binding-structure-sensitive transformations.
Contribution
It introduces a novel approach combining higher-order syntax with logic-based specifications and proof systems for verified functional program transformations.
Findings
Successfully encoded transformations like closure conversion and code hoisting in Lambda Prolog.
Proved correctness of these transformations using the Abella proof system.
Demonstrated effectiveness in analyzing binding structures in functional programs.
Abstract
We describe an approach to the verified implementation of transformations on functional programs that exploits the higher-order representation of syntax. In this approach, transformations are specified using the logic of hereditary Harrop formulas. On the one hand, these specifications serve directly as implementations, being programs in the language Lambda Prolog. On the other hand, they can be used as input to the Abella system which allows us to prove properties about them and thereby about the implementations. We argue that this approach is especially effective in realizing transformations that analyze binding structure. We do this by describing concise encodings in Lambda Prolog for transformations like typed closure conversion and code hoisting that are sensitive to such structure and by showing how to prove their correctness using Abella.
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.
Taxonomy
TopicsLogic, programming, and type systems · Software Engineering Research · Formal Methods in Verification
