Verification of High-Level Transformations with Inductive Refinement Types
Ahmad Salim Al-Sibahi, Thomas P. Jensen, Aleksandar S. Dimovski, and Andrzej Wasowski

TL;DR
This paper introduces Rabit, an abstract interpretation tool designed to verify inductive type and shape properties of high-level transformations in languages like Rascal, addressing challenges posed by expressive features such as traversals and pattern matching.
Contribution
It presents a novel approach to verifying properties of complex transformations using abstract interpretation based on operational semantics, specifically tailored for expressive transformation languages.
Findings
Rabit effectively verifies properties of various transformations
The approach handles expressive traversals and pattern matching
Successful evaluation on normalization, desugaring, and code generation transformations
Abstract
High-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking and generalized iterators. We present the design and implementation of an abstract interpretation tool, Rabit, for verifying inductive type and shape properties for transformations written in such languages. We describe how to perform abstract interpretation based on operational semantics, specifically focusing on the challenges arising when analyzing the expressive traversals and pattern matching. Finally, we evaluate Rabit on a series of transformations (normalization, desugaring, refactoring, code generators, type inference, etc.) showing that we can effectively verify stated properties.
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.
