# Codomain vs image

https://arbital.com/p/codomain_vs_image

by Nate Soares May 14 2016 updated Jun 10 2016

[summary:It is useful to distinguish codomain from image both (a) when the type of thing that the function produces is simple to describe, but the specific objects produced are complicated and hard to identify; and (b) when talking about (or making use of) a collection of functions from a set $X$ to a set $Y$, many of which have an image which is a subset of $Y$.]

A function $f : X \to Y$ with domain $X$ and codomain $Y$ cannot necessarily produce all values in $Y$. For example, consider the function that takes a real number and squares it. We could say that this function has codomain $\mathbb R$, because it produces a real number, even though its image is the set of non-negative real numbers.

If $f$ maps $X$ to a subset $I$ of $Y$, why not just say that its codomain is $I$ and do away with the distinction between codomain and image? There are at least two cases where the distinction is useful.

1. It is useful to distinguish codomain from image in cases where the type of thing that the function produces is easy to specify, but the specific values are hard to calculate. Consider, for instance, the Ackermann function. It definitely produces numbers (i.e. its codomain is $\mathbb N$), but it's not easy to figure out what numbers (exactly) it produces. When talking about what sort of outputs to expect from the Ackermann function, the natural answer is "a number," rather than "either 1 through 7, 9, 11, 13, 29, 61, 125, 65533, $2^{65536} − 3$, or some other ungodly large numbers that I lack the resources to calculate." For this purpose, the codomain can be thought of as a natural/simple boundary drawn around a complex image.

2. Cases where we're considering a set of all functions that map into a certain set. For example, if we're discussing all possible functions from the natural numbers to the set $\{0, 1\},$ we want to be able to talk about "functions with codomain $\{0, 1\}$" even if some of those functions are things like "always return 0" (which have an image smaller than $\{0, 1\}$). For this purpose, the codomain can be thought of as a context-dependent tool that's useful when considering (or making use of) a bunch of different functions that are all producing objects of the same type.

If $f$ maps $X$ to a subset $I$ of $Y$, why not just say that its domain is $I$ and do away with the distinction between domain and codomain? There are at least two cases where the distinction is useful\.