In the last couple of posts, I described how an extended TQFT gives a 2-vector space, with generators corresponding to particular states of matter, for each boundary of space (mostly talking about 1-D uboundaries of 2D space in 3D spacetime). I was starting to build up to talking about how cobordisms give rise to “spin network states” on space with given boundary conditions. Before I can do that, it’s probably helpful to talk about something a little more general. Since the general thing in question is something I’m developing a talk on to give in Iowa, this is helpful for me anyway.

A slightly more general thing has to do with spans of groupoids, and how to get 2-linear maps from them. A span in a category \mathbf{C} is a diagram like this:

B_1 \leftarrow S \rightarrow B_2

Now, as for spans, let me first give a couple of link-outs (the blathyspherian version of a shout-out) to a couple of guys named John… Given a category \mathbf{C} with pullbacks, there is a (bi)category \mathbf{Span(C)}, where spans are composed using pullbacks. John Armstrong recently posted about spans, describing \mathbf{Span(C)}, which has the same objects as \mathbf{C}, and morphisms which are spans in \mathbf{C}.

In fact, it also has 2-morphisms, which are span maps – given two spans with central objects X and Y, a span map is a map from X to Y which makes the resulting diagram commute. It turns out these make \mathbf{Span(C)} into a bicategory – one of the classic examples, in fact, which goes back to Jean Benabou’s “Introduction to Bicategories” (1967) in which the concept was introduced. However, one can ignore these, and just think of it as a category, by taking spans only up to isomorphism.

John Baez recently posted some slides for a talk about spans in quantum mechanics, which gives a nice overview of the context that makes this stuff relevant to this discussion of TQFT. A key concept is summarized in the abstract:

Many features of quantum theory — quantum teleportation, violations of Bell’s inequality, the no-cloning theorem and so on — become less puzzling when we realize that quantum processes more closely resemble pieces of spacetime than functions between sets.

And the point both of them make is that cobordisms can be seen as spans (actually, cospans, although a cospan in \mathbf{C} is by definition a span in \mathbf{C^{op}}). This is an important idea when thinking of TQFTs as functors, since \mathbf{nCob} and \mathbf{Vect} (or \mathbf{Hilb}) are symmetric monoidal categories with duals. A TQFT is a functor Z : \mathbf{nCob} \rightarrow \mathbf{Vect}, which respects exactly this structure. So it’s important that quantum processes are “like” these “pieces of spacetime”. And “pieces of spacetime” (cobordisms) have these properties is that, any time you start off with a cartesian category with pullbacks, like \mathbf{Sets}, then taking spans in it gives you a symmetric monoidal category with duals.

What we’re really talking about are properties of (a) spans, and (b) certain free functors. In particular, free functors taking sets to vector spaces, groupoids to 2-vector spaces, and (potentially) so on. Both of these have something to do with how to go from a cartesian category like \mathbf{Sets}, or \mathbf{Gpd} (really a 2-category), to a monoidal category with duals (“dagger compact”), like \mathbf{Vect}, or \mathbf{2Vect} (also a 2-category) – but also like Span(Set) or Span(Gpd)… I’ll describe what happens for sets, to keep things simple for this installment.

One example of going from a cartesian category to a dagger compact one is by the “free vector space” functor F, taking a set S to F(S), the free vector space on S, and set maps to linear maps that just permute basis elements. Another is the process of taking \mathbf{C} and building $\mathbf{Span(C)}$. The point is that these two can be related in a rather interesting way. In particular, there’s a functor

F : \mathbf{Span(Sets)} \rightarrow \mathbf{Vect}

which acts on the objects of $\mathbf{Span(Sets)}$ (which are sets) just like the free-vector-space functor. That is, given a set S, it gives \mathbb{C}^S, the space of functions from S into \mathbb{C}. (For simplicity, I’ll assume all my sets are finite).

But it does something rather special on morphisms in \mathbf{Span(Sets)}. These are spans of sets and therefore they have two morphisms in them. If we think of the span S \leftarrow^{s} X \rightarrow^{t} T as a morphism X : S \rightarrow T in \mathbf{Span(Sets)}, then the two arrows in the span are distinguished as first a “backwards” arrow, then a “forwards” arrow. The point is to take a vector in F(S) – a complex-valued function on S, through the span.

So the question is, if I have a complex-valued function f : S \rightarrow \mathbb{C}, how do I get a complex-valued function on T? Well, first, of course, I have to get one on X. Since I have a function s : X \rightarrow S, the obvious candidate is s^{\ast}f := f \circ s : X \rightarrow \mathbb{C}. Each element of X just gets the same complex number as its image down in S. That’s easy: we’ve “pulled back” the function f along s.

Now we have to transport this function down to T, which is a little less obvious. A given object in T may have several different objects in X which map down to it, and no reason why they should all have the same function value under s^{\ast}f. What can we do with a bunch of complex numbers? The two things which are most obvious are: add them up, or multiply them. The one we pick is to add them up (it may help to remember that the preimage of some object in T is the union, or coproduct, of a bunch of elements – and coproducts are like sums, just as products are like… well… products). The result is that we’ve “pushed forward” the function s^{\ast}f along t, and the result is called t_{\ast}s^{\ast}f.

How do I know the process of taking a function f – that is, a vector in F(S), and finding the vector t_{\ast}s^{\ast}f in F(T) is a linear map? Well, it’s not too hard to check that it’s represented by a matrix, and the summation over the preimage of an object in T was the sum in the matrix multiplication. (Go ahead!) This works out very nicely because \mathbf{Set} is cartesian, so any span between S and T factors through the product S \times T. In fact, X corresponds to an integer matrix, whose (i,j) component is the number of elements of X that project down to both i \in S and j \in T. (To get a general matrix, you’d have to give labels to the elements of X, which is something I talk about in this paper – the thing I like about which is that it gives lots of pictures which make “matrix mechanics” seem pretty natural – to me, anyway.)

It turns out this gives you a functor which represents \mathbf{Span(Sets)} inside $\latex \mathbf{Vect}$. In fact, to really get the bigger picture, instead of \mathbf{Sets} in everything I’ve said here, you should replace \mathbf{Gpd}, and for \mathbb{C} you should replace \mathbf{Vect}. I’ll say something about that in the next installment – but “morally speaking” it’s much the same as what I’ve talked about here.