Program specification and data refinement in type theory

  • Zhaohui Luo
CAAP Colloquium On Trees In Algebra And Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 493)


We develop a type-theoretic approach to program specification and data refinement and show that a type theory with a strong logical power and nice structural mechanisms provides an adequate formalism for modular development of programs and specifications. Specification of abstract data types is considered and a notion of abstract implementation between specifications is defined in the type theory and studied as a basis for correct and modular development of programs by stepwise refinement. The higher-order structural mechanisms in the type theory provide useful and flexible tools (specification operations and parameterized specifications) for modular design and structured specification. Refinement maps (programs and design decisions) and proofs of implementation correctness can be developed by means of the existing proof development systems based on type theories.


Type Theory Specification Operation Modular Design Data Refinement Abstract Data Type 
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.


  1. [BB85]
    C. Böhm and A. Beradurcci. Automatic synthesis of typed λ-programs on term algebras. Theoretical Computer Science, 39, 1985.Google Scholar
  2. [BCM89]
    R. Backhouse, P. Chisholm, and G. Malcolm. Do-it-youself type theory. Formal Aspects of Computing, 1(1), 1989.Google Scholar
  3. [Bee82]
    M.J. Beeson. Problematic principles in constructive mathematics. Logic Colloquiun'80, 1982.Google Scholar
  4. [BG80]
    R. Burstall and J. Goguen. The semantics of Clear, a specification language. Lecture Notes in Computer Science, 86, 1980.Google Scholar
  5. [BL84]
    R. Burstall and B. Lampson. Pebble, a kernel language for modules and abstract data types. Lecture Notes in Computer Science, 173, 1984.Google Scholar
  6. [BM90]
    R. Burstall and J. McKinna. Deliverables: an approach to program development in the calculus of constructions. In the preliminary Proceedings of the 1st Workshop on Logical Frameworks, 1990.Google Scholar
  7. [C+86]
    R.L. Constable et al. Implementing Mathematics with the NuPRL Proof Development System. Pretice-Hall, 1986.Google Scholar
  8. [CH88]
    Th. Coquand and G. Huet. The calculus of constructions. Information and Computation, 76(2/3), 1988.Google Scholar
  9. [Chu40]
    A. Church. A formulation of the simple theory of types. J. Symbolic Logic, 5(1), 1940.Google Scholar
  10. [CPM90]
    Th. Coquand and Ch. Paulin-Mohring. Inductively defined types. Lecture Notes in Computer Science, 417, 1990.Google Scholar
  11. [dB80]
    N.G. de Bruijn. A survey of the project AUTOMATH. In J. Hindley and J. Seldin, editors, To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism. Academic Press, 1980.Google Scholar
  12. [EFH83]
    H. Ehrig, W. Fey, and H. Hansen. ACT ONE: an algebraic specification language with two levels of semantics. Technical Report 83-03, Technical University of Berlin, Fachbereich Informatik, 1983.Google Scholar
  13. [EM85]
    H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification I: Equations and Initial Semantics. Springer, 1985.Google Scholar
  14. [FGJM85]
    K. Futatsugi, J. Goguen, J.-P. Jouannaud, and J. Meseguer. Principles of OBJ2. Proc. POPL 85, 1985.Google Scholar
  15. [GHM76]
    J.V. Guttag, E. Horowitz, and D.R. Musser. Abstract data types and software validation. Comm. ACM, 21(12), 1976.Google Scholar
  16. [Gir72]
    J.-Y. Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VII, 1972.Google Scholar
  17. [GTW78]
    J.A. Goguen, J.W. Thatcher, and E.G. Wagner. Abstract data types as initial algebras and the correctness of data representation. In R. Yeh, editor, Current Trends in Programming Methodology, Vol. 4. Prentice Hall, 1978.Google Scholar
  18. [Hoa72]
    C.A.R. Hoare. Proofs of correctness of data representation. Acta Informatica, 1(1), 1972.Google Scholar
  19. [HP89]
    R. Harper and R. Pollack. Type checking, universe polymorphism, and typical ambiguity in the calculus of constructions. Theoretical Computer Science, 1989. to appear.Google Scholar
  20. [Hue87]
    G. Huet. A calculus with type:type. unpublished manuscript, 1987.Google Scholar
  21. [Jon86]
    C.B. Jones. Systematic Software Development using VDM. Prentice-Hall, 1986.Google Scholar
  22. [LPT89]
    Z. Luo, R. Pollack, and P. Taylor. How to Use LEGO: a preliminary user's manual. LFCS Technical Notes LFCS-TN-27, Dept. of Computer Science, Edinburgh University, 1989.Google Scholar
  23. [Luo89a]
    Zhaohui Luo. ECC, an extended calculus of constructions. In Proc. of the Fourth Ann. Symp. on Logic in Computer Science, Asilomar, California, U.S.A., June 1989.Google Scholar
  24. [Luo89b]
    Zhaohui Luo. A higher-order calculus and theory abstraction. To appear in Information and Computation, 1989.Google Scholar
  25. [Luo90a]
    Zhaohui Luo. An Extended Calculus of Constructions. PhD thesis, University of Edinburgh, 1990. Also as Report CST-65-90/ECS-LFCS-90-118, Department of Computer Science, University of Edinburgh.Google Scholar
  26. [Luo90b]
    Zhaohui Luo. A problem of adequacy: conservativity of calculus of constructions over higher-order logic. Technical report, LFCS report series ECS-LFCS-90-121, Department of Computer Science, University of Edinburgh, 1990.Google Scholar
  27. [Luo90c]
    Zhaohui Luo. A unifying theory of dependent types. manuscript., 1990.Google Scholar
  28. [LZ75]
    B. Liskov and S. Zilles. Specification techniques for data abstraction. IEEE Trans. on Software Engineering, SE-1(1), 1975.Google Scholar
  29. [Mac81]
    D.D. MacQueen. Structures and parameterization in a typed functional language. Proc. Symp. on Functional Programming and Computer Architecture, 1981.Google Scholar
  30. [ML75]
    Per Martin-Löf. An intuitionistic theory of types: predicative part. Logic Colloquium'73, 1975.Google Scholar
  31. [ML82]
    Per Martin-Löf. Constructive mathematics and computer programming. In Logic, Methodology and Philosophy of Science, VI, 1982.Google Scholar
  32. [ML84]
    Per Martin-Löf. Intuitionistic Type Theory. Bibliopolis, 1984.Google Scholar
  33. [MSV83]
    T.S.E. Maibaum, M.R. Sadler, and P.A.S. Veloso. Logical implementation, 1983.Google Scholar
  34. [MTH90]
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT, 1990.Google Scholar
  35. [NP83]
    B. Nordström and K. Petersson. Types and specifications. Proceedings of IFIP'83, pages 915–920, 1983.Google Scholar
  36. [NPS90]
    B. Nordström, K. Petersson, and J. Smith. Programming in Martin-Löf's Type Theory: an introduction. Oxford University Press, 1990.Google Scholar
  37. [Ore90]
    C.-H. Ore. The Extended Calculus of Constructions (ECC) with inductive types. draft, 1990.Google Scholar
  38. [PM89]
    Ch. Paulin-Mohring. Extracting F ω programs from proofs in the calculus of constructions. Proc. POPL 89, 1989.Google Scholar
  39. [Pol89]
    R. Pollack. The theory of lego. manuscript, 1989.Google Scholar
  40. [Pol90]
    R. Pollack. Implicit syntax. In the preliminary Proceedings of the 1st Workshop on Logical Frameworks, 1990.Google Scholar
  41. [Rey74]
    J.C. Reynolds. Towards a theory of type structure. Lecture Notes in Computer Science, 19, 1974.Google Scholar
  42. [SST90]
    D. Sannella, S. Sokolowski, and A. Tarlecki. Toward formal development of programs from algebraic specifications: Parameterization revisited. draft, 1990.Google Scholar
  43. [ST87]
    D. Sannella and A. Tarlecki. Extended ML: an institution-independent framework for formal program development. Proc. Workshop on Category Theory and Computer Programming, LNCS 240, pages 364–389, 1987.Google Scholar
  44. [ST88a]
    D. Sannella and A. Tarlecki. Specifications in arbitrary institutions. Information and Computation, 76, 1988.Google Scholar
  45. [ST88b]
    D. Sannella and A. Tarlecki. Toward formal development of programs from algebraic specifications: implementation revisited. Acta Informatica, 25, 1988.Google Scholar
  46. [ST90]
    D. Sannella and A. Tarlecki. A kernel specification formalism with higher-order parameterization. Draft, 1990.Google Scholar
  47. [SW83]
    D.T. Sannella and M. Wirsing. A kernal language for algebraic specification and implementation. Technical Report CSR-155-83, Dept of Computer Science, University of Edinburgh, 1983.Google Scholar
  48. [TL88]
    P. Taylor and Z. Luo. Theories, mathematical structures and strong sums. manuscript, December 1988.Google Scholar
  49. [WB89]
    M. Wirsing and M. Broy. A modular framework for specification and implementation. TAPSOFT'89, LNCS, 351, 1989.Google Scholar
  50. [Wir86]
    M. Wirsing. Structured algebraic specifications: a kernel languages. Theoretical Computer Science, 42:123–249, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Zhaohui Luo
    • 1
  1. 1.Department of Computer ScienceUniversity of Edinburgh JCMB, KBEdinburghUK

Personalised recommendations