Abstract Implementations and Their Correctness Proofs
- 1 April 1983
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 30 (2) , 343-359
- https://doi.org/10.1145/322374.322381
Abstract
Formal Implementations and their correctness proofs are stud~ed. Properties of initial algebras are used to structure proofs of correctness of implementations A new formulation of implementation is given incorporating parameter types Canonical term algebras are argued to be the natural choice of representation for both the abstract and the more concrete specifications as far as correctness proofs are concerned The "fine structure" of lmtlal algebras ts captured by the notion of signature of constructors This notion leads to simple sufficient conditions for obtaining mjective homomorphisms of algebras, a necessary step in algebraic correctness proofs Signature of constructors is also used in connection with the deductive properties of the equational theory of the specification to arrive at sufficient conditions for mject~wty of homomorphtsms of algebras modeling parametenzed specifications. A proof methodology is prescribed which is based on the general constructions of the paper and is demonstrated by a nontnvial example Categories and Subject Descriptors D I. 1 (Programming Techniques(. Applicative Programming; D 2 2 (Software Engineering( Tools and Techniques--structured programming; top-down programming, D 3.1 (Programming Languages) Formal Defimtlons and Theory--semantics; D.3.3 (Programming Lan- guages) Language Constructs--abstract data types, data types and structures; F.3.1 (Logics and Meanings of Programs) Specifying and Verifying and Reasoning about Programs--logics of programs; specificat:on techmques, F 3 2 )Logics and Meanings of Programs) Semantics of Programming Languages--algebraic approaches :o semanticsKeywords
This publication has 12 references indexed in Scilit:
- Complexity of algebraic implementations for abstract data typesJournal of Computer and System Sciences, 1981
- A case study of abstract implementations and their correctnessPublished by Springer Nature ,1980
- A model-theoretic approach to specification, extension, and implementationPublished by Springer Nature ,1980
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978
- Proving programs correct through refinementActa Informatica, 1978
- Initial Algebra Semantics and Continuous AlgebrasJournal of the ACM, 1977
- The fine structure of the constructible hierarchyAnnals of Mathematical Logic, 1972
- Proof of correctness of data representationsActa Informatica, 1972
- An improved equivalence algorithmCommunications of the ACM, 1964
- Recursive functions of symbolic expressions and their computation by machine, Part ICommunications of the ACM, 1960