Skip to main content

A three-valued logic for refinement

  • Conference paper
  • First Online:
Formal Methods in Programming and Their Applications

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 735))

  • 146 Accesses

Abstract

Predicates are a popular tool for specification. Unfortunately, they are less well suited to defining the semantics of programming languages. As as result, program refinement techniques are usually based on predicate transformers. This paper proposes a three-valued logic with a richer kind of predicate that is suitable for both specification and defining programming language semantics.

The other contribution of this work is a method of refining specifications into recursive programs. It has been suggested that it is more difficult to develop recursive programs than iterative ones. We sidestep the difficulties by using an approximation to the meaning of recursive specifications. We prove that once the refinement process is complete, our approximation is refined by the true meaning.

The author is supported by DSTO Australia.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barringer, H., et al.: A logic covering undefinedness in program proofs. Acta Inf. 21 (1984) 251–269

    Google Scholar 

  2. Bekič, H.: Definable operations in general algebras, and the theory of automata and flowcharts. In Jones, C. (ed.), Programming Languages and Their Definition, volume 177 of Lecture Notes in Computer Science. Springer-Verlag, Berlin, Germany (1984) 30–55

    Google Scholar 

  3. Bočvar, D.: Ob odnom trexznačnom isčislenii i ego primenenii k analizu paradoksov klassičeskogo rasširennogo funkcional'nogo isčislenija [on a three-valued calculus and its application to the analysis of contraditions of expanded functional calculus]. Mathematičeskij sbornik 4 (1938) 287–308

    Google Scholar 

  4. Dijkstra, E.: A Discipline of Programming. Prentice Hall Series in Automatic Computation. Prentice Hall, Englewood Cliffs, United States (1976)

    Google Scholar 

  5. Grundy, J.: A window inference tool for refinement. In Jones, C., et al. (eds), Proceedings of the 5th Refinement Workshop, Workshops in Computer Science, Lloyd's Register, London, England (1992). BCS-FACS, Springer-Verlag, London, England 230–254

    Google Scholar 

  6. Grundy, J.: Predicative programming — a survey. In Sabelfeld, V. (ed.), Proceedings of the International Conference on Formal Methods in Programming and Their Applications, Lecture Notes in Computer Science, Novosibirsk, Russia (1993). Springer-Verlag, Berlin, Germany

    Google Scholar 

  7. Kleene, S.: On notation for ordinal numbers. J. Symbolic Logic 3 (1938) 150–155

    Google Scholar 

  8. Łukasiewicz, J.: On the notion of possibility. In McCall [10] 15–16

    Google Scholar 

  9. Łukasiewicz, J.: On three-valued logic. In McCall [10] 16–18

    Google Scholar 

  10. McCall, S. (ed.) Polish Logic 1920–1939. Oxford University at the Clarendon Press, Oxford, England (1967)

    Google Scholar 

  11. Nelson, G.: A generalization of Dijkstra's calculus. ACM Trans. Programming Languages & Syst. 11 (1989) 517–561

    Google Scholar 

  12. Scott, D., Strachey, C.: Towards a mathematical semantics for computer languages. In Fox, J. (ed.), Proceeding of the Symposium on Computers and Automata, volume 21 of Microwave Research Institute Symposia Series, Brooklyn, United States (1971). Polytechnic Institute of Brooklyn, Microwave Research Institute, Wiley-Interscience 19–46

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dines Bjørner Manfred Broy Igor V. Pottosin

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Grundy, J. (1993). A three-valued logic for refinement. In: Bjørner, D., Broy, M., Pottosin, I.V. (eds) Formal Methods in Programming and Their Applications. Lecture Notes in Computer Science, vol 735. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0039698

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57316-6

  • Online ISBN: 978-3-540-48056-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics