Parametricity and proving free theorems for functional-logic languages

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The goal of this paper is to provide the required foundations for establishing free theorems - statements about program equivalence, guaranteed by polymorphic types - for the functional-logic programming language Curry. For the sake of presentation we restrict ourselves to a language fragment that we call CuMin, and that has the characteristic features of Curry (both functional and logic). We present a new denotational semantics based on partially ordered sets without limits. We then introduce an intermediate language called SaLT that is essentially a lambda-calculus extended with an abstract set type, and again give a denotational semantics. We show that the standard (logical relations) techniques can be applied to obtain a general parametricity theorem for SaLT and derive free theorems from it. Via a translation from CuMin to SaLT that fits the respective semantics, we then derive free theorems for CuMin.

Original languageEnglish
Title of host publicationPPDP 2014 - Proceedings of the 16th International Symposium on Principles and Practice of Declarative Programming
PublisherAssociation for Computing Machinery, Inc
Pages19-30
Number of pages12
ISBN (Electronic)9781450329477
DOIs
Publication statusPublished - 8 Sept 2014
Event16th International Symposium on Principles and Practice of Declarative Programming, PPDP 2014 - Canterburry, United Kingdom
Duration: 8 Sept 201410 Sept 2014

Publication series

NamePPDP 2014 - Proceedings of the 16th International Symposium on Principles and Practice of Declarative Programming

Conference

Conference16th International Symposium on Principles and Practice of Declarative Programming, PPDP 2014
Country/TerritoryUnited Kingdom
CityCanterburry
Period8/09/1410/09/14

Fingerprint

Dive into the research topics of 'Parametricity and proving free theorems for functional-logic languages'. Together they form a unique fingerprint.

Cite this