A Practical Approach to Partiality – A Proof Based Approach
Partial functions are frequently used when specifying and reasoning about computer programs. Using partial functions entails reasoning about potentially ill-defined expressions. In this paper we show how to formally reason about partial functions without abandoning the well understood domain of classical two-valued predicate calculus. In order to achieve this, we extend standard predicate calculus with the notion of well-definedness which is currently used to filter out potentially ill-defined statements from proofs. The main contribution of this paper is to show how the standard predicate calculus can be extended with a new set of derived proof rules that can be used to preserve well-definedness in order to make proofs involving partial functions less tedious to perform.
KeywordsLogical Operator Function Symbol Partial Function Predicate Calculus Proof Obligation
Unable to display preview. Download preview PDF.
- 1.Rigorous Open Development Environment for Complex Systems (RODIN) official website, http://www.event-b.org/
- 2.Abrial, J.-R.: The B-Book: Assigning programs to meanings. Cambridge (1996)Google Scholar
- 3.Abrial, J.-R.: Modeling in Event B: System and Softtware Design. Cambridge (to appear, 2007)Google Scholar
- 5.Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: An overview. In: Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, pp. 49–69 (2005)Google Scholar
- 8.Berezin, S., Barrett, C., Shikanian, I., Chechik, M., Gurfinkel, A., Dill, D.L.: A practical approach to partial functions in CVC LiteGoogle Scholar
- 9.Chalin, P.: Logical foundations of program assertions: What do practitioners want? In: SEFM, pp. 383–393 (2005)Google Scholar
- 10.Darvas, Á., Mehta, F., Rudich, A.: Efficient well-definedness checking. In: International Joint Conference on Automated Reasoning (IJCAR). LNCS. Springer, Heidelberg (to appear, 2008)Google Scholar
- 11.Fitzgerald, J.S., Jones, C.B.: The connection between two ways of reasoning about partial functions. Technical Report CS-TR-1044, School of Computing Science. Newcastle University (August 2007)Google Scholar
- 17.Mehta, F.D.: Proofs for the Working Engineer. PhD thesis, ETH Zurich (2008)Google Scholar
- 19.Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system, January 15 (2001)Google Scholar
- 20.Owre, S., Shankar, N.: The formal semantics of PVS (March 1999), http://www.csl.sri.com/papers/csl-97-2/
- 21.Rudich, A., Darvas, Á., Müller, P.: Checking well-formedness of pure-method specifications. In: Formal Methods (FM). LNCS. Springer, Heidelberg (2008)Google Scholar