Skip to main content

Inductive Families Need Not Store Their Indices

  • Conference paper
Types for Proofs and Programs (TYPES 2003)

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

Included in the following conference series:

Abstract

We consider the problem of efficient representation of dependently typed data. In particular, we consider a language TT based on Dybjer’s notion of inductive families [10] and reanalyse their general form with a view to optimising the storage associated with their use. We introduce an execution language, ExTT, which allows the commenting out of computationally irrelevant subterms and show how to use properties of elimination rules to elide constructor arguments and tags in ExTT. We further show how some types can be collapsed entirely at run-time. Several examples are given, including a representation of the simply typed λ-calculus for which our analysis yields an 80% reduction in run-time storage requirements.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Altenkirch, T., Hofmann, M., Streicher, T.: Categorical reconstruction of a reduction free normalization proof (1996)

    Google Scholar 

  2. Augustsson, L.: Compiling pattern matching. In: Jouannaud, J.-P. (ed.) Functional Programming Languages and Computer Architecture, September 1985, pp. 368–381. Springer, Heidelberg (1985)

    Google Scholar 

  3. Augustsson, L., Carlsson, M.: An exercise in dependent types: A well-typed interpreter (1999), http://www.cs.chalmers.se/~augustss/cayenne/

  4. Berardi, S.: Pruning simply typed lambda terms. Journal of Logic and Computation 6(5), 663–681 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  5. Berger, U., Schwichtenberg, H.: An inverse of the evaluation functional for typed λ-calculus. In: Vemuri, R. (ed.) Proceedings of the Sixth Annual IEEE Symposium on Logic in Computer Science, pp. 203–211. IEEE Computer Society Press, Los Alamitos (1991)

    Chapter  Google Scholar 

  6. Bove, A., Capretta, V.: Modelling general recursion in type theory (September 2002)

    Google Scholar 

  7. Callaghan, P., Luo, Z.: Implementation techniques for inductive types in plastic. In: Coquand, T., Nordström, B., Dybjer, P., Smith, J. (eds.) TYPES 1999. LNCS, vol. 1956, pp. 94–113. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  8. Coq Development Team. The Coq proof assistant — reference manual (2001)

    Google Scholar 

  9. André Lu´ıs de Medeiros Santos. Compilation By Transformatio. In: Non-Strict Functional Languages. PhD thesis, University of Glasgow (1995)

    Google Scholar 

  10. Dybjer, P.: Inductive families. Formal Aspects Of Computing 6, 440–465 (1994)

    Article  MATH  Google Scholar 

  11. Harper, R., Pollack, R.: Type checking with universes. Theoretical Computer Science 89(1), 107–136 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  12. Johnsson, T.: Efficient compilation of lazy evaluation (1984)

    Google Scholar 

  13. Letouzey, P.: A new extraction for Coq. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 200–219. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  14. Luo, Z.: Computation and Reasoning – A Type Theory for Computer Science. International Series of Monographs on Computer Science. OUP (1994)

    Google Scholar 

  15. Luo, Z., Pollack, R.: Lego proof development system: User’s manual. Technical report, LFCS, University of Edinburgh (1992)

    Google Scholar 

  16. Magaud, N., Bertot, Y.: Changing data structures in type theory: A study of natural numbers. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 181–196. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  17. Magnusson, L.: The implementation of ALF – A Proof Editor based on Martin- Löf’s Monomorphic Type Theory with Explicit Substitutions. PhD thesis, Chalmers University of Technology, Göteborg (1994)

    Google Scholar 

  18. McBride, C.: Dependently Typed Functional Programs and their proofs. PhD thesis, University of Edinburgh (May 2000)

    Google Scholar 

  19. McBride, C., McKinna, J.: The view from the left. Journal of Functional Programming 14(1) (2004)

    Google Scholar 

  20. McBride, F.: Computer Aided Manipulation of Symbols. PhD thesis, Queen’s University of Belfast (1970)

    Google Scholar 

  21. Paulin-Mohring, C.: Extraction de programmes dans le Calcul des Constructions. PhD thesis, Paris 7 (1989)

    Google Scholar 

  22. Jones, S.L.P., Santos, A.L.M.: A transformation-based optimiser for Haskell. Science of Computer Programming 32, 3–47 (1998)

    Article  MATH  Google Scholar 

  23. Pollack, R.: Implicit syntax. Technical report, LFCS, University of Edinburgh (1992)

    Google Scholar 

  24. Sansom, P.M., Jones, S.L.P.: Time and space profiling for non-strict, higher order functional languages (1995)

    Google Scholar 

  25. Xi, H.: Dependent Types in Practical Programming. PhD thesis, Department of Mathematical Sciences, Carnegie Mellon University (December 1998)

    Google Scholar 

  26. Xi, H.: Dead code elimination through dependent types (1999)

    Google Scholar 

  27. Xi, H., Pfenning, F.: Eliminating array bound checking through dependent types (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brady, E., McBride, C., McKinna, J. (2004). Inductive Families Need Not Store Their Indices. In: Berardi, S., Coppo, M., Damiani, F. (eds) Types for Proofs and Programs. TYPES 2003. Lecture Notes in Computer Science, vol 3085. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24849-1_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24849-1_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22164-7

  • Online ISBN: 978-3-540-24849-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics