Advertisement

Polytypic Proof Construction

  • Holger Pfeifer
  • Harald Rueβ
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1690)

Abstract

This paper deals with formalizations and verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions. The main advantage of these developments are that they can not only be used to define functions in a generic way but also to formally state polytypic theorems and to synthesize polytypic proof objects in a formal way. This opens the door to mechanically proving many useful facts about large classes of datatypes once and for all.

Keywords

Theorem Prove Type Theory Category Theory Reduction Rule Functional Programming 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    B. Barras, S. Boutin, and C. Cornes et. al. The Coq Proof Assistant Reference Manual — Vers. 6.2.4. INRIA, Rocquencourt, 1998.Google Scholar
  2. [2]
    R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.Google Scholar
  3. [3]
    C. Böhm and A. Berarducci. Automatic Synthesis of Typed λ-Programs on Term Algebras. Theoretical Computer Science, 39:135–154, 1985.MathSciNetCrossRefMATHGoogle Scholar
  4. [4]
    T. Coquand and C. Paulin. Inductively Defined Types. In Proc. COLOG 88, volume 417 of LNCS, pages 50–66. Springer-Verlag, 1990.CrossRefGoogle Scholar
  5. [5]
    P. Dybjer and A. Setzer. A Finite Axiomatization of Inductive-Recursive Definitions. In J.-Y. Girard, editor, Proc. 4th Int. Conf. on Typed Lambda Calculi and Applications, TLCA’99, volume 1581 of LNCS. Springer-Verlag, 1999.Google Scholar
  6. [6]
    M. J. C. Gordon and T. F. Melham (eds.). Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, 1993.Google Scholar
  7. [7]
    R. Harper and R. Pollack. Type Checking, Universal Polymorphism, and Type Ambiguity in the Calculus of Constructions. In TAPSOFT’89, volume II, LNCS, pages 240–256. Springer-Verlag, 1989.Google Scholar
  8. [8]
    G. Huet and A. Saïbi. Constructive Category Theory. In Proc. CLICS-TYPES Workshop on Categories and Type Theory, January 1995.Google Scholar
  9. [9]
    C.B. Jay and J.R.B. Cockett. Shapely Types and Shape Polymorphism. In D. Sannella, editor, Programming Languages and Systems — ESOP’94, volume 788 of LNCS, pages 302–316. Springer-Verlag, 1994.Google Scholar
  10. [10]
    J. Jeuring. Polytypic Pattern Matching. In Conf. Functional Programming Languages and Computer Architecture (FPCA’ 95), pages 238–248. ACM Press, 1995.Google Scholar
  11. [11]
    J. Jeuring and P. Jansson. Polytypic Programming. In T. Launchbury, E. Meijer, and T. Sheard, editors, Advanced Functional Programming, LNCS, pages 68–114. Springer-Verlag, 1996.CrossRefGoogle Scholar
  12. [12]
    Z. Luo. An Extended Calculus of Constructions. Technical Report CST-65-90, University of Edinburgh, July 1990.Google Scholar
  13. [13]
    Z. Luo and R. Pollack. The Lego Proof Development System: A User’s Manual. Technical Report ECS-LFCS-92-211, University of Edinburgh, 1992.Google Scholar
  14. [14]
    G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255–279, 1990.MathSciNetCrossRefMATHGoogle Scholar
  15. [15]
    L. Meertens. Paramorphisms. Formal Aspects of Computing, 4(5):413–425, 1992.CrossRefMATHGoogle Scholar
  16. [16]
    L. Meertens. Calculate Polytypically. In H. Kuchen and S.D. Swierstra, editors, Programming Languages, Implementations, Logics, and Programs (PLILP’96), LNCS, pages 1–16. Springer-Verlag, 1996.CrossRefGoogle Scholar
  17. [17]
    E. Meijer, M. Fokkinga, and R. Paterson. Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire. In Proc. 5th Conf. on Functional Programming Languages and Computer Architecture, pages 124–144, 1991.Google Scholar
  18. [18]
    B. Nordström, K. Petersson, and J.M. Smith. Programming in Martin-Löf’s Type Theory. Monographs on Computer Science. Oxford Science Publications, 1990.Google Scholar
  19. [19]
    Ch.E. Ore. The Extended Calculus of Constructions (ECC) with Inductive Types. Information and Computation, 99,Nr. 2:231–264, 1992.MathSciNetCrossRefMATHGoogle Scholar
  20. [20]
    S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS. IEEE Transactions on Software Engineering, 21(2):107–125, 1995.CrossRefGoogle Scholar
  21. [21]
    C. Paulin-Mohring. Inductive Definitions in the System Coq, Rules and Properties. In J.F. Groote M. Bezem, editor, Typed Lambda Calculi and Applications, volume 664 of LNCS, pages 328–345. Springer-Verlag, 1993.CrossRefGoogle Scholar
  22. [22]
    L.C. Paulson. A Fixedpoint Approach to (Co)Inductive and (Co)Datatype Definition. Technical report, Computer Laboratory, University of Cambridge, 1996.Google Scholar
  23. [23]
    H. Rueβ. Computational Reflection in the Calculus of Constructions and Its Application to Theorem Proving. In J. R. Hindley P. de Groote, editor, Proc. 3rd Int. Conf. on Typed Lambda Calculi and Applications TLCA’97, volume 1210 of LNCS, pages 319–335. Springer-Verlag, 1997.CrossRefGoogle Scholar
  24. [24]
    N. Shankar. Steps Towards Mechanizing Program Transformations Using PVS. Preprint submitted to Elsevier Science, 1996.Google Scholar
  25. [25]
    T. Sheard. Type Parametric Programming. Oregon Graduate Institute of Science and Technology, Portland, OR, USA, 1993.Google Scholar
  26. [26]
    The Lego team. The Lego Library. Distributed with Lego System, 1998.Google Scholar
  27. [27]
    D. Tuijnman. A Categorical Approach to Functional Programming. PhD thesis, Universität Ulm, 1996.Google Scholar
  28. [28]
    F. W. von Henke. An Algebraic Approach to Data Types, Program Verification, and Program Synthesis. In Mathematical Foundations of Computer Science, Proceedings, volume 45 of LNCS. Springer-Verlag, 1976.Google Scholar
  29. [29]
    F. W. von Henke, S. Pfab, H. Pfeifer, and H. Rueβ. Case Studies in Meta-Level Theorem Proving. In Jim Grundy and Malcolm Newey, editors, Proc. Intl. Conf. on Theorem Proving in Higher Order Logics, volume 1479 of LNCS, pages 461–478. Springer-Verlag, September 1998.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Holger Pfeifer
    • 1
  • Harald Rueβ
    • 2
  1. 1.Fakultät für InformatikUniversität UlmUlmGermany
  2. 2.Computer Science LaboratorySRI InternationalMenlo ParkUSA

Personalised recommendations