Abstract
The set of finite interpretations in which a formula is valid is called the spectrum of the formula. For some program logics, the classes of spectra form complete subclasses of well known complexity classes. For various imperative and functional programming languages we know the complexity classes corresponding to the classes of spectra of partial correctness formulae. This means that for those formulae we know how hard it is to decide the sets of finite models.
For some imperative languages it has already been shown that constructing formal proofs for valid formulae is of the same order of complexity. In this paper we prove the same result, i.e. that proofs can be constructed efficiently, for functional languages where recursive functions of arbitrary finite type are allowed.
Since denotational semantics translates imperative programs into functional terms, the proof system for functional programs gives one for imperative programs as well. Choosing the right denotational semantics, we can show the effiency of the resulting verification method for Clarke's language L4.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Clarke, E. M., Programming languages for which it is impossible to obtain good Hoare axiom systems, JACM 26 (1979) 129–147.
Cook, S. A., Soundness and completeness of an axiom system for program verification, SIAM J. Comp. 7 (1978) 70–90.
Clarke, E. M., German, S. M. and Halpern, J. Y., Effective axiomatizations of Hoare logics, JACM 30 (1983) 612–636.
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)
Goerdt, A., A Hoare calculus for functions defined by recursion on higher types, In: Proc. Logics of Programs 1985, LNCS 193, 106–117.
Goerdt, A., Hoare calculi for higher type control structures and their completeness in the sense of Cook, MFCS 88, LNCS 324 (1988) 329–338.
Goerdt, A. Hoare logic for lambda-terms as basis of Hoare logic for imperative languages, Proc. 2nd LiCS (1987) 293–299.
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).
Grabowski, M. und Hungar, H. On the existence of effective Hoare logics, Proc. 3rd LiCS (1988) 428–435.
Harel, D. and Peleg, D., On static logics, dynamic logics, and complexity classes, Inf. and Contr. 60 (1984) 86–102.
Hungar, H., Complexity of proving program correctness, Proc. Theoretical Aspects of Computer Software 1991, LNCS 526, 459–474.
Jones, N. D. and Muchnik, S. S., Even simple programs are hard to analyze, JACM 24 (1977) 338–350.
Jones, N. D. and Muchnik, S. S., The complexity of finite memory programs with recursion, JACM 25 (1978) 312–321.
Kfoury, A. J., Tiuryn, J. and Urzyczyn, P. The hierarchie of finitely typed functions, 2nd LiCS (1987) 225–235.
Langmaack, H., On correct procedure parameter transmission in higher programming languages, Acta Inf. 2 (1973) 110–142.
Olderog, E.-R. A characterization of Hoare's logic for programs with PASCAL-like procedures, 15th SToC (1983) 320–329.
Plotkin, G. D., LCF considered as a programming language, TCS 5 (1977) 223–255.
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hungar, H. (1993). The complexity of verifying functional programs. In: Enjalbert, P., Finkel, A., Wagner, K.W. (eds) STACS 93. STACS 1993. Lecture Notes in Computer Science, vol 665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56503-5_43
Download citation
DOI: https://doi.org/10.1007/3-540-56503-5_43
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56503-1
Online ISBN: 978-3-540-47574-3
eBook Packages: Springer Book Archive