Skip to main content

A Semantic Analysis of Logics That Cope with Partial Terms

  • Conference paper
Abstract State Machines, Alloy, B, VDM, and Z (ABZ 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7316))

Abstract

Specifications of programs frequently involve operators and functions that are not defined over all of their (syntactic) domains. Proofs about specifications –and those to discharge proof obligations that arise in justifying steps of design– must be based on formal rules. Since classical logic deals only with defined values, some extra thought is required. There are several ways of handling terms that can fail to denote a value — this paper provides a semantically based comparison of three of the best known approaches. In addition, some pointers are given to further alternatives.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. McCarthy, J.: A basis for a mathematical theory for computation. In: Braffort, P., Hirschberg, D. (eds.) Computer Programming and Formal Systems, pp. 33–70. North-Holland Publishing Company (1967)

    Google Scholar 

  2. Owe, O.: An approach to program reasoning based on a first order logic for partial functions. Technical Report 89, Institute of Informatics, University of Oslo (February 1985)

    Google Scholar 

  3. Owe, O.: Partial logics reconsidered: A conservative approach. Formal Aspects of Computing 5, 208–223 (1993)

    Article  MATH  Google Scholar 

  4. Cheng, J.H.: A Logic for Partial Functions. PhD thesis, University of Manchester (1986)

    Google Scholar 

  5. Tennent, R.: A note on undefined expression values in programming logic. Information Processing Letters 24(5) (March 1987)

    Google Scholar 

  6. Blikle, A.: Three-valued Predicates for Software Specification and Validation. In: Bloomfield, R., Marshall, L., Jones, R. (eds.) VDM 1988. LNCS, vol. 328, pp. 243–266. Springer, Heidelberg (1988)

    Chapter  Google Scholar 

  7. Konikowska, B., Tarlecki, A., Blikle, A.: A Three-valued Logic for Software Specification and Validation. In: Bloomfield, R., Marshall, L., Jones, R. (eds.) VDM 1988. LNCS, vol. 328, pp. 218–242. Springer, Heidelberg (1988)

    Chapter  Google Scholar 

  8. Jervis, C.: A Theory of Program Correctness with Three Valued Logic. PhD thesis, Leeds University (1988)

    Google Scholar 

  9. Spivey, J.: Understanding Z—A Specification Language and its Formal Semantics. Cambridge Tracts in Computer Science, vol. 3. Cambridge University Press (1988)

    Google Scholar 

  10. Schieder, B., Broy, M.: Adapting calculational logic to the undefined. The Computer Journal 42 (1999)

    Google Scholar 

  11. Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice Hall International (1990)

    Google Scholar 

  12. Cheng, J.H., Jones, C.B.: On the usability of logics which handle partial functions. In: Morgan, C., Woodcock, J.C.P. (eds.) 3rd Refinement Workshop, pp. 51–69. Springer (1991)

    Google Scholar 

  13. Müller, O., Slind, K.: Treating partiality in a logic of total functions. The Computer Journal 40(10), 640–652 (1997)

    Article  Google Scholar 

  14. Gries, D., Schneider, F.B.: Avoiding the Undefined by Underspecification. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 366–373. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  15. Jones, C.B.: Reasoning about partial functions in the formal development of programs. In: Proceedings of AVoCS 2005. Electronic Notes in Theoretical Computer Science, vol. 145, pp. 3–25. Elsevier (2006)

    Google Scholar 

  16. Fitzgerald, J.S.: The Typed Logic of Partial Functions and the Vienna Development Method. In: Bjørner, D., Henson, M.C. (eds.) Logics of Specification Languages. EATCS Texts in Theoretical Computer Science, pp. 427–461. Springer (2007)

    Google Scholar 

  17. Darvas, Á., Mehta, F., Rudich, A.: Efficient Well-Definedness Checking. In: Armando, A., Baumgartner, P., Dowek, G. (eds.) IJCAR 2008. LNCS (LNAI), vol. 5195, pp. 100–115. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  18. Woodcock, J., Freitas, L.: Linking VDM and Z. In: 13th IEEE International Conference on Engineering of Complex Computer Systems, pp. 143–152 (April 2008)

    Google Scholar 

  19. Schmalz, M.: Term Rewriting in Logics of Partial Functions. In: Qin, S., Qiu, Z. (eds.) ICFEM 2011. LNCS, vol. 6991, pp. 633–650. Springer, Heidelberg (2011), doi:10.1007/978-3-642-24559-6-42

    Chapter  Google Scholar 

  20. Łukasiewicz, J.: O logice trójwartościowej. Ruch Filozoficzny, 169–171 (1920) Translated as (On three-valued logic) McCall, S. (ed.) in Polish Logic, Oxford U.P, 1920–1939 (1967)

    Google Scholar 

  21. Wang, H.: The calculus of partial predicates and its extension to set theory. Math. Logic 7, 283–288 (1961)

    Article  MATH  Google Scholar 

  22. van Fraasen, B.: Singular terms, truth-value gaps and free logic. J. Philosophy 63, 481–495 (1966)

    Article  Google Scholar 

  23. Koletsos, G.: Sequent calculus and partial logic. Master’s thesis, Manchester University (1976)

    Google Scholar 

  24. Hoogewijs, A.: Partial-predicate logic in computer science. Acta Informatica 24, 381–393 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  25. Avron, A.: Foundations and proof theory of 3-valued logics. Technical Report ECS-LFCS-88-48, LFCS, Department of Computer Science, University of Edinburgh (April 1988)

    Google Scholar 

  26. Farmer, W.M.: A partial functions version of Church’s simple theory of types. Journal of Symbolic Logic 55(3), 1269–1291 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  27. MacColl, H.: A report on MacColl’s three-valued logic. In: Lovett, E. (ed.) Mathematics at the Intern. Congress of Philosophy, vol. 7, pp. 157–183. Bulletin of the American Mathematical Society (1901)

    Google Scholar 

  28. Barringer, H., Cheng, J., Jones, C.B.: A logic covering undefinedness in program proofs. Acta Informatica 21, 251–269 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  29. Bicarregui, J., Fitzgerald, J., Lindsay, P., Moore, R., Ritchie, B.: Proof in VDM: A Practitioner’s Guide. In: FACIT, Springer (1994) ISBN 3-540-19813-X

    Google Scholar 

  30. Jones, C.B., Middelburg, C.: A typed logic of partial functions reconstructed classically. Acta Informatica 31(5), 399–430 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  31. Jones, C.B., Lovert, M.J.: Semantic models for a logic of partial functions. IJSI 5, 55–76 (2011)

    Google Scholar 

  32. Jones, C.B., Lovert, M.J., Steggles, L.J.: Towards a mechanisation of a logic that copes with partial terms. Technical Report CS-TR-1314, Newcastle University (February 2012)

    Google Scholar 

  33. Blamey, S.R.: Partial Valued Logic. PhD thesis, Oxford University (1980)

    Google Scholar 

  34. Blamey, S.: Partial logic. In: Gabbay, D., Guenthuer, F. (eds.) Handbook of Philosophical Logic, vol. III. Reidel (1986)

    Google Scholar 

  35. Lovert, M.J.: A semantic model for a logic of partial functions. In: Pierce, K., Plat, N., Wolff, S., eds.: Proceedings of the 8th Overture Workshop. Number CS-TR-1224 in School of Computing Science Technical Report, Newcastle University, 33–45 (2010)

    Google Scholar 

  36. Kleene, S.C.: Introduction to Metamathematics. Van Nostrad (1952)

    Google Scholar 

  37. Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press (1977)

    Google Scholar 

  38. Jones, C.: Partial functions and logics: A warning. Information Processing Letters 54(2), 65–67 (1995)

    Article  MATH  Google Scholar 

  39. Fitzgerald, J.S., Jones, C.B.: The connection between two ways of reasoning about partial functions. IPL 107(3-4), 128–132 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  40. Group, T.R.L.: The RAISE Specification Language. BCS Practitioner Series. Prentice Hall (1992) ISBN 0-13-752833-7

    Google Scholar 

  41. Group, T.R.M.: The RAISE Development Method. BCS Practitioner Series. Prentice Hall (1995) ISBN 0-13-752700-4

    Google Scholar 

  42. Walk, K., et al.: Abstract syntax and interpretation of PL/I. Technical Report TR25.098, IBM Laboratory Vienna (1969)

    Google Scholar 

  43. Jones, C.B.: Formal development of correct algorithms: an example based on Earley’s recogniser. SIGPLAN Notices 7(1), 150–169 (1972)

    Article  Google Scholar 

  44. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

  45. Gries, D., Schneider, F.B.: A Logical Approach to Discrete Math., 2nd edn. Springer (1996)

    Google Scholar 

  46. Mehta, F.D.: Proofs for the Working Engineer. PhD thesis, ETH Zuerich (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jones, C.B., Lovert, M.J., Steggles, L.J. (2012). A Semantic Analysis of Logics That Cope with Partial Terms. In: Derrick, J., et al. Abstract State Machines, Alloy, B, VDM, and Z. ABZ 2012. Lecture Notes in Computer Science, vol 7316. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30885-7_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-30885-7_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-30884-0

  • Online ISBN: 978-3-642-30885-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics