2

Sets and functions, for example, did not form a category under the set theorist's definition of a function. Most often the set theorist's definition requires a function to have a set as domain of definition but not a codomain in the sense of category theory. For the set theorist there is a well defined function whose domain is the set of real numbers and which takes each number to its square. For category theorists. the definition is not complete until we specify a codom, which will contain all values of the function but need not coincide with the set of those values.

The Uses and Abuses of the History of Topos Theory - Colin McLarty

I don't understand what is being said in the above paragraph. If a function is defined as a mapping between two set, aren't we providing the codomain in it's definition?

  • 5
    "If a function is defined as a mapping between two set" In set theory, we precisely don't define a function this way. Instead, a (set-theory-ish) function is just a set of ordered pairs satisyfing the obvious "no-multiple-outputs" property. – Noah Schweber Jun 19 '22 at 00:30
  • So the idea of giving funtion as $f:A \to B$ thing was a lie? (in set theory context) o_o.. I think even terrance tao's analysis book uses this idea for defining a funct – tryst with freedom Jun 19 '22 at 00:31
  • 3
    No: in set theory,$f\colon A \rightarrow B$ means that $f \subseteq A\times B$ is single-valued in the usual sense, and has domain (first projection) equal to $A$ bur range (second proj) contained in $B$. Anyway that’s the usual convention. – BrianO Jun 19 '22 at 00:53
  • So if the codomain isn't part of the definition of a function in set theory, does that mean that in set theory functions cannot be "surjective", since that would refer to some relationship between the function and some other set, rather than a property of the function? – Joe Jun 19 '22 at 01:50
  • You have to say what set a function surjects onto. Every function is a surjection onto its range. – BrianO Jun 19 '22 at 07:11
  • 1
    @Joe: See this as well as the first comment. – user21820 Jun 19 '22 at 13:10

1 Answers1

2

It's probably best to give a concrete example of this phenomenon.

Say we want to think about the function $f : \{ 1,2 \} \to \{a,b\}$ which sends $f(1) = a$ and $f(2) = b$.

In ZFC everything is a set. In particular we need to choose a way of encoding $f$ as a set so that we can talk about it1. The widely accepted approach is to encode $f$ by its graph: $f = \{ (1,a), (2,b) \}$. Now, a far as ZFC is concerned, this set is the function $f$.

But let's talk about a new function $g : \{1,2\} \to \{a,b,c\}$ which sends $f(1) = a$ and $f(2) = b$. Well, again, in ZFC we identify $g$ with is its encoding: $g = \{(1,a), (2,b)\}$.

So then $f = g$! They're literally the same set, and so we cannot distinguish them in ZFC. This is fine for the purposes of set theory (and even for our day to day lives), but it explains the friction between the category-theoretic "codomain" and the set-theoretic encoding of functions. From only the encoding of $f$, we can't actually recover the codomain!

How big of a deal this is depends on who you ask. I don't immediately see a reason why we couldn't solve this "problem" by keeping track of $A$ and $B$ explicitly and defining $f : A \to B$ to be the tuple $(A, \{ (a, f(a)) \mid a \in A \}, B)$. It's possible that we would need to redo some small parts of early set theory (for instance, this might change the rank of $f$, which might matter in particularly weak settings). More importantly, a lot of set theorists will build functions by taking unions of partial functions, and this modified encoding is slightly less amenable to that technique.

I suspect this is all superficial, and the new encoding wouldn't matter that much in the working life of set theorists, but I can't say for sure. Hopefully someone with more experience in set theory can say some words about this.


1. As an aside, this is one of the common arguments that people make in favor of type theory. We don't need to make any encoding choices, since we allow more complicated "primitive" things than just sets.


I hope this helps ^_^

HallaSurvivor
  • 38,115
  • 4
  • 46
  • 87
  • Does anybody define a capital-F Function to consist of 3 sets: a domain, a codomain, and a set of ordered pairs (a small-f function)? – Peter Jun 19 '22 at 02:32
  • @Peter, I don't know actually. I'm a logician, so I know a handful of things about set theory basically by osmosis, but it's pretty far from my area of expertise. I would also love to know if there's any authors who define Functions in this way – HallaSurvivor Jun 19 '22 at 03:03
  • 1
    In Functional Analysis, when defining the adjoint of a bounded linear operator between Hilbert spaces, the codomain is crucial because it becomes the domain of the adjoint! – Ruy Jun 19 '22 at 03:55
  • It doesn't do any favour to type theory. In fact, all it does is to reveal that type theories with more complicated primitives are doing nothing else than hide the issues. I like typing, even strict typing, but type theory is way more dubious than merely typing. Very few people who promote strong type theories actually care about soundness. For example, they introduced 'sized types' into Agda causing inconsistency and finally 3.5 years later they just marked it as "unsafe". – user21820 Jun 19 '22 at 06:34
  • That's just last year by the way, and nobody really understands what they are doing with sized types. Coq people also play with impredicative 'fire'. I'm not saying that ZFC is that great either. Till today, set theorists cannot give me any satisfactory philosophical justification for full replacement, which a principle that arises from this kind of 'enticing to have' ideas. Sure, it is enticing, just as much as unrestricted specification was. – user21820 Jun 19 '22 at 06:42
  • This is relevant here because (as you say) we sometimes want to glue together partial approximations in order to build a function. This gluing is safer if we already have a set containing all the approximations. For example, if you want a function f∈S→T where S,T are sets and (S,<) is a well-ordering such that f(k) = r(f↾S[<k]) for every k∈S, where r is some definable function, then you can get it all-at-once as { (k,x) : k∈S ∧ ∃g∈S[≤k]→T ( g(k) = x ∧ ∀i∈S[≤k] ( g(i) = r(g↾S[<i]) ) }. So what matters most is that you can construct T. But at least, ZFC doesn't hide much in primitives. – user21820 Jun 19 '22 at 06:52
  • Is that your blog? @user21820 nice one – tryst with freedom Jun 19 '22 at 13:01
  • @EthakkaappamwithChai: Not my blog. These links are all just what I found for my own reading. – user21820 Jun 19 '22 at 13:06