In
mathematics, extensionality usually refers to some form of the principle, going back to
Leibniz, that two mathematical objects are
equal if there is no test to distinguish them. For example, given two
mathematical functions f and g, we can say that they are equal if f(x) = g(x) for all x in the common
function domain X. This extensional equality is the usual definition if the
function range Y is also common to the two functions. If, on the other hand, we distinguish functions by the data attached to them in the
type theory sense, so that we could for example choose a larger set Z as range for one of them, that equality is not in the same sense extensional. That is one sense in which extensionality may fail. Another one is that consideration of the process by which a function is computed, if taken into account, will usually contradict extensionality.
See more at Wikipedia.org...