The expressive theory of stacks

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

[1]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[2]  Richard J. Lipton,et al.  A necessary and sufficient condition for the existence of hoare logics , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[3]  Greg Nelson,et al.  Verifying reachability invariants of linked structures , 1983, POPL '83.

[4]  Michael D. Rychener Control requirements for the design of production system architectures , 1977 .

[5]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[6]  Samuel N. Kamin A FASE Specification of FP , 1985, Logic of Programs.

[7]  Joseph Y. Halpern,et al.  Effective Axiomatizations of Hoare Logics , 1983, JACM.

[8]  Samuel N. Kamin Final data type specifications: a new data type specification method , 1980, POPL '80.

[9]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[10]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[11]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[12]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[13]  Edmund M. Clarke The characterization problem for Hoare logics , 1984 .

[14]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[15]  J. D. Monk,et al.  Mathematical Logic , 1976 .