Programming with proofs and explicit contexts

  • Authors:
  • Brigitte Pientka;Joshua Dunfield

  • Affiliations:
  • McGill University, Montreal, Canada;McGill University, Montreal, Canada

  • Venue:
  • Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper explores a new point in the design space of functional programming: functional programming with dependently-typed higher-order data structures described in the logical framework LF. This allows us to program with proofs as higher-order data. We present a decidable bidirectional type system that distinguishes between dependently-typed data and computations. To support reasoning about open data, our foundation makes contexts explicit. This provides us with a concise characterization of open data, which is crucial to elegantly describe proofs. In addition, we present an operational semantics for this language based on higherorder pattern matching for dependently typed objects. Based on this development, we prove progress and preservation