Skip to content

Gradual-Typing/Equivalence-of-Cast-Calculi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Equivalence of Cast Calculi

This repo aims at helping people to develop new cast representations and to prove their correctness.

The package equivalence-of-cast-calculi contains necessary semantic definition and theorems. To get started, a user must pick a blame strategy. Currently only Lazy D and Lazy UD blame strategy are supported.

If a user want to prove a Lazy UD cast representation is correct, the user should

  1. create an Agda module and import the equivalence-of-cast-calculi/NewLazyUDCastADT module;
  2. define a Cast ADT (said c);
  3. prove that c is a Lazy UD Cast ADT.

For illustration, please refer to illustration. There each file applies our framework to a known cast representation. We recommand starting with coercions in normal form if you know coercions, coercions in normal form, or canonical coercions. Otherwise, Lazy UD hypercoercions is recommanded because this cast representation is described in details in our paper.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages