Abstract
We introduce a foundational lambda calculus, System F i , for studying programming languages with term-indexed datatypes – higher-kinded datatypes whose indices range over data such as natural numbers or lists. System F i is an extension of System F ω that introduces the minimal features needed to support term-indexing. We show that System F i provides a theory for analysing programs with term-indexed types and also argue that it constitutes a basis for the design of logically-sound light-weight dependent programming languages. We establish erasure properties of F i -types that capture the idea that term-indices are discardable in that they are irrelevant for computation. Index erasure projects typing in System F i to typing in System F ω . So, System F i inherits strong normalization and logical consistency from System F ω .
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
Abel, A., Matthes, R.: Fixed points of type constructors and primitive recursion. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 190–204. Springer, Heidelberg (2004)
Abel, A., Matthes, R., Uustalu, T.: Iteration and coiteration schemes for higher-order and nested datatypes. TCS 333(1-2), 3–66 (2005)
Ahn, K.Y., Sheard, T.: A hierarchy of Mendler-style recursion combinators: Taming inductive datatypes with negative occurrences. In: ICFP 2011, pp. 234–246. ACM (2011)
Barras, B., Bernardo, B.: The implicit calculus of constructions as a programming language with dependent types. In: Amadio, R.M. (ed.) FOSSACS 2008. LNCS, vol. 4962, pp. 365–379. Springer, Heidelberg (2008)
Böhm, C., Berarducci, A.: Automatic synthesis of typed lambda-programs on term algebras. TCS 39, 135–154 (1985)
Brady, E., Hammond, K.: Correct-by-construction concurrency: Using dependent types to verify implementations of effectful resource usage protocols. Fundam. Inform. 102(2), 145–176 (2010)
Coquand, T., Huet, G.: The calculus of constructions. Rapport de Recherche 530, INRIA, Rocquencourt, France (May 1986)
Crary, K., Weirich, S., Morrisett, G.: Intensional polymorphism in type-erasure semantics. In: ICFP 1998, pp. 301–312. ACM (1998)
Dagand, P.E., McBride, C.: Transporting functions across ornaments. In: ICFP 1998, ICFP 2012, pp. 103–114. ACM (2012)
Garrigue, J., Normand, J.L.: Adding GADTs to OCaml: the direct approach. In: ML 2011. ACM (2011)
Geuvers, H.: Induction is not derivable in second order dependent type theory. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, pp. 166–181. Springer, Heidelberg (2001)
Giannini, P., Honsell, F., Rocca, S.R.D.: Type inference: Some results, some problems. Fundam. Inform. 19(1/2), 87–125 (1993)
Girard, J.-Y.: Interprétation Fonctionnelle et Élimination des Coupures de l’Arithmétique d’Ordre Supérieur. Thèse de doctorat d’état, Université Paris VII (June 1972)
McBride, C.: Homepage of the Strathclyde Haskell Enhancement (SHE) (2009), http://personal.cis.strath.ac.uk/conor/pub/she/
Miquel, A.: A model for impredicative type systems, universes, intersection types and subtyping. In: LICS, pp. 18–29. IEEE Computer Society (2000)
Miquel, A.: The implicit calculus of constructions. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, pp. 344–359. Springer, Heidelberg (2001)
Mishra-Linger, N., Sheard, T.: Erasure and polymorphism in pure type systems. In: Amadio, R.M. (ed.) FOSSACS 2008. LNCS, vol. 4962, pp. 350–364. Springer, Heidelberg (2008)
Sheard, T., Pašalić, E.: Meta-programming with built-in type equality. In: LFM 2004, pp. 106–124 (2004)
Yorgey, B.A., Weirich, S., Cretin, J., Jones, S.L.P., Vytiniotis, D., Magalhães, J.P.: Giving Haskell a promotion. In: TLDI, pp. 53–66. ACM (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ahn, K.Y., Sheard, T., Fiore, M., Pitts, A.M. (2013). System F i . In: Hasegawa, M. (eds) Typed Lambda Calculi and Applications. TLCA 2013. Lecture Notes in Computer Science, vol 7941. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38946-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-38946-7_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38945-0
Online ISBN: 978-3-642-38946-7
eBook Packages: Computer ScienceComputer Science (R0)