Abstract
A concept of relational parametricity is developed taking into account the encapsulation mechanism inherent in universal types. This is then applied to data types and refinement, naturally giving rise to a notion of simulation relations that compose for data types with higher-order operations, and whose existence coincides with observational equivalence. The ideas are developed syntactically in lambda calculus with a relational logic. The new notion of relational parametricity is asserted axiomatically, and a corresponding parametric per-semantics is devised.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
R.-J. Back and J. Wright. Refinement Calculus, A Systematic Introduction. Graduate Texts in Computer Science. Springer Verlag, 1998.
E.S. Bainbridge, P.J. Freyd, A. Scedrov, and P.J. Scott. Functorial polymorphism. Theoretical Computer Science, 70:35–64, 1990.
H.P. Barendregt. Lambda calculi with types. In S. Abramsky, D.M. Gabbay, and T.S.E. Maibaum, eds., Handbook of Logic in Computer Science, volume 2, pages 118–309. Oxford University Press, 1992.
C. Böhm and A. Berarducci. Automatic synthesis of typed λ-programs on term algebras. Theoretical Computer Science, 39:135–154, 1985.
O.-J. Dahl. Verifiable Programming, Revised version 1993. Prentice Hall Int. Series in Computer Science; C.A.R. Hoare, Series Editor. Prentice-Hall, UK, 1992.
J.-Y. Girard, P. Taylor, and Y. Lafont. Proofs and Types. Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1990.
J. Hannay. Specification refinement with System F. In Computer Science Logic. Proc. of CSL’99, vol. 1683 of Lecture Notes in Comp. Sci., pages 530–545. Springer Verlag, 1999.
J. Hannay. Specification refinement with System F, the higher-order case. In Recent Trends in Algebraic Development Techniques. Selected Papers from WADT’99, volume 1827 of Lecture Notes in Comp. Sci., pages 162–181. Springer Verlag, 1999.
J. Hannay. A higher-order simulation relation for System F. In Foundations of Software Science and Computation Structures. Proc. of FOSSACS 2000, vol. 1784 of Lecture Notes in Comp. Sci., pages 130–145. Springer Verlag, 2000.
J. Hannay. Abstraction Barriers and Refinement in the Polymorphic Lambda Calculus. PhD thesis, Laboratory for Foundations of Computer Science (LFCS), University of Edinburgh, 2001.
R. Hasegawa. Parametricity of extensionally collapsed term models of polymorphism and their categorical properties. In Theoretical Aspects of Computer Software. Proc. of TACS’91, vol. 526 of Lecture Notes in Comp. Sci., pages 495–512. Springer Verlag, 1991.
C.A.R. Hoare. Proofs of correctness of data representations. Acta Informatica, 1:271–281, 1972.
F. Honsell, J. Longley, D. Sannella, and A. Tarlecki. Constructive data refinement in typed lambda calculus. In Foundations of Software Science and Computation Structures. Proc. of FOSSACS 2000, vol. 1784 of Lecture Notes in Comp. Sci., pages 161–176. Springer Verlag, 2000.
F. Honsell and D. Sannella. Prelogical relations. Information and Computation, 178:23–43, 2002.
Y. Kinoshita, P.W. O’Hearn, J. Power, M. Takeyama, and R.D. Tennent. An axiomatic approach to binary logical relations with applications to data refinement. In Theoretical Aspects of Computer Software. Proc. of TACS’97, vol. 1281 of Lecture Notes in Comp. Sci., pages 191–212. Springer Verlag, 1997.
Y. Kinoshita and J. Power. Data refinement for call-by-value programming languages. In Computer Science Logic. Proc. of CSL’99, vol. 1683 of Lecture Notes in Comp. Sci., pages 562–576. Springer Verlag, 1999.
Q. Ma and J.C. Reynolds. Types, abstraction and parametric polymorphism, part 2. In Mathematical Foundations of Programming Semantics, Proc. of MFPS, vol. 598 of Lecture Notes in Comp. Sci., pages 1–40. Springer Verlag, 1991.
H. Mairson. Outline of a proof theory of parametricity. In Functional Programming and Computer Architecture. Proc. of the 5th acm Conf., vol. 523 of Lecture Notes in Comp. Sci., pages 313–327. Springer Verlag, 1991.
R. Milner. An algebraic definition of simulation between programs. In Joint Conferences on Artificial Intelligence, Proc. of JCAI, pages 481–489. Morgan Kaufman Publishers, 1971.
J.C. Mitchell. On the equivalence of data representations. In V. Lifschitz, ed., Artificial Intelligence and Mathematical Theory of Computation: Papers in Honor of John McCarthy, pages 305–330. Academic Press, 1991.
J.C. Mitchell. Foundations for Programming Languages. Foundations of Computing. MIT Press, 1996.
J.C. Mitchell and G.D. Plotkin. Abstract types have existential type. ACM Transactions on Programming Languages and Systems, 10(3):470–502, 1988.
C. Morgan. Programming from Specifications, 2nd ed. Prentice Hall International Series in Computer Science; C.A.R. Hoare, Series Editor. Prentice-Hall, UK, 1994.
P.W. O’Hearn and R.D. Tennent. Relational parametricity and local variables. In 20th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Proceedings, pages 171–184. ACM Press, 1993.
G.D. Plotkin and M. Abadi. A logic for parametric polymorphism. In Typed Lambda Calculi and Applications. Proc. of TLCA’93, vol. 664 of Lecture Notes in Comp. Sci., pages 361–375. Springer Verlag, 1993.
G.D. Plotkin, J. Power, D. Sannella, and R.D. Tennent. Lax logical relations. In Automata, Languages and Programming. Proc. of ICALP 2000, vol. 1853 of Lecture Notes in Comp. Sci., pages 85–102. Springer Verlag, 2000.
J.C. Reynolds. The Craft of Programming. Prentice-Hall International, 1981.
J.C. Reynolds. Types, abstraction and parametric polymorphism. In Information Processing 83, Proc. of the IFIP 9th World Computer Congress, pages 513–523. Elsevier Science Publishers B.V. (North-Holland), 1983.
E. Robinson. Notes on the second-order lambda calculus. Report 4/92, University of Sussex, School of Cognitive and Computing Sciences, 1992.
D. Sannella and A. Tarlecki. Essential concepts of algebraic specification and program development. Formal Aspects of Computing, 9:229–269, 1997.
O. Schoett. Behavioural correctness of data representations. Science of Computer Programming, 14:43–57, 1990.
C. Strachey. Fundamental concepts in programming languages. Lecture notes from the Int. Summer School in Programming Languages, Copenhagen, 1967.
I. Takeuti. An axiomatic system of parametricity. Fundamenta Informaticae, 20:1–29, 1998.
R.D. Tennent. Correctness of data representations in Algol-like languages. In A.W. Roscoe, ed., A Classical Mind: Essays in Honour of C.A.R. Hoare. Prentice Hall International, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hannay, J. (2003). Abstraction Barrier-Observing Relational Parametricity. In: Hofmann, M. (eds) Typed Lambda Calculi and Applications. TLCA 2003. Lecture Notes in Computer Science, vol 2701. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44904-3_10
Download citation
DOI: https://doi.org/10.1007/3-540-44904-3_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40332-6
Online ISBN: 978-3-540-44904-1
eBook Packages: Springer Book Archive