Construction and deduction methods for the formal development of software

  • F. W. von Henke
  • A. Dold
  • H. Rueß
  • D. Schwier
  • M. Strecker
Development Systems and Logical Frameworks
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1009)


In this paper we present an approach towards a framework based on the type theory ECC (Extended Calculus of Constructions) in which specifications, programs and operators for modular development by stepwise refinement can be formally described and reasoned about. We demonstrate how generic software development steps can be expressed as higher-order functions and how proofs about their asserted effects can be carried out in the underlying logical calculus.

For formalizing transformations that require syntactic manipulation of objects, we introduce a two-level system combining a meta-level and an object level and show how to express and reason about transformations that faithfully represent object-level operators.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ACHA90]
    S.F. Allen, R.L. Constable, D.J. Howe, and W.E. Aitken. The semantics of reflected proof. In Proc. 5th Annual IEEE Symposium on Logic in Computer Science, pages 95–105. IEEE CS Press, 1990.Google Scholar
  2. [AW80]
    L. Aiello and R.W. Weyhrauch. Using meta-theoretic reasoning to do algebra. In W. Bibel and R. Kowalksi, editors, 5th Conference on Automated Deduction, volume 87 of LNCS, pages 1–13. Springer, 1980.Google Scholar
  3. [BM81]
    R.S. Boyer and J.S. Moore. Metafunctions: proving them correct and using them efficiently as new proof procedures. In R.S. Boyer and J.S. Moore, editors, The Correctness Problem in Computer Science, chapter 3. Academic Press, 1981.Google Scholar
  4. [BP81]
    M. Broy and P. Pepper. Programming as a formal activity. IEEE Trans. on Software Engineering, 7(1):10–22, 1981.Google Scholar
  5. [CF58]
    H.B. Curry and R. Feys. Combinatory Logic, volume 1. North Holland Publishing Company, 1958.Google Scholar
  6. [CH85]
    T. Coquand and G. Huet. Constructions: a Higher-Order Proof System for Mechanizing Mathematics. In B. Buchberger, editor, EUROCAL'85: European Conference on Computer Algebra, volume 203 of LNCS, pages 151–184. Springer, 1985.Google Scholar
  7. [Chu40]
    A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.Google Scholar
  8. [CIP87]
    CIP System Group. The Munich Project CIP — Volume II. volume 292 of LNCS. Springer, 1987.Google Scholar
  9. [Con86]
    R. L. Constable et al. Implementing Mathematics with the NuPRL proof development system. Prentice Hall, Englewood Cliffs, NJ, 1986.Google Scholar
  10. [Dol94]
    A. Dold. Formalisierung schematischer Algorithmen. Ulmer Informatik-Berichte 94-10, Universität Ulm, January 1994.Google Scholar
  11. [Göd31]
    K. Gödel. Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme. I. Monatsh. Math. Phys., 38:173–198, 1931.CrossRefGoogle Scholar
  12. [GS89]
    F. Giunchiglia and A. Smaill. Reflection in Constructive and Non-Constructive Automated Reasoning. In Meta-Programming in Logic Programming, chapter 6, pages 123–140. The MIT Press, 1989.Google Scholar
  13. [HL78]
    G. Huet and B. Lang. Proving and applying program transformations expressed with second-order-patterns. Acta Informatica, 11:31–55, 1978.CrossRefGoogle Scholar
  14. [How80]
    W.A. Howard. The Formulae-as-Types Notion of Construction. In J. Hindley and J. Seldin, editors, To H.B. Curry: Essays on Cornbinatory Logic, Lambda Calculus and Formalism. Academic Press, 1980.Google Scholar
  15. [How88]
    D.J. Howe. Computational metatheory in Nuprl. In Proc. 9th International Conference on Automated Deduction, volume 310 of LNCS, pages 238–257. Springer, 1988.Google Scholar
  16. [HP89]
    R. Harper and R. Pollack. Type checking, universal polymorphism, and type ambiguity in the Calculus of Constructions. In TAPSOFT'89, volume II, volume 310 of LNCS, pages 240–256. Springer, 1989.Google Scholar
  17. [KC86]
    T.B. Knoblock and R.L. Constable. Formalized metareasoning in type theory. In Proceedings of LICS, pages 237–248. IEEE, 1986. Also available as technical report TR 86-742, Department of Computer Science, Cornell University.Google Scholar
  18. [Kre93]
    C. Kreitz. Metasynthesis — deriving programs that develop programs. Technical Report AIDA-93-03, Fachgebiet Intellektik, Technische Hochschule Darmstadt, 1993.Google Scholar
  19. [Luo90]
    Z. Luo. An Extended Calculus of Constructions. Technical Report CST-65-90, University of Edinburgh, July 1990.Google Scholar
  20. [Luo91a]
    Z. Luo. A Higher-Order Calculus and Theory Abstraction. Information and Computation, 90:107–137, 1991.CrossRefGoogle Scholar
  21. [Luo91b]
    Z. Luo. Program Specification and Data Refinement in Type Theory. In S. Abramsky and T.S.E. Maibaum, editors, TAPSOFT'91, volume I, volume 494 of LNCS, pages 143–168. Springer, 1991.Google Scholar
  22. [Ore92]
    Ch.E. Ore. The extended calculus of constructions (ECC) with inductive types. Information and Computation, 99:231–264, 1992.CrossRefGoogle Scholar
  23. [ORS92]
    S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th Intern. Conf. on Automated Deduction (CADE), volume 607 of LNAI, pages 748–752. Springer, 1992.Google Scholar
  24. [ORSv95]
    S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Trans. on Software Engineering, 21(2):107–125, February 1995.CrossRefGoogle Scholar
  25. [Par90]
    H.A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.Google Scholar
  26. [Pfe95]
    H. Pfeifer. Eine reflexive Architektur zur Darstellung von Beweis-und SW-Entwicklungsschritten in Typtheorie. Master's thesis, Universität Ulm, 1995.Google Scholar
  27. [Rue95]
    H. Rueß. Formal Meta-Programming in the Calculus of Constructions. PhD thesis, Universität Ulm, 1995.Google Scholar
  28. [Smi87]
    D. R. Smith. Structure and design of global search algorithms. Technical Report KES.U.87.12, Kestrel Institute, Palo Alto, CA, 1987.Google Scholar
  29. [ST89]
    D. Sannella and A. Tarlecki. Toward formal development of ML programs: foundations and methodology. In Proc. TAPSOFT 89, volume 352 of LNCS, pages 375–389. Springer, 1989.Google Scholar
  30. [ST92]
    D. Sannella and A. Tarlecki. Toward formal development of programs from algebraic specifications: model-theoretic foundations. In Proc. Intl. Colloq. on Automata, Languages and Programming, volume 623 of LNCS, pages 656–671. Springer, 1992.Google Scholar
  31. [vH76]
    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, 1976.Google Scholar
  32. [Wag95]
    M. Wagner. Entwicklung und Implementierung eines Beweisers für konstruktive Logik. Master's thesis, Universität Ulm, 1995.Google Scholar
  33. [Wey80]
    R. W. Weyhrauch. Prolegomena to a Theory of Mechanized Formal Reasoning. Artificial Intelligence, 13(1):133–170, 1980.CrossRefGoogle Scholar
  34. [Wir95]
    M. Wirsing et al. A Method for the Development of Correct Software. 1995. In this volume.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • F. W. von Henke
    • 1
  • A. Dold
    • 1
  • H. Rueß
    • 1
  • D. Schwier
    • 1
  • M. Strecker
    • 1
  1. 1.Abt. Künstliche IntelligenzUniversität UlmDeutschland

Personalised recommendations