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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
M. Broy and P. Pepper. Programming as a formal activity. IEEE Trans. on Software Engineering, 7(1):10–22, 1981.
H.B. Curry and R. Feys. Combinatory Logic, volume 1. North Holland Publishing Company, 1958.
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.
A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.
CIP System Group. The Munich Project CIP — Volume II. volume 292 of LNCS. Springer, 1987.
R. L. Constable et al. Implementing Mathematics with the NuPRL proof development system. Prentice Hall, Englewood Cliffs, NJ, 1986.
A. Dold. Formalisierung schematischer Algorithmen. Ulmer Informatik-Berichte 94-10, Universität Ulm, January 1994.
K. Gödel. Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme. I. Monatsh. Math. Phys., 38:173–198, 1931.
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.
G. Huet and B. Lang. Proving and applying program transformations expressed with second-order-patterns. Acta Informatica, 11:31–55, 1978.
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.
D.J. Howe. Computational metatheory in Nuprl. In Proc. 9th International Conference on Automated Deduction, volume 310 of LNCS, pages 238–257. Springer, 1988.
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.
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.
C. Kreitz. Metasynthesis — deriving programs that develop programs. Technical Report AIDA-93-03, Fachgebiet Intellektik, Technische Hochschule Darmstadt, 1993.
Z. Luo. An Extended Calculus of Constructions. Technical Report CST-65-90, University of Edinburgh, July 1990.
Z. Luo. A Higher-Order Calculus and Theory Abstraction. Information and Computation, 90:107–137, 1991.
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.
Ch.E. Ore. The extended calculus of constructions (ECC) with inductive types. Information and Computation, 99:231–264, 1992.
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.
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.
H.A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.
H. Pfeifer. Eine reflexive Architektur zur Darstellung von Beweis-und SW-Entwicklungsschritten in Typtheorie. Master's thesis, Universität Ulm, 1995.
H. Rueß. Formal Meta-Programming in the Calculus of Constructions. PhD thesis, Universität Ulm, 1995.
D. R. Smith. Structure and design of global search algorithms. Technical Report KES.U.87.12, Kestrel Institute, Palo Alto, CA, 1987.
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.
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.
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.
M. Wagner. Entwicklung und Implementierung eines Beweisers für konstruktive Logik. Master's thesis, Universität Ulm, 1995.
R. W. Weyhrauch. Prolegomena to a Theory of Mechanized Formal Reasoning. Artificial Intelligence, 13(1):133–170, 1980.
M. Wirsing et al. A Method for the Development of Correct Software. 1995. In this volume.
Author information
Authors and Affiliations
Editor information
Rights 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