It hapens to me not infrequently, but it happened today that I saw the following image
and read it as “Yoneda Lemma”.
Which, class, leads me smoothly onto my next topic: classifying spaces. [warning: requires topology, and, maybe, some category theory]
A topological space has open sets. Great. But say we are limiting ourselves to looking at continuous maps of topological spaces and not explicity of the open sets that form the topology. How do we talk about open sets then?
Well, there’s a really easy way: You can find it by looking for a classfying space for the open sets.
Basically, a space which classifies open sets in terms of continuous maps is a topological space S such that each open subset of any other topology T is given by a continuous map from T to S.
That is, instead of looking at the open sets of a space, you look at continuous maps from that space to S.
[Why *to* S instead of? Well, because the “open sets” functor is contravariant… (see later) ].
And what is the classifying space for open sets? Why it’s the glorious Sierpinski space, of course! This is a topological space with two points, one open, and one closed. You can verify easily yourself that each continuous map to S picks out one special open set.
So, S is a really handy tool!
Many many other things can be classified; for instance, the set of all vector bundles over a manifold can be given in terms of spaces formed from Stieltjes varieties and Grassmanians; for a covariant example, the set of points of a topological space can be classified in terms of mappings from the one point topological space, and, well, loads of things! Seriously, just try it!
To go through the transitional phase:
The assignment to each space it’s set of open subsets actually constitutes a contravariant functor F from Top to Set.
The classifying space for this functor is the sierpinski space S.
To say that the set of all open sets of a space is the same as the set of continuous maps to S is the same as saying that F(T) is isomorphic to hom(T,S) for all topologies T. (hom(T,S) is the set of all continuous maps from T to S, or, in general, the set of all morphisms). In proper category theory, we require this to be something like a bijective natural transformation between the functor F and the functor hom(-,S).
And for the final phase:
A classifying space for a contravariant set-valued functor F:C->Set, is an object S \in C such that there is an isomorphism from F to hom(-,S).
Even more nicely: A set-valued contravariant functor F is called representable if it is isomorphic to hom(-,S) for some S an object of it’s domain. And S is called the classifying space or representing object of F :)
(if F is covariant, you take hom(S,-) instead).
Now, isn’t *that* nice?
Now I’m in a place to talk about the yoneda embedding. A natural transformation is like a mapping between functors (I was talking about the implicitly when I mentioned isomorphisms in the above definition).
Even when you can’t find a classifying space, you can still go up another level and use the Yoneda Lemma, which says that each open set of a space T, say, is the same as a natural transformation from hom(-,T) to F(T). Or rather more nicely Nat( hom(-,T) , F) is isomorphic to F(T) for all spaces T. Of course, you can go up another level and get rid of a T, talking about an isomorphism between some functor that maps T onto the set Nat( hom(-,T) , F) and the functor F.
If you’re not troubled by vertigo, you can go up another level and get rid of the F (because it holds for all set-valued functors) and talk about a…wait…I’m not going to say it all, you should be able to get the idea, and if you can’t, it probably won’t do you much good for me to say it because I’d be leaving out to many details by that point.
But I will point out a special case of the yoneda lemma, namely the case where F is itself a functor like hom(-,A). This then says that
hom(A,B) is isomorphic to Nat( hom(-,B), hom(-,A) )
This is an even more extreme example of what I was talking about above, wanting to move up a level somehow – in the first case talking about morphisms (continuous maps in my example) instead of elements (open subsets) , and in this case you can stop talking about morphisms and start talking about natural transformations.
So where you can talk about open subsets as morphisms to the classifying space, you can now use Yoneda to talk about them as natural transformations as well :)
[Why does the functor have to be Set-valued? Well, because hom(T,S) is usually a set – except in toposes. But this post is already too long for talking about them. And you can even try to construct classifying spaces for functors from the category of categories, and do stuff like that, I’ve been told. Actually, I’m going to have to take advantage of this parenthetical situation to say that, in a similar vein to the above (but a different direction) you can also view continuous maps between topological spaces as adjoint functors between the categories of sheaves on those spaces. Okay. There. I’ve said it. I actually have another post that I’ve never put on the site written about these that]
Also note that I should have put in a bunch of “naturality conditions” above, but I didn’t, because I’m sloppy that way.
Wow. I don’t know/care about you, but that was certainly good for me to get it off my chest. Hmmm… .
Addendum: I know that Hom is trivially representable in each variable separately, but are there any categories where it is representable as a functor from C*xC->Set ? (this corresponds to there being two objects X and Y such that any morphism f:A->B is (naturally) the same as a pair of morphisms <g :A->X,H:Y->B>, right? ) Doesn’t work for most categories that I’ve tried it for – nor when I use the diagonalized version of it [hom(X,X)].