In mathematics, the codomain, or target, of a function : → is the set . Unlike the range, which is a consequence of the definition of a function, the codomain is part of the definition of a function. The range is a subset of the codomain and depends upon (i.e. is a consequence of) the definition of the domain, codomain, and map of a function.
The domain of is the set .
As an example, let the function be a function on the real numbers:
The codomain of is , but clearly f does not map to any negative number. Thus the range of f is the set ,i.e., the interval [0,∞) where:
We can define an alternative function thus:
While and map a given x to the same number, they are not, in the modern view, the same function because they have different codomains. To see why, suppose that we define a third function h:
We must define the domain of h to be :
Now let's define the compositions
As it turns out, doesn't make sense. Suppose (as we must, unless we explicitly state otherwise) that we do not know what the range of is; we only know that it can be . But then we are in trouble because the square root is not defined for negative numbers. Now we have a possible contradiction because function h, when composed on function f, might receive an argument which it "can't handle."
This unclarity should be avoided in formal work. Function composition therefore requires by definition that the codomain of the function on the right side of a composition (not its range, which is a consequence of the function and is said to be indeterminate at the level of the composition) must be the same as the domain of the function on the left side.
A second example of the difference between codomain and range can be seen by considering the matrix of a linear transformation. By convention, the domain of a linear transformation associated with a matrix is Rn and its codomain is Rm, where the matrix is (has rows and columns). But the range (the set of numbers obtained when the matrix is right-multiplied by every column vector of length ) could be much smaller. For example, if the matrix contains only s, then no matter how large it is, the range is just the vector 0. But the dimension of the resulting vector is . This is important, because it is enough to change just one number in the matrix to make its range non-zero.