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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
H. Barendregt. Introduction to generalized type systems. Technical Report no.90–8, University of Nijmegen, May 1990.
F. Barbanera and M. Dezani-Ciancaglini. Intersection and union types. In Theoretical Aspect of Computer Science, Sendai, 1991. To appear.
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.
K.B. Bruce, A.R. Meyer, and J. C. Mitchell. The semantics of second-order lambda calculus. Information and Computation, 85:76–134, 1990.
Th. Coquand and G. Huet. Calculus of constructions. Information and Computation, 76:95–120, 1988.
Th. Coquand. An analysis of Girard's paradox. In Proceedings of First Annual Symposium on Logic in Computer Science, 1986.
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.
S. Hayashi. Constructive mathematics and computer-aided reasoning systems. In P.P. Petkov, editor, MATHEMATICAL LOGIC, pages 43–52. Plenum Press, New York, 1990.
S. Hayashi and H. Nakano. PX: A Computational Logic. The MIT Press, Cambridge, Mass., 1988.
J.-L. Krivine and M. Parigot. Programming with proofs. Journal of Information Processing and Cybernetics EIK, 26:149–167, 1990.
D. Leivant. Typing and convergence in the lambda calculus. Theoretical Computer Science, 44:51–68, 1986.
Z. Luo. An Extended Calculus of Constructions. PhD thesis, Department of Computer Science, University of Edinburgh, July 1990.
P. Martin-Löf. A theory of types. Unpublished manuscript, 1972.
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.
E. Moggi. The Partial Lambda-Calculus. PhD thesis, Department of Computer Science, University of Edinburgh, 1988.
D. MacQueen, G. Plotkin, and R. Sethi. An ideal model for recursive polymorphic types. Information and Control, 71:95–130, 1986.
B. Nordström, K. Petersson, and J.M. Smith. Programming in Martin-Löf's type theory, an introduction. Clarendon Press, Oxford, 1990.
M. Parigot. Programming with proofs: a second order type theory. In ESOP '88 (Lecture Notes in Computer Science No. 300). Springer-Verlag, 1988.
M. Parigot. Recursive programming with proofs. In Proceedings of Symposium Mathematiques et Informatique, Luminy, France, October 1989. To appear in Theoretical Computer Science.
B.C. Pierce. Preliminary investigation of a calculus with intersection and union types. Unpublished manuscript, June 1990.
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.
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.
G. Plotkin. Lectures given at ASL Stanford meeting. Unpublished lecture notes, July 1985.
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.
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.
G. Rosolini. Continuity and effectiveness in topoi. PhD thesis, Department of Computer Science, Carnegie-Mellon University, 1986.
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.
Y. Takayama and S Hayashi. Extended projection method and realizability interpretation. Submitted to Information and Computation, 1990.
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.
Author information
Authors and Affiliations
Editor information
Rights 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