In logic, extensionality, or extensional equality refers to principles that judge objects to be equal if they have the same external properties. It stands in contrast to the concept of intensionality, which is concerned with whether the internal definitions of objects are the same.
Consider the two functions f and g mapping from and to natural numbers, defined as follows:
- To find f(n), first add 5 to n, then multiply by 2.
- To find g(n), first multiply n by 2, then add 10.
These functions are extensionally equal; given the same input, both functions always produce the same value. But the definitions of the functions are not equal, and in that intensional sense the functions are not the same.
Similarly, in natural language there are many predicates (relations) that are intensionally different but are extensionally identical. For example, suppose that a town has one person named Joe, who is also the oldest person in the town. Then, the two argument predicates "has one person named", "is the oldest person in" are intensionally distinct, but extensionally equal for "Joe" in that "town" now.
The extensional definition of function equality, discussed above, is commonly used in mathematics. Sometimes additional information is attached to a function, such as an explicit codomain, in which case two functions must not only agree on all values, but must also have the same codomain, in order to be equal.
A similar extensional definition is usually employed for relations: two relations are said to be equal if they have the same extensions.
In set theory, the axiom of extensionality states that two sets are equal if and only if they contain the same elements. In mathematics formalized in set theory, it is common to identify relations—and, most importantly, functions—with their extension as stated above, so that it is impossible for two relations or functions with the same extension to be distinguished.
Other mathematical objects are also constructed in such a way that the intuitive notion of "equality" agrees with set-level extensional equality; thus, equal ordered pairs have equal elements, and elements of a set which are related by an equivalence relation belong to the same equivalence class.
Type-theoretical foundations of mathematics are generally not extensional in this sense, and setoids are commonly used to maintain a difference between intensional equality and a more general equivalence relation (which generally has poor constructibility or decidability properties).