I am wondering if anyone knows any more on the history of the term 'co-domain' as it relates to functions.

Two sources I found:

Russell and Whitehead, Principia Mathematica, 1915, page 34 :

the class of all terms to which something or other has the relation $R$ is called the converse domain of $R$; it is the same as the domain of the converse of $R$.

Cassius Keyser, Mathematical Philosophy, 1922, page 168:

A relation $R$ has what is called a domain, - the class of all the terms such that each of them has the relation to something or other, - and also a codomain - the class of all the terms such that, given any one of them, something has the relation to it.

It seems to me that when Keyser talks about a 'codomain', he is talking about the same thing as Russell and Whitehead's 'converse domain'. So, it looks like we went from 'converse domain' to 'codomain' .... to 'co-domain'? That would seem to make sense.

Also, both texts talk about relations, not functions. But, a function is of course a special kind of relation. So ... it still makes sense.

However! (and this is really why I am asking this question): the way these two texts talk about the 'converse domain' and 'codomain' is (when applied to functions) what we nowadays call the 'range' or 'image' of the function, and not what we nowadays call its 'co-domain'.

Concrete example:

Take a function $f$ whose domain is defined as $\mathbb{R} - \{ 0 \}$, whose co-domain is defined as $\mathbb{R}$, and whose mapping is defined as $f(x) =1/x$.

For this function, the range or image is $\mathbb{R} - \{ 0 \}$, and that is what (again, if we see this function as a relation) Russell & Whitehead would consider its 'converse domain' what Keyser would call its 'codomain'.

But the 'co-domain' of this function was defined as $\mathbb{R} - \{ 0 \}$

So I think there has been a shift in the use of the term ... That is, it seems like we got:

'converse domain' -> 'codomain' -> 'range'

... while 'co-domain' is something different!

This is weird! What happened? Does anyone have some insight into any of this?

  • 1
    $\begingroup$ The domain and codomain are both part of what it means to define a function: using domain $\mathbf R-\{0\}$, the codomain could be $\mathbf R - \{0\}$ or $\mathbf R$ or $\mathbf C$ or ... With codomain $\mathbf R - \{0\}$ the function is invertible, but not in the other two cases. Therefore I disagree that in modern times we always would say the domain is $\mathbf R$. It depends on what you are doing. $\endgroup$
    – KCd
    Aug 17, 2020 at 20:20
  • 1
    $\begingroup$ You can certainly take the domain of $1/x$ to be $\mathbf R - \{0\}$ and the co-domain to be $\mathbf R$, just as you can take the domain of $1/x$ to be $(0,1)$ and the co-domain to be $(0,5)$. There is nothing weird about this. It all depends on what it is you want to do with the functions. For example, it's natural to consider all rational functions with real coefficients to be "real-valued functions defined where they maximally make sense", so $1/(x^2-x)$ has domain $\mathbf R - \{0,1\}$ and co-domain $\mathbf R$. It is not every function's aspiration in life to be invertible. $\endgroup$
    – KCd
    Aug 18, 2020 at 3:08
  • 1
    $\begingroup$ (Modern) codomain is an unnatural notion for relations in set theory, only image is intrinsically definable. But it changes in category theory, where the target object of a morphism is not its image unless it is an epimorphism. It is interesting that Eilenberg-MacLane's seminal paper (1945) uses "range" for modern codomain, while MacLane's 1971 book already calls it "codomain". The ambiguous use of "range" continues to this day. $\endgroup$
    – Conifold
    Aug 19, 2020 at 5:22
  • 1
    $\begingroup$ Lawvere's Elementary Theory of the Category of Sets (1964) also uses "codomain" in the modern sense. $\endgroup$
    – Conifold
    Aug 19, 2020 at 5:33
  • 1
    $\begingroup$ My guess is that when category theory people started transferring terminology they took the closest term to the target object, which was "codomain" or "range" at the time, and used it. Since the target does not always match the range from set theory pedantic authors started distinguishing codomain and range, but not everybody followed. $\endgroup$
    – Conifold
    Aug 20, 2020 at 9:31

1 Answer 1


It's an early recognition of duality in set theory. Domain vs Codomain suggests a relationship that is missing from domain and range.

This is hidden in set theory as functions are biased in that they are not symmetrically defined. Nor is it easy to conceptualise one to many functions naturally, and dually to many to one functions, which they do naturally.

This is fixed in category theory where duality is made explicit, rather than in the secret, furtive way it's done in set theory. Moreover, category theory is the correct conceptualisation of covariance as in the notion of general covariance that Einstein used heuristically in his investigations into the general character of physical law.

Interestingly, one of the major discoveries of string theory is the role that dualities play in physics. (In ordinary physics, we see duality manifest itself in the duality between the electric and magnetic fields). It wouldn't surprise me if at bottom this had the same root as dualities in category theory.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.