Verification of High-Level Transformations with Inductive Refinement Types

09/17/2018
by   Ahmad Salim Al-Sibahi, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/17/2023

Type-Theoretic Signatures for Algebraic Theories and Inductive Types

We develop the usage of certain type theories as specification languages...
research
08/24/2018

Code Generation for Higher Inductive Types

Higher inductive types are inductive types that include nontrivial highe...
research
10/19/1998

General Theory of Image Normalization

We give a systematic, abstract formulation of the image normalization me...
research
03/29/2021

CHAD: Combinatory Homomorphic Automatic Differentiation

We introduce Combinatory Homomorphic Automatic Differentiation (CHAD), a...
research
06/07/2018

Rust Distilled: An Expressive Tower of Languages

Rust represents a major advancement in production programming languages ...
research
09/16/2023

A Categorical Framework for Program Semantics and Semantic Abstraction

Categorical semantics of type theories are often characterized as struct...
research
09/05/2022

Inferring Region Types via an Abstract Notion of Environment Transformation

Region-based type systems are a powerful tool for various kinds of progr...

Please sign up or login with your details

Forgot password? Click here to reset