Skip to main content

Complexity of proving program correctness

  • Conference paper
  • First Online:

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

Abstract

The spectrum of a formula is the set of finite data structures in which it is valid. It is known that for some program logics the classes of spectra form complete subclasses of well known complexity classes. This means that for those logics we know how hard it is to decide the set of finite models. We extend those results by determining complexity classes corresponding to partial correctness assertions about programs from sublanguages of Clarke's language L4.

We proceed to show that syntax-directed proof systems are adequate tools for proving partial correctness assertions: It is not more difficult to construct a proof for a valid assertion than to decide its validity. This holds if the programs are simple while-programs or if they belong to some sublanguage of ALGOL like L4, for which relatively complete proof systems are rather sophisticated.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Clarke, E.M. Programming languages for which it is impossible to obtain good Hoare axiom systems, JACM 26 (1979) 129–147.

    Article  Google Scholar 

  2. Clarke, E. M. The characterization problem for Hoare logic, Rep. CMU-CS-84-109, Carnegie-Mellon Univ. (1984).

    Google Scholar 

  3. Cook, S. A. Soundness and completeness of an axiom system for program verification, SIAM J. Comp. 7 (1978) 70–90.

    Article  Google Scholar 

  4. Fagin, R. Generalized first-order spectra and polynomial-time recognizable sets, SIAM-AMS Proc. 7 (1974) 43–73.

    Google Scholar 

  5. German, S. M., Clarke, E. M. and Halpern, J. Y. Reasoning about procedures as parameters in the language L4, Inf. and Comp. 83 (1989) 265–359. (Earlier version: 1st LiCS (1986) 11–25)

    Google Scholar 

  6. Goerdt, A. A Hoare calculus defined by recursion on higher types, in: Proc. Logics of Programs 1985, LNCS 193, 106–117.

    Google Scholar 

  7. Goerdt, A. Characterizing complexity classes by general recursive definitions in higher types, in: E. Börger and H. Kleine-Büning, CSL '88, Proceedings, LNCS 385 (1988).

    Google Scholar 

  8. Harel, D. and Peleg, D. On static logics, dynamic logics, and complexity classes, Inf. and Contr. 60 (1984) 86–102.

    Article  Google Scholar 

  9. Hartmanis, J., Immerman, N. and Mahany, S. One-way log-tape reductions, 19th FoCS (1978) 65–72.

    Google Scholar 

  10. Immerman, N. Languages which capture complexity classes, 15th SToC (1983) 347–354.

    Google Scholar 

  11. Jones, N. D. and Muchnik, S. S. Even simple programs are hard to analyze, JACM 24 (1977) 338–350.

    Google Scholar 

  12. Jones, N. D. and Muchnik, S. S. The complexity of finite memory programs with recursion, JACM 25 (1978) 312–321.

    Google Scholar 

  13. Juszczyk, M. On equivalence between language L4 and recursive definitions of higher types, not published (submitted for MFCS'89) Warsaw (1989).

    Google Scholar 

  14. Kfoury, A. J., Tiuryn, J. and Urzyczyn, P. The hierarchy of finitely typed functions, 2nd LiCS (1987) 225–235.

    Google Scholar 

  15. Kfoury, A. J. and Urzyczyn, P. Finitely typed functional programs. Part II: Comparisons to imperative languages, Res. Rep. Boston Univ. (1988).

    Google Scholar 

  16. Langmaack, H. On correct procedure parameter transmission in higher programming languages, Acta Inf. 2 (1973) 110–142.

    Google Scholar 

  17. Olderog, E.-R. charakterisierung Hoarescher Systeme für ALGOL-ähnliche Programmiersprachen, Dissertation, Univ. Kiel (1981).

    Google Scholar 

  18. Olderog, E.-R. A characterization of Hoare's logic for programs with PASCAL-like procedures, 15th SToC (1983) 320–329.

    Google Scholar 

  19. Tiuryn, J. and Urzyczyn, P. Some relationships between logics of programs and complexity theory, TCS 60 (1988) 83–108. (Earlier version: 24th FoCS (1983) 180–184)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Albert R. Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hungar, H. (1991). Complexity of proving program correctness. In: Ito, T., Meyer, A.R. (eds) Theoretical Aspects of Computer Software. TACS 1991. Lecture Notes in Computer Science, vol 526. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54415-1_59

Download citation

  • DOI: https://doi.org/10.1007/3-540-54415-1_59

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54415-9

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics