Skip to main content
Log in

Unification: A case-study in data refinement

  • Published:
Formal Aspects of Computing

Abstract

In this paper, the Z notation is used to develop a small theory of terms and substitutions within which a simple unification algorithm can be specified and proved correct. Particular emphasis is placed on the use of Z's mathematical data types to simplify the development and structure of this theory. The correctness of an abstract version of the algorithm is proved first; this version operates on substitutions by composition. Then data refinement is used to show that the substitutions can be represented by ‘binding functions’ that make composition a particularly efficient operation. The approach taken in this paper is compared with the approaches of three previous papers based on VDM.

The contribution of this paper is to show how data refinement can be used to explain the design decisions behind a non-trivial program, and to provide a point of comparison between Z and VDM approaches to the same problem.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Clement, T.: Combining transformation and posit- and-prove in a VDM development, in S. Prehn and W. J. Toetenel (eds),VDM '91: formal software development methods, pp. 63–80, 1991.

  2. Fitzgerald, J. S.: Unification: specification and development, Chapter 5 of [JoS90].

  3. Gries, D.:The science of programming, Springer-Verlag, 1981.

  4. Huet, G., and Oppen, D.: Equations and rewrite rules: a survey, in R. V. Book (ed),Formal language theory: perspectives and open problems, Academic Press, pp. 349–405, 1980.

  5. Jones, C. B.:Systematic software development using VDM, Prentice-Hall International, 1986.

  6. Jones, C. B. and Shaw, R. C. (eds):Case studies in systematic software development, Prentice-Hall International, 1990.

  7. Manna, Z. and Waldinger, R.: Deductive synthesis of the unification algorithm,Science of Computer Programming, 1, 5–48 (1981).

    Article  MATH  MathSciNet  Google Scholar 

  8. Paulson, L. C.: Verifying the unification algorithm in LCF,Science of Computer Programming, 5, 143–169 (1985).

    Article  MATH  MathSciNet  Google Scholar 

  9. Robinson, J. A.: A machine-oriented logic based on the resolution principle,J. ACM, 12, 23–41 (1965).

    Article  MATH  Google Scholar 

  10. Spivey, J. M.:The Z notation: a reference manual, Prentice-Hall International, Second edition, 1992.

  11. Vadera, S.: Building a theory of unification, Chapter 6 of [JoS90].

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Spivey, J.M. Unification: A case-study in data refinement. Formal Aspects of Computing 7, 150–168 (1995). https://doi.org/10.1007/BF01211603

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01211603

Keywords

Navigation