Skip to content

Latest commit

 

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

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

1 star

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages