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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
Owe, O.: Partial logics reconsidered: A conservative approach. Formal Aspects of Computing 5, 208–223 (1993)
Cheng, J.H.: A Logic for Partial Functions. PhD thesis, University of Manchester (1986)
Tennent, R.: A note on undefined expression values in programming logic. Information Processing Letters 24(5) (March 1987)
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)
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)
Jervis, C.: A Theory of Program Correctness with Three Valued Logic. PhD thesis, Leeds University (1988)
Spivey, J.: Understanding Z—A Specification Language and its Formal Semantics. Cambridge Tracts in Computer Science, vol. 3. Cambridge University Press (1988)
Schieder, B., Broy, M.: Adapting calculational logic to the undefined. The Computer Journal 42 (1999)
Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice Hall International (1990)
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)
Müller, O., Slind, K.: Treating partiality in a logic of total functions. The Computer Journal 40(10), 640–652 (1997)
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)
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)
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)
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)
Woodcock, J., Freitas, L.: Linking VDM and Z. In: 13th IEEE International Conference on Engineering of Complex Computer Systems, pp. 143–152 (April 2008)
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
Ł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)
Wang, H.: The calculus of partial predicates and its extension to set theory. Math. Logic 7, 283–288 (1961)
van Fraasen, B.: Singular terms, truth-value gaps and free logic. J. Philosophy 63, 481–495 (1966)
Koletsos, G.: Sequent calculus and partial logic. Master’s thesis, Manchester University (1976)
Hoogewijs, A.: Partial-predicate logic in computer science. Acta Informatica 24, 381–393 (1987)
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)
Farmer, W.M.: A partial functions version of Church’s simple theory of types. Journal of Symbolic Logic 55(3), 1269–1291 (1990)
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)
Barringer, H., Cheng, J., Jones, C.B.: A logic covering undefinedness in program proofs. Acta Informatica 21, 251–269 (1984)
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
Jones, C.B., Middelburg, C.: A typed logic of partial functions reconstructed classically. Acta Informatica 31(5), 399–430 (1994)
Jones, C.B., Lovert, M.J.: Semantic models for a logic of partial functions. IJSI 5, 55–76 (2011)
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)
Blamey, S.R.: Partial Valued Logic. PhD thesis, Oxford University (1980)
Blamey, S.: Partial logic. In: Gabbay, D., Guenthuer, F. (eds.) Handbook of Philosophical Logic, vol. III. Reidel (1986)
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)
Kleene, S.C.: Introduction to Metamathematics. Van Nostrad (1952)
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press (1977)
Jones, C.: Partial functions and logics: A warning. Information Processing Letters 54(2), 65–67 (1995)
Fitzgerald, J.S., Jones, C.B.: The connection between two ways of reasoning about partial functions. IPL 107(3-4), 128–132 (2008)
Group, T.R.L.: The RAISE Specification Language. BCS Practitioner Series. Prentice Hall (1992) ISBN 0-13-752833-7
Group, T.R.M.: The RAISE Development Method. BCS Practitioner Series. Prentice Hall (1995) ISBN 0-13-752700-4
Walk, K., et al.: Abstract syntax and interpretation of PL/I. Technical Report TR25.098, IBM Laboratory Vienna (1969)
Jones, C.B.: Formal development of correct algorithms: an example based on Earley’s recogniser. SIGPLAN Notices 7(1), 150–169 (1972)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)
Gries, D., Schneider, F.B.: A Logical Approach to Discrete Math., 2nd edn. Springer (1996)
Mehta, F.D.: Proofs for the Working Engineer. PhD thesis, ETH Zuerich (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)