Refinement Types as Proof Irrelevance
Refinement types sharpen systems of simple and dependent types by offering expressive means to more precisely classify well-typed terms. Proof irrelevance provides a mechanism for selectively hiding the identities of terms in type theories. In this paper, we show that refinement types can be interpreted as predicates using proof irrelevance in the context of the logical framework LF, establishing a uniform relationship between two previously studied concepts in type theory. The interpretation and its correctness proof are surprisingly complex, lending credence to the idea that refinement types are a fundamental construct rather than just a convenient surface syntax for certain uses of proof irrelevance.
KeywordsType Theory Formation Family Dependent Type Functional Programming Logical Framework
Unable to display preview. Download preview PDF.
- 3.Constable, R.L., et al.: Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs (1986)Google Scholar
- 4.Davies, R.: Practical Refinement-Type Checking. PhD thesis, Carnegie Mellon University (May 2005); Available as Technical Report CMU-CS-05-110Google Scholar
- 5.Dunfield, J.: A Unified System of Type Refinements. PhD thesis, Carnegie Mellon University (August 2007); Available as Technical Report CMU-CS-07-129Google Scholar
- 6.Dunfield, J., Pfenning, F.: Tridirectional typechecking. In: Leroy, X. (ed.) ACM Symp. Principles of Programming Languages (POPL 2004), Venice, Italy, pp. 281–292 (January 2004)Google Scholar
- 7.Freeman, T.: Refinement Types for ML. PhD thesis, Carnegie Mellon University (March 1994); Available as Technical Report CMU-CS-94-110Google Scholar
- 11.Pfenning, F.: Intensionality, extensionality, and proof irrelevance in modal type theory. In: Halpern, J. (ed.) Proceedings of the 16th Annual Symposium on Logic in Computer Science (LICS 2001), Boston, Massachusetts, pp. 221–230. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
- 12.Reed, J., Pfenning, F.: Proof irrelevance in a logical framework. Unpublished draft (July 2008)Google Scholar
- 14.Salvesen, A., Smith, J.M.: The strength of the subset type in Martin-Löf’s type theory. In: Proceedings of LICS 1988, pp. 384–391. IEEE Computer Society Press, Los Alamitos (1988)Google Scholar
- 15.Schürmann, C.: Towards practical functional programming with logical frameworks (July 2003), http://cs-www.cs.yale.edu/homes/carsten/delphin/ (unpublished)
- 16.Watkins, K., Cervesato, I., Pfenning, F., Walker, D.: A concurrent logical framework I: Judgments and properties. Technical Report CMU-CS-02-101, Department of Computer Science, Carnegie Mellon University (2002) (revised, May 2003)Google Scholar
- 17.Zeilberger, N.: Refinement types and computational duality. In: PLPV 2009: Proceedings of the 3rd workshop on Programming Languages Meets Program Verification, pp. 15–26. ACM, New York (2009)Google Scholar