[FOM] 618: Adventures in Formalization 4
Larry Paulson
lp15 at cam.ac.uk
Fri Sep 18 11:56:01 EDT 2015
> A term being defined is not a syntactic matter. However, we will want
> to have facilities for dealing with compound terms being obviously
> defined, just as mathematicians do. E.g., in an environment with the
> field operations, we have undefined terms. However, we know that if we
> avoid division, the terms are always defined. We need a way of dealing
> with this formally. I haven't quite decided how I want to deal with
> this.
This topic has been endlessly rehearsed by researchers into interactive theorem
proving. 20 years ago, John Harrison wrote a note on this topic which has even
been cited by others, but the original link no longer works. As a contribution
to the discussion, I shall post John's note subsequently. Another highly
relevant paper includes the following:
http://link.springer.com/chapter/10.1007%2FBFb0061839
Dana Scott. Identity and existence in intuitionistic logic.
In: Fourman et al., Applications of Sheaves.
Springer LNM Volume 753 (1977), 660-696.
William Farmer has written extensively on this topic, and his publications can be found here:
http://imps.mcmaster.ca/wmfarmer/publications.html
Somebody's attitude to the idea of partial functions can be judged by their
answers to the following questions:
Is 1/0 a ZF set?
Is 1/0 = 1/0 true?
Is the formula 1/x > 0 well defined, if we only know that x is a real number?
Is the formula x > 0 ==> 1/x > 0 well defined and true for all real x, including x=0?
And also the formula 1/x > 0 | x <= 0 ?
Solutions include logics where you can write statements like Defined(1/x) | x=0.
Three-valued logics have also been proposed; in my opinion that approach is
complicated and unnecessary. And then we have the type theories, where partial
functions take an additional argument a proof p stating that the function is
being applied within its domain; a complication here is the question of whether
the result can depend upon p. But this approach is hugely popular anyway.
In simply-typed systems such as Isabelle/HOL and HOL Light, every term must
denote some value (of the expected type). And therefore 1/0 - 1/0 definitely
equals zero. Whether we choose to extend the domain of a partial function
explicitly depends on the circumstances. As a college student, I remember being
shocked at Donald Knuth's willingness to extend the domains of many operations
on the grounds that they made manipulations easier.
I wish I could claim the credit for being the first to postulate x/0 = 0, but I
have no proof of precedence. Certainly it is widely adopted now. The point is
that it makes many obvious manipulations, such as x(y/z) = (xy)/z,
unconditional.
Larry Paulson
More information about the FOM
mailing list