Skip to main content

Construction and deduction methods for the formal development of software

  • Development Systems and Logical Frameworks
  • Chapter
  • First Online:
KORSO: Methods, Languages, and Tools for the Construction of Correct Software

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

Abstract

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.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. 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. M. Broy and P. Pepper. Programming as a formal activity. IEEE Trans. on Software Engineering, 7(1):10–22, 1981.

    Google Scholar 

  5. H.B. Curry and R. Feys. Combinatory Logic, volume 1. North Holland Publishing Company, 1958.

    Google Scholar 

  6. 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. A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.

    Google Scholar 

  8. CIP System Group. The Munich Project CIP — Volume II. volume 292 of LNCS. Springer, 1987.

    Google Scholar 

  9. R. L. Constable et al. Implementing Mathematics with the NuPRL proof development system. Prentice Hall, Englewood Cliffs, NJ, 1986.

    Google Scholar 

  10. A. Dold. Formalisierung schematischer Algorithmen. Ulmer Informatik-Berichte 94-10, Universität Ulm, January 1994.

    Google Scholar 

  11. K. Gödel. Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme. I. Monatsh. Math. Phys., 38:173–198, 1931.

    Article  Google Scholar 

  12. 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. G. Huet and B. Lang. Proving and applying program transformations expressed with second-order-patterns. Acta Informatica, 11:31–55, 1978.

    Article  Google Scholar 

  14. 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. 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. 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. 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. C. Kreitz. Metasynthesis — deriving programs that develop programs. Technical Report AIDA-93-03, Fachgebiet Intellektik, Technische Hochschule Darmstadt, 1993.

    Google Scholar 

  19. Z. Luo. An Extended Calculus of Constructions. Technical Report CST-65-90, University of Edinburgh, July 1990.

    Google Scholar 

  20. Z. Luo. A Higher-Order Calculus and Theory Abstraction. Information and Computation, 90:107–137, 1991.

    Article  Google Scholar 

  21. 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. Ch.E. Ore. The extended calculus of constructions (ECC) with inductive types. Information and Computation, 99:231–264, 1992.

    Article  Google Scholar 

  23. 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. 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.

    Article  Google Scholar 

  25. H.A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.

    Google Scholar 

  26. H. Pfeifer. Eine reflexive Architektur zur Darstellung von Beweis-und SW-Entwicklungsschritten in Typtheorie. Master's thesis, Universität Ulm, 1995.

    Google Scholar 

  27. H. Rueß. Formal Meta-Programming in the Calculus of Constructions. PhD thesis, Universität Ulm, 1995.

    Google Scholar 

  28. 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. 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. 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. 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. M. Wagner. Entwicklung und Implementierung eines Beweisers für konstruktive Logik. Master's thesis, Universität Ulm, 1995.

    Google Scholar 

  33. R. W. Weyhrauch. Prolegomena to a Theory of Mechanized Formal Reasoning. Artificial Intelligence, 13(1):133–170, 1980.

    Article  Google Scholar 

  34. M. Wirsing et al. A Method for the Development of Correct Software. 1995. In this volume.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manfred Broy Stefan Jähnichen

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

von Henke, F.W., Dold, A., Rueß, H., Schwier, D., Strecker, M. (1995). Construction and deduction methods for the formal development of software. In: Broy, M., Jähnichen, S. (eds) KORSO: Methods, Languages, and Tools for the Construction of Correct Software. Lecture Notes in Computer Science, vol 1009. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015465

Download citation

  • DOI: https://doi.org/10.1007/BFb0015465

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60589-8

  • Online ISBN: 978-3-540-47802-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics