deyaaeldeen / monotonic

Monotonic References for Gradual Typing in Agda

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Monotonic References for Gradual Typing in Agda


Languages

Language:Agda 99.9%Language:Makefile 0.1%