Summary
The usual theory of stacks is not expressive in the sense of Cook; that is, loop invariants needed to prove programs that use stacks cannot be stated in the logic. We first prove this assertion, then suggest ways of augmenting theories with new operators so as to achieve expressiveness. The main technique is to regard data types as function spaces. The technique is applied to stacks as well as to other data types.
Similar content being viewed by others
References
Clarke, E.M.: Programming language constructs for which it is impossible to obtain good Hoare axiom systems. J. ACM 26, 129–147
Clarke, E.M.: The characterization problem for Hoare logics. In: Mathematical Logic and Programming Languages (C.A.R. Hoare, J.C. Shepherdson, eds.), pp. 89–106. Englewood Cliffs, N.J.: Prentice-Hall 1985
Clarke, E.M., German, S., Halpern, J.: Effective Axiomatizations of Hoare Logics. J. ACM 30, 612–636 (1983)
Cook, S.A.: Soundness and completeness of an axiom system for program verification. SIAM J. Comput. 7, 70–90 (1978)
Guttag, J., Horowitz, E., Musser, D.: Abstract Data Types and Software Validation. Commun. ACM 21, 1048–1064 (1978)
Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Commun. ACM 12, 576–581, 583 (1969)
Hoare, C.A.R.: Proof of Correctness of Data Representations. Acta Inf. 1, 271–281 (1972)
Kamin, S.: Final Data Type Specifications. Proc. Seventh Annual Conf. on Principles of Programming Languages, pp. 131–138. Las Vegas, 1980
Kamin, S.: Final Data Types and their Specification. ACM Trans. Prog. Lang. Syst. 5, 97–123 (1983)
Kamin, S., Jefferson, S., Archer, M.: The Role of Executable Specifications: The FASE System, Proc. IEEE Symp. on Application and Assessment of Automated Tools for Software Development, San Francisco, November 1983
Kamin, S.: A FASE Specification of FP, Logics of Programs '85. LNCS 193. Berlin, Heidelberg, New York: Springer 1985
Lipton, R.J.: A Necessary and Sufficient Condition for the Existence of Hoare Logics. Proc. Eighteenth Symp. on Found. Comp. Sci., pp. 1–6, October 1977
Majster, M.: Limits of the Algebraic Specification of Data Types. SIGPLAN Notices 12, 37–42 (1977)
Monk, J.D.: Mathematical Logic. Berlin, Heidelberg, New York: Springer 1976
Nelson, G.: Verifying Reachability Invariants of Linked Structures. Proc. Tenth Annual Conf. on Principles of Programming Languages, pp. 38–47, January 1983
Wulf, W., London, R., Shaw, M.: An Introduction to the Construction and Verification of ALPHARD Programs. IEEE Trans. Software Eng. 2, 253–265 (1976)
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Kamin, S. The expressive theory of stacks. Acta Informatica 24, 695–709 (1987). https://doi.org/10.1007/BF00282622
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00282622