Theorems for Free for Free: Parametricity, With and Without Types episode artwork

EPISODE · Jan 22, 2018 · 20 MIN

Theorems for Free for Free: Parametricity, With and Without Types

from International Conference on Functional Programming 2017

Amal Ahmed (Northeastern University, USA) gives the first talk in the fourth panel, Integrating Static and Dynamic Typing, on the 3rd day of the ICFP conference. Co-written by Dustin Jamner (Northeastern University, USA), Jeremy G. Siek (Indiana University, USA), Philip Wadler (University of Edinburgh, UK). The polymorphic blame calculus integrates static typing, including universal types, with dynamic typing. The primary challenge with this integration is preserving parametricity: even dynamically-typed code should satisfy it once it has been cast to a universal type. Ahmed et al. (2011) employ runtime type generation in the polymorphic blame calculus to preserve parametricity, but a proof that it does so has been elusive. Matthews and Ahmed (2008) gave a proof of parametricity for a closely related system that combines ML and Scheme, but later found a flaw in their proof. In this paper we present an improved version of the polymorphic blame calculus and we prove that it satisfies relational parametricity. The proof relies on a step-indexed Kripke logical relation. The step-indexing is required to make the logical relation well-defined in the case for the dynamic type. The possible worlds include the mapping of generated type names to their types and the mapping of type names to relations. We prove the Fundamental Property of this logical relation and that it is sound with respect to contextual equivalence. To demonstrate the utility of parametricity in the polymorphic blame calculus, we derive two free theorems.

Episode metadata supplied by the publisher feed · Published Jan 22, 2018

Embed this episode

NOW PLAYING

Theorems for Free for Free: Parametricity, With and Without Types

0:00 20:38

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

No similar podcasts found.

Frequently Asked Questions

How long is this episode of International Conference on Functional Programming 2017?

This episode is 20 minutes long.

When was this International Conference on Functional Programming 2017 episode published?

This episode was published on January 22, 2018.

Can I download this International Conference on Functional Programming 2017 episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!