Skip to content

deyaaeldeen/monotonic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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