Equational reasoning about programs with general recursion and call-by-value semantics

Garrin Kimmell, Aaron Stump, Harley D Eades, Peng Fu, Tim Sheard, Stephanie Weirich, Chris Casinghino, Vilhelm Sjöberg, Nathan Collins, Ki Yung Ahn

Research output: Chapter in Book/Report/Conference proceedingConference contribution

11 Citations (Scopus)

Abstract

Dependently typed programming languages provide a mechanism for integrating verification and programming by encoding invariants as types. Traditionally, dependently typed languages have been based on constructive type theories, where the connection between proofs and programs is based on the Curry-Howard correspondence. This connection comes at a price, however, as it is necessary for the languages to be normalizing to preserve logical soundness. Trellys is a call-by-value dependently typed programming language currently in development that is designed to integrate a type theory with unsound programming features, such as general recursion, Type:Type, and others. In this paper we outline one core language design for Trellys, and demonstrate the use of the key language constructs to facilitate sound reasoning about potentially unsound programs.

Original languageEnglish (US)
Title of host publicationPOPL
Subtitle of host publicationPLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification
Pages15-25
Number of pages11
DOIs
StatePublished - Mar 5 2012
Event6th Workshop on Programming Languages Meets Program Verification, PLPV'12, Co-located with POPL 2012 - Philadelphia, PA, United States
Duration: Jan 24 2012Jan 24 2012

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Other

Other6th Workshop on Programming Languages Meets Program Verification, PLPV'12, Co-located with POPL 2012
CountryUnited States
CityPhiladelphia, PA
Period1/24/121/24/12

Fingerprint

Computer programming languages
Semantics
Acoustic waves

Keywords

  • Design
  • Languages
  • Theory
  • Verification

ASJC Scopus subject areas

  • Software

Cite this

Kimmell, G., Stump, A., Eades, H. D., Fu, P., Sheard, T., Weirich, S., ... Ahn, K. Y. (2012). Equational reasoning about programs with general recursion and call-by-value semantics. In POPL: PLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification (pp. 15-25). (Conference Record of the Annual ACM Symposium on Principles of Programming Languages). https://doi.org/10.1145/2103776.2103780

Equational reasoning about programs with general recursion and call-by-value semantics. / Kimmell, Garrin; Stump, Aaron; Eades, Harley D; Fu, Peng; Sheard, Tim; Weirich, Stephanie; Casinghino, Chris; Sjöberg, Vilhelm; Collins, Nathan; Ahn, Ki Yung.

POPL: PLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification. 2012. p. 15-25 (Conference Record of the Annual ACM Symposium on Principles of Programming Languages).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Kimmell, G, Stump, A, Eades, HD, Fu, P, Sheard, T, Weirich, S, Casinghino, C, Sjöberg, V, Collins, N & Ahn, KY 2012, Equational reasoning about programs with general recursion and call-by-value semantics. in POPL: PLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification. Conference Record of the Annual ACM Symposium on Principles of Programming Languages, pp. 15-25, 6th Workshop on Programming Languages Meets Program Verification, PLPV'12, Co-located with POPL 2012, Philadelphia, PA, United States, 1/24/12. https://doi.org/10.1145/2103776.2103780
Kimmell G, Stump A, Eades HD, Fu P, Sheard T, Weirich S et al. Equational reasoning about programs with general recursion and call-by-value semantics. In POPL: PLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification. 2012. p. 15-25. (Conference Record of the Annual ACM Symposium on Principles of Programming Languages). https://doi.org/10.1145/2103776.2103780
Kimmell, Garrin ; Stump, Aaron ; Eades, Harley D ; Fu, Peng ; Sheard, Tim ; Weirich, Stephanie ; Casinghino, Chris ; Sjöberg, Vilhelm ; Collins, Nathan ; Ahn, Ki Yung. / Equational reasoning about programs with general recursion and call-by-value semantics. POPL: PLPV'12 - Proceedings of the 6th Workshop on Programming Languages Meets Program Verification. 2012. pp. 15-25 (Conference Record of the Annual ACM Symposium on Principles of Programming Languages).
@inproceedings{95d93b1e34fc478e914bb4307214772f,
title = "Equational reasoning about programs with general recursion and call-by-value semantics",
abstract = "Dependently typed programming languages provide a mechanism for integrating verification and programming by encoding invariants as types. Traditionally, dependently typed languages have been based on constructive type theories, where the connection between proofs and programs is based on the Curry-Howard correspondence. This connection comes at a price, however, as it is necessary for the languages to be normalizing to preserve logical soundness. Trellys is a call-by-value dependently typed programming language currently in development that is designed to integrate a type theory with unsound programming features, such as general recursion, Type:Type, and others. In this paper we outline one core language design for Trellys, and demonstrate the use of the key language constructs to facilitate sound reasoning about potentially unsound programs.",
keywords = "Design, Languages, Theory, Verification",
author = "Garrin Kimmell and Aaron Stump and Eades, {Harley D} and Peng Fu and Tim Sheard and Stephanie Weirich and Chris Casinghino and Vilhelm Sj{\"o}berg and Nathan Collins and Ahn, {Ki Yung}",
year = "2012",
month = "3",
day = "5",
doi = "10.1145/2103776.2103780",
language = "English (US)",
isbn = "9781450311250",
series = "Conference Record of the Annual ACM Symposium on Principles of Programming Languages",
pages = "15--25",
booktitle = "POPL",

}

TY - GEN

T1 - Equational reasoning about programs with general recursion and call-by-value semantics

AU - Kimmell, Garrin

AU - Stump, Aaron

AU - Eades, Harley D

AU - Fu, Peng

AU - Sheard, Tim

AU - Weirich, Stephanie

AU - Casinghino, Chris

AU - Sjöberg, Vilhelm

AU - Collins, Nathan

AU - Ahn, Ki Yung

PY - 2012/3/5

Y1 - 2012/3/5

N2 - Dependently typed programming languages provide a mechanism for integrating verification and programming by encoding invariants as types. Traditionally, dependently typed languages have been based on constructive type theories, where the connection between proofs and programs is based on the Curry-Howard correspondence. This connection comes at a price, however, as it is necessary for the languages to be normalizing to preserve logical soundness. Trellys is a call-by-value dependently typed programming language currently in development that is designed to integrate a type theory with unsound programming features, such as general recursion, Type:Type, and others. In this paper we outline one core language design for Trellys, and demonstrate the use of the key language constructs to facilitate sound reasoning about potentially unsound programs.

AB - Dependently typed programming languages provide a mechanism for integrating verification and programming by encoding invariants as types. Traditionally, dependently typed languages have been based on constructive type theories, where the connection between proofs and programs is based on the Curry-Howard correspondence. This connection comes at a price, however, as it is necessary for the languages to be normalizing to preserve logical soundness. Trellys is a call-by-value dependently typed programming language currently in development that is designed to integrate a type theory with unsound programming features, such as general recursion, Type:Type, and others. In this paper we outline one core language design for Trellys, and demonstrate the use of the key language constructs to facilitate sound reasoning about potentially unsound programs.

KW - Design

KW - Languages

KW - Theory

KW - Verification

UR - http://www.scopus.com/inward/record.url?scp=84857603016&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84857603016&partnerID=8YFLogxK

U2 - 10.1145/2103776.2103780

DO - 10.1145/2103776.2103780

M3 - Conference contribution

SN - 9781450311250

T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages

SP - 15

EP - 25

BT - POPL

ER -