Skip to main content

Singleton, union and intersection types for program extraction

  • Invited Paper
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 526))

Abstract

Two type theories, ATT and ATTT, are introduced. ATT is an impredicative type theory closely related to the polymorphic type theory of implicit typing of MacQueen et al. [MPS86]. ATTT is another version of ATT that extends the Girard-Reynolds second order lambda calculus. ATT has notions of intersection, union and singleton types. ATTT has a notion of refinement types as in the type system for ML by Freeman and Pfenning [FP91], plus intersection and union of refinement types and singleton refinement types. We will show how singleton, union and intersection types serve for development of programs without unnecessary codes via a variant of the Curry-Howard isomorphism. More exactly, they give a way to write types as specifications of programs without unnecessary codes which is inevitable in the usual Curry-Howard isomorphism.

In memory of my mother, Yoshie Hayashi

Partly supported by Grant No. 02249209 of the Japanese Ministry of Education.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Barendregt. Introduction to generalized type systems. Technical Report no.90–8, University of Nijmegen, May 1990.

    Google Scholar 

  2. F. Barbanera and M. Dezani-Ciancaglini. Intersection and union types. In Theoretical Aspect of Computer Science, Sendai, 1991. To appear.

    Google Scholar 

  3. R. Burstall and J. McKinna. Deliverable: an approach to program development in the calculus of constructions. An earlier version is in the preliminary proceeding of the Logical Frameworks BRA meeting at Sophia Antipolis 1990, April 1991.

    Google Scholar 

  4. K.B. Bruce, A.R. Meyer, and J. C. Mitchell. The semantics of second-order lambda calculus. Information and Computation, 85:76–134, 1990.

    Google Scholar 

  5. Th. Coquand and G. Huet. Calculus of constructions. Information and Computation, 76:95–120, 1988.

    Article  Google Scholar 

  6. Th. Coquand. An analysis of Girard's paradox. In Proceedings of First Annual Symposium on Logic in Computer Science, 1986.

    Google Scholar 

  7. T. Freeman and F. Pfenning. Refinement types for ML. In ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, Toronto, Ontario. ACM Press, June 1991.

    Google Scholar 

  8. S. Hayashi. Constructive mathematics and computer-aided reasoning systems. In P.P. Petkov, editor, MATHEMATICAL LOGIC, pages 43–52. Plenum Press, New York, 1990.

    Google Scholar 

  9. S. Hayashi and H. Nakano. PX: A Computational Logic. The MIT Press, Cambridge, Mass., 1988.

    Google Scholar 

  10. J.-L. Krivine and M. Parigot. Programming with proofs. Journal of Information Processing and Cybernetics EIK, 26:149–167, 1990.

    Google Scholar 

  11. D. Leivant. Typing and convergence in the lambda calculus. Theoretical Computer Science, 44:51–68, 1986.

    Google Scholar 

  12. Z. Luo. An Extended Calculus of Constructions. PhD thesis, Department of Computer Science, University of Edinburgh, July 1990.

    Google Scholar 

  13. P. Martin-Löf. A theory of types. Unpublished manuscript, 1972.

    Google Scholar 

  14. J. C. Mitchell. Type systems for programming languages. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Volume B, pages 365–458. North-Holland, 1990.

    Google Scholar 

  15. E. Moggi. The Partial Lambda-Calculus. PhD thesis, Department of Computer Science, University of Edinburgh, 1988.

    Google Scholar 

  16. D. MacQueen, G. Plotkin, and R. Sethi. An ideal model for recursive polymorphic types. Information and Control, 71:95–130, 1986.

    Article  Google Scholar 

  17. B. Nordström, K. Petersson, and J.M. Smith. Programming in Martin-Löf's type theory, an introduction. Clarendon Press, Oxford, 1990.

    Google Scholar 

  18. M. Parigot. Programming with proofs: a second order type theory. In ESOP '88 (Lecture Notes in Computer Science No. 300). Springer-Verlag, 1988.

    Google Scholar 

  19. M. Parigot. Recursive programming with proofs. In Proceedings of Symposium Mathematiques et Informatique, Luminy, France, October 1989. To appear in Theoretical Computer Science.

    Google Scholar 

  20. B.C. Pierce. Preliminary investigation of a calculus with intersection and union types. Unpublished manuscript, June 1990.

    Google Scholar 

  21. B.C. Pierce. Programming with intersection types, union types, and polymorphism. Technical Report CMU-CS-91-106, School of Computer Science, Carnegie Mellon University, Feburary 1991.

    Google Scholar 

  22. A.M. Pitts. Polymorphism is set theoretic constructively. In D.H. Pitt et al., editors, Category theory and computer science (Lecture Notes in Comuter Science No. 283), pages 12–39, Berlin, 1987. Springer-Verlag.

    Google Scholar 

  23. G. Plotkin. Lectures given at ASL Stanford meeting. Unpublished lecture notes, July 1985.

    Google Scholar 

  24. C. Paulin-Mohring. Extracting Fω's programs from proofs in the calculus of construction. In Proceedings of 16th Annual ACM Symposium on Principles of Programming Languages, 1989.

    Google Scholar 

  25. J.C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, School of Computer Science, Carnegie Mellon University, June 1988.

    Google Scholar 

  26. G. Rosolini. Continuity and effectiveness in topoi. PhD thesis, Department of Computer Science, Carnegie-Mellon University, 1986.

    Google Scholar 

  27. A. Scedrov. Normalization revisited. In J. W. Gray and A. Scedrov, editors, Categories in Computer Science and Logic, (Contemporary Mathematics Vol. 92), pages 357–369, American Mathematical Society, Providence, Rhode Island, 1989.

    Google Scholar 

  28. Y. Takayama and S Hayashi. Extended projection method and realizability interpretation. Submitted to Information and Computation, 1990.

    Google Scholar 

  29. D. Turner. A new formulation of constructive type theory. In P. Dybjer et al., editors, Proceedings of the Workshop on Programming Logic, pages 258–294, 1989. Report 54, Programming Methodology Group, Department of Computer Science, Chalmers University of Technology and University of Göteborg.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Albert R. Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hayashi, S. (1991). Singleton, union and intersection types for program extraction. In: Ito, T., Meyer, A.R. (eds) Theoretical Aspects of Computer Software. TACS 1991. Lecture Notes in Computer Science, vol 526. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54415-1_71

Download citation

  • DOI: https://doi.org/10.1007/3-540-54415-1_71

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54415-9

  • Online ISBN: 978-3-540-47617-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics