Putting curry-howard to work

  • Authors:
  • Tim Sheard

  • Affiliations:
  • Portland State University

  • Venue:
  • Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Curry-Howard isomorphism states that types are propositions and that programs are proofs. This allows programmers to state and enforce invariants of programs by using types. Unfortunately, the type systems of today's functional languages cannot directly express interesting properties of programs. To alleviate this problem, we propose the addition of three new features to functional programming languages such as Haskell: Generalized Algebraic Datatypes, Extensible Kind Systems, and the generation, propagation, and discharging of Static Propositions. These three new features are backward compatible with existing features, and combine to enable a new programming paradigm for functional programmers. This paradigm makes it possible to state and enforce interesting properties of programs using the type system, and it does this in manner that leaves intact the functional programming style, known and loved by functional programmers everywhere.