A Brief Overview of Agda – A Functional Language with Dependent Types

  • Ana Bove
  • Peter Dybjer
  • Ulf Norell
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5674)

Abstract

We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on Martin-Löf’s intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, including inductive families and inductive-recursive types, with associated flexible pattern-matching. Unlike other proof assistants, Agda is not tactic-based. Instead it has an Emacs-based interface which allows programming by gradual refinement of incomplete type-correct terms.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. In: Coq’Art: The Calculus of Inductive Constructions. Springer, Heidelberg (2004)Google Scholar
  3. 3.
    Bove, A., Dybjer, P.: Dependent types at work. In: Barbosa, L., Bove, A., Pardo, A., Pinto, J.S. (eds.) LerNet ALFA Summer School 2008. LNCS, vol. 5520, pp. 57–99. Springer, Heidelberg (to appear, 2009)Google Scholar
  4. 4.
    Coquand, T., Huet, G.: The calculus of constructions. Information and Computation 76, 95–120 (1988)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Dybjer, P.: Inductive families. Formal Aspects of Computing 6, 440–465 (1994)CrossRefMATHGoogle Scholar
  6. 6.
    Dybjer, P.: A general formulation of simultaneous inductive-recursive definitions in type theory. Journal of Symbolic Logic 65(2) (June 2000)Google Scholar
  7. 7.
    Dybjer, P., Setzer, A.: Indexed induction-recursion. Journal of Logic and Algebraic Programming 66(1), 1–49 (2006)MathSciNetCrossRefMATHGoogle Scholar
  8. 8.
    Epigram homepage, http://www.e-pig.org
  9. 9.
    Gonthier, G.: The four colour theorem: Engineering of a formal proof. In: Kapur, D. (ed.) ASCM 2007. LNCS, vol. 5081, p. 333. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    Gordon, M., Milner, R., Wadsworth, C.: Edinburgh LCF. In: Kahn, G. (ed.) Semantics of Concurrent Computation. LNCS, vol. 70. Springer, Heidelberg (1979)Google Scholar
  11. 11.
    Martin-Löf, P.: Constructive mathematics and computer programming. In: Logic, Methodology and Philosophy of Science, VI, 1979, pp. 153–175. North-Holland, Amsterdam (1982)Google Scholar
  12. 12.
    Martin-Löf, P.: Intuitionistic Type Theory. Bibliopolis, Napoli (1984)MATHGoogle Scholar
  13. 13.
    Nordström, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf’s Type Theory. An Introduction. Oxford University Press, Oxford (1990)MATHGoogle Scholar
  14. 14.
    Norell, U.: Towards a practical programming language based on dependent type theory. PhD thesis, Chalmers University of Technology (2007)Google Scholar
  15. 15.
    Norell, U.: Dependently typed programming in Agda. In: Lecture Notes from the Summer School in Advanced Functional Programming (2008) (to appear)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Ana Bove
    • 1
  • Peter Dybjer
    • 1
  • Ulf Norell
    • 1
  1. 1.Chalmers University of TechnologyGothenburgSweden

Personalised recommendations