|
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
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
J. Cheney and R. Hinze. First-class phantom types. Technical Report CUCIS TR2003-1901, Cornell University, 2003.
|
| |
3
|
|
| |
4
|
J. Despeyroux and P. Leleu. Primitive recursion for higher order abstract syntax with dependent types. In International Workshop on Intuitionistic Modal Logics and Applications (IMLA), 1999.
|
| |
5
|
|
| |
6
|
J. Dunfield and B. Pientka. Case analysis of higher-order data. In International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice (LFMTP'08), Electronic Notes in Theoretical Computer Science (ENTCS). Elsevier, June 2008.
|
| |
7
|
|
| |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
A. McCreight and C. Schürmann. A meta-linear logical framework. In 4th International Workshop on Logical Frame-works and Meta-Languages (LFM'04), 2004.
|
| |
13
|
D. Miller. Unification of simply typed lambda-terms as logic programming. In Eighth International Logic Programming Conference, pages 255--269, Paris, France, June 1991. MIT Press.
|
| |
14
|
D. Miller. A logic programming language with lambda abstraction, function variables, and simple unification. Journal of Logic and Computation, 1(4):497--536, 1991.
|
 |
15
|
|
 |
16
|
Simon Peyton Jones , Dimitrios Vytiniotis , Stephanie Weirich , Geoffrey Washburn, Simple unification-based type inference for GADTs, Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, September 16-21, 2006, Portland, Oregon, USA
|
| |
17
|
F. Pfenning. Unification and anti-unification in the Calculus of Constructions. In Sixth Annual IEEE Symposium on Logic in Computer Science, pages 74¿85, Amsterdam, The Netherlands, July 1991.
|
| |
18
|
|
| |
19
|
|
| |
20
|
|
 |
21
|
|
| |
22
|
B. Pientka and F. Pfenning. Optimizing higher-order pattern unification. In F. Baader, editor, 19th International Conference on Automated Deduction, Miami, USA, Lecture Notes in Artificial Intelligence (LNAI) 2741, pages 473--487. Springer-Verlag, 2003.
|
| |
23
|
A. Poswolsky and C. Schürmann. Practical programming with higher-order encodings and dependent types. In Proceedings of the 17th European Symposium on Programming (ESOP'08), Mar. 2008.
|
| |
24
|
C. Schürmann. Automating the Meta Theory of Deductive Systems. PhD thesis, Department of Computer Science, Carnegie Mellon University, 2000. CMU-CS-00-146.
|
| |
25
|
C. Schürmann, A. Poswolsky, and J. Sarnat. The ∇-calculus. Functional programming with higher-order encodings. In P. Urzyczyn, editor, Proceedings of the 7th International Conference on Typed Lambda Calculi and Applications (TLCA'05), volume 3461 of Lecture Notes in Computer Science, pages 339--353. Springer, 2005.
|
| |
26
|
T. Sheard and E. Pasalic. Meta-programming with built-in type equality. In Int'l Workshop on Logical Frameworks and Meta-languages (LFM '04), pages 106--124, 2004.
|
 |
27
|
|
| |
28
|
K. Watkins, I. Cervesato, F. Pfenning, and D. Walker. A concurrent logical framework I: Judgments and properties. Technical Report CMU-CS-02-101, Department of Computer Science, Carnegie Mellon University, 2002.
|
 |
29
|
|
|