Refinement Types as Proof Irrelevance

  • William Lovas
  • Frank Pfenning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5608)


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.


Type Theory Formation Family Dependent Type Functional Programming Logical Framework 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Awodey, S., Bauer, A.: Propositions as [types]. Journal of Logic and Computation 14(4), 447–471 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Breazu-Tannen, V., Coquand, T., Gunter, C.A., Scedrov, A.: Inheritance as implicit coercion. Information and Computation 93(1), 172–221 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Constable, R.L., et al.: Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs (1986)Google Scholar
  4. 4.
    Davies, R.: Practical Refinement-Type Checking. PhD thesis, Carnegie Mellon University (May 2005); Available as Technical Report CMU-CS-05-110Google Scholar
  5. 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. 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. 7.
    Freeman, T.: Refinement Types for ML. PhD thesis, Carnegie Mellon University (March 1994); Available as Technical Report CMU-CS-94-110Google Scholar
  8. 8.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Liquori, L., Ronchi Della Rocca, S.: Intersection-types à la Church. Information and Computation 205(9), 1371–1386 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Lovas, W., Pfenning, F.: A bidirectional refinement type system for LF. Electronic Notes in Theoretical Computer Science 196, 113–128 (2008)CrossRefzbMATHGoogle Scholar
  11. 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. 12.
    Reed, J., Pfenning, F.: Proof irrelevance in a logical framework. Unpublished draft (July 2008)Google Scholar
  13. 13.
    Reynolds, J.C.: The coherence of languages with intersection types. In: Ito, T., Meyer, A.R. (eds.) TACS 1991. LNCS, vol. 526, pp. 675–700. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  14. 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. 15.
    Schürmann, C.: Towards practical functional programming with logical frameworks (July 2003), (unpublished)
  16. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • William Lovas
    • 1
  • Frank Pfenning
    • 1
  1. 1.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations