Skip to content

Latest commit

 

History

History
30 lines (20 loc) · 3.83 KB

README.md

File metadata and controls

30 lines (20 loc) · 3.83 KB

Overview

This repository contains mechanizations of different semantics for monotonic references to enable efficient gradual typing. To handle correctness in the case of cyclic casts for structural types, monotonic references write cast expressions to the heap that is reduced using a small-step reduction relation where intermediate redexes are also written to the heap. Another approach is to write values only to the heap and maintain a queue of casts on addresses. We mechanize both approaches, both with simple coercions and with space-efficient coercions.

Getting Started

You will need to have the following dependencies installed:

Agda standard library++ is part of the Metaborg project and is used in the work presented by POPL'18 paper Intrinsically-Typed Interpreters for Imperative Languages. I maintain a fork to work with the latest version of Agda standard library, which can be installed by executing make lib.

Mechanizations