Abstract
Manifest fields in a type of modules are shown to be expressible in intensional type theory without strong extensional equality rules. These intensional manifest fields are made available with the help of coercive subtyping. It is shown that, for both Σ-types and dependent record types, the with-clause for expressing manifest fields can be introduced by means of the intensional manifest fields. This provides not only a higher-order module mechanism with ML-style sharing, but a powerful modelling mechanism in formalisation and verification of OO-style program modules.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)
Aczel, P.: Simple overloading for type theories (manuscript, 1994)
The Agda proof assistant (version 2) (2008), http://appserv.cs.chalmers.se/users/ulfn/wiki/agda.php
Allen, S., et al.: Innovations in computational type theory using Nuprl. Journal of Applied Logic 4(4) (2006)
Aspinall, D.: Subtyping with singleton types. In: Pacholski, L., Tiuryn, J. (eds.) CSL 1994. LNCS, vol. 933. Springer, Heidelberg (1995)
Bailey, A.: The Machine-checked Literate Formalisation of Algebra in Type Theory. PhD thesis, University of Manchester (1999)
Betarte, G., Tasistro, A.: Extension of Martin-Löf’s type theory with record types and subtyping. In: Sambin, G., Smith, J. (eds.) Twenty-five Years of Constructive Type Theory, Oxford University Press, Oxford (1998)
Burstall, R., Lampson, B.: Pebble, a kernel language for modules and abstract data types. In: Plotkin, G., MacQueen, D.B., Kahn, G. (eds.) Semantics of Data Types 1984. LNCS, vol. 173. Springer, Heidelberg (1984)
Callaghan, P., Luo, Z.: An implementation of LF with coercive subtyping and universes. Journal of Automated Reasoning 27(1), 3–27 (2001)
Constable, R., et al.: Implementing Mathematics with the NuPRL Proof Development System. Prentice-Hall, Englewood Cliffs (1986)
Constable, R., Hickey, J.: Nuprl’s class theory and its applications. In: Foundations of Secure Computation. IOS Press, Amsterdam (2000)
The Coq Development Team. The Coq Proof Assistant Reference Manual (Version 8.1), INRIA (2007)
Coquand, T., Pollack, R., Takeyama, M.: A logical framework with dependently typed records. Fundamenta Informaticae 65(1-2) (2005)
Courant, J.: Strong normalisation with singleton types. Electronic Notes in Theoretical Computer Science 70(1) (2002)
Goguen, H.: A Typed Operational Semantics for Type Theory. PhD thesis, University of Edinburgh (1994)
Harper, R., Lillibridge, M.: A type-theoretic approach to higher-order modules with sharing. In: POPL 1994 (1994)
Hayashi, S.: Singleton, union and intersection types for program extraction. Information and Computation 109(1/2), 174–210 (1994)
Kamin, S.: Inheritance in Smalltalk-80: a denotational definition. In: POPL 1988 (1988)
Lampson, B., Burstall, R.: Pebble, a kernel language for modules and abstract data types. Information and Computation 76(2/3) (1988)
Leroy, X.: Manifest types, modules and separate compilation. In: POPL 1994 (1994)
Luo, Y.: Coherence and Transitivity in Coercive Subtyping. PhD thesis, University of Durham (2005)
Luo, Z.: A higher-order calculus and theory abstraction. Information and Computation 90(1) (1991)
Luo, Z.: Computation and Reasoning: A Type Theory for Computer Science. Oxford University Press, Oxford (1994)
Luo, Z.: Coercive subtyping in type theory. In: van Dalen, D., Bezem, M. (eds.) CSL 1996. LNCS, vol. 1258. Springer, Heidelberg (1997)
Luo, Z.: Coercive subtyping. J. of Logic and Computation 9(1), 105–130 (1999)
Luo, Z.: Coercions in a polymorphic type system. Mathematical Structures in Computer Science 18(4) (2008)
Luo, Z., Adams, R.: Structural subtyping for inductive types with functorial equality rules. Mathematical Structures in Computer Science 18(5) (2008)
Luo, Z., Luo, Y.: Transitivity in coercive subtyping. Information and Computation 197(1-2), 122–144 (2005)
Luo, Z., Pollack, R.: LEGO Proof Development System: User’s Manual. LFCS Report ECS-LFCS-92-211, Dept. of Computer Science, Univ. of Edinburgh (1992)
Luo, Z., Soloviev, S.: Dependent coercions. In: CTCS 1999, ENTCS 1929 (1999)
MacQueen, D.: Modules for standard ML. In: ACM Symp. on Lisp and Functional Programming (1984)
Martin-Löf, P.: Intuitionistic Type Theory. Bibliopolis (1984)
The Matita proof assistant (2008), http://matita.cs.unibo.it/
Milner, R., Harper, R., Tofts, M., MacQueen, D.: The Definition of Standard ML (revised). MIT, Cambridge (1997)
Nordström, B., Petersson, K., Smith, J.: Programming in Martin-Löf’s Type Theory: An Introduction. Oxford University Press, Oxford (1990)
Pierce, B.C., Turner, D.N.: Simple type-theoretic foundations for object-oriented programming. J. of Functional Programming 4(2), 207–247 (1994)
Pollack, R.: Dependently typed records in type theory. Formal Aspects of Computing 13, 386–402 (2002)
Sacerdoti-Coen, C., Tassi, E.: Working with mathematical structures in type theory. In: Miculan, M., Scagnetto, I., Honsell, F. (eds.) TYPES 2007. LNCS, vol. 4941, pp. 157–172. Springer, Heidelberg (2008)
Saïbi, A.: Typing algorithm in type theory with inheritance. In: POPL 1997(1997)
Soloviev, S., Luo, Z.: Coercion completion and conservativity in coercive subtyping. Annals of Pure and Applied Logic 113(1-3), 297–322 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Luo, Z. (2009). Manifest Fields and Module Mechanisms in Intensional Type Theory. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds) Types for Proofs and Programs. TYPES 2008. Lecture Notes in Computer Science, vol 5497. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02444-3_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-02444-3_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02443-6
Online ISBN: 978-3-642-02444-3
eBook Packages: Computer ScienceComputer Science (R0)