Quantum Gravity Seminar

Week 16, Track 1

John Baez

Februrary 26, 2001

"Hey, you're back!" said the Wiz as Jay walked in. He hadn't come to the last class. Then the Wiz did a double-take. Jay was bruised and tired-looking, his cloak almost torn to shreds. "What happened to you?"

"I was captured by a crew of evil magicians," said Jay. "They locked me in a dungeon and said they'd only let me go after I solved dozens of problems on electromagnetism. It took me days...."

"Too cheap to pay somebody to solve 'em? The blackguards!"

"No," said Jay, "that's the really weird part. They knew the answers already: they just wanted to see if I could figure them out!"

"Strange," said the Wiz. Then the bell rang, and the Wiz talked to Jay for a while, giving him some advice on how to deal with evil magicians, until finally Toby wandered in.

"Good job!" said the Wiz. "Okay, so where were we? Right....

We have classified all TQFTs in 1 and 2 dimensions. The answers were simple and beautiful. No comparably slick classification is known in dimension 3. We can still construct a lot of TQFTs in dimension 3, but we can't do it with our "bare hands" as we did in lower dimensions, starting straight from the definitions. There are just too many objects and morphisms in 3Cob for a brute-force approach to be fruitful. We need to be more clever.

There are various tricks for getting 3d TQFTs. One way is to build a "topological lattice field theory". In a theory like this, we compute the partition function Z(M) of a closed spacetime manifold M as follows. First we chop M up into tetrahedra. Then we label the edges somehow. Using these labellings we compute a number for each tetrahedron, each triangle and each edge. Then we multiply all these numbers... and finally we sum over labellings. For the theory to be "topological", the result shouldn't depend on how we chopped spacetime into tetrahedra.

Riemannian 3d quantum gravity is the most interesting theory of this sort. In this one, we label the edges by spins and compute numbers for tetrahedra, triangles and edges using the spin network technology we studied all last quarter. I've already given you plenty of clues about how this will work! For example, the Biedenharn-Elliot identity will be crucial for showing this theory is topological.

But before we tackle 3d examples like this, let's warm up with a look at 2-dimensional topological lattice field theories.

We'll start by describing a recipe for computing a number Z(M) for any compact oriented 2-manifold M. This is only part of what a TQFT is supposed to do for us, but we'll worry about the rest later.

The recipe goes like this...

Start with the following ingredients:

  1. a vector space V

  2. an operator g: V (x) V -> C

  3. an element c of V (x) V (x) V

Later we'll see some conditions these ingredients must satisfy for the recipe to work. If we pick a basis ei of V, we can write out g and c using indices:

gij = g(ei,ej)

c = cijk ei (x) ej (x) ek

In the second equation I'm using the Einstein summation convention, and we're gonna do that a lot now.

Next:

  1. Take your 2-manifold M and triangulate it. A little patch might look like this:
                         o-------o-------o
                          \     / \     /
                           \   /   \   /
                            \ /     \ /
                             o-------o
    
  2. "Explode" the triangulation: bust it apart into the individual triangles. For example, when we explode the above little patch of our triangulation, it becomes this:
                         o-------o o o-------o
                          \     / / \ \     /
                           \   / /   \ \   /
                            \ / /     \ \ /
                             o o-------o o
    
  3. Label all edges of the exploded triangulation with indices, the same sort of indices we use to label the basis of V:
                         o---m---o o o---r---o
                          \     / / \ \     /
                           l   n k   j p   q
                            \ / /     \ \ /
                             o o---i---o o
    
  4. Using these labellings, write down a factor of c for each triangle and a factor of g for each pair of edges in the exploded triangulation. For example, the above patch gives:
               cmln gnk cijk gjp cpqr
    
  5. Sum over repeated indices to get the number Z(M). Note that each index appears once upstairs and once downstairs, just as it should.

It's ironic, because Einstein never quite believed in quantum mechanics, and here we are using the Einstein summation convention to compute partition functions in quantum field theory!

But now: who can spot an ambiguity in the recipe I just described?"

"We get a factor of c for each triangle," said Jay, "but how do we know whether to use cijk or cjik or -- what? There are 6 permutations to choose from!"

"Good!" said the Wiz. "We have to deal with this problem. The orientation of our manifold lets us pick a cyclic ordering of the indices. In the example I just showed you, I used the counterclockwise orientation. That told me to cyclically order the indices for each triangle in a counterclockwise way. For example, when I saw this:

                               o 
                              / \
                             k   j 
                            /     \ 
                           o---i---o 
I knew to write down cijk or cjki or ckij. But of course, there are still 3 choices. So what do we do?"

"Impose cyclic symmetry on the tensor c?" guessed Miguel.

"Right! In other words, to eliminate the ambiguity, we can impose this condition:

cijk = cjki = ckij.
So that's what we'll do. But can anyone spot another ambiguity?"

"There's also the same problem for g," said Miguel.

"Right! When we see a pair of parallel edges in our exploded triangulation labelled by i and j, say, how can we tell whether to write down gij or gji?"

"We can't!" said Miguel. "So they'd better be equal."

"Exactly. So we also impose this:

gij = gji.
Does this equation remind you of anything? Can you guess why I used the letter "g" here?"

"It's like a metric!" said John.

"Exactly! Well, almost exactly. The equation says that g is a symmetric bilinear form on our vector space V. But a metric is a nondegenerate symmetric bilinear form. So at this point I'll do something evil: I'll assume g is nondegenerate. Then g is a metric.

This simplifies things... but it's evil, because it's not forced on me by the pictures, as the other assumptions were. To blend general relativity and quantum theory we need to understand how geometry and algebra are two sides of the same coin. We're happy when familiar algebraic structures arise naturally from geometric or topological considerations. But it's not so good to stick in algebraic assumptions just for convenience!

We should really let g be degenerate... but that's a bit more complicated. I have a student who has worked it out as part of her thesis. But for now, let's take the low road and assume g is a metric. This lets us use all sort of stuff we worked out back in Week 5.

Now let's see what conditions must hold for our theory is "topological". That's physics talk; a better word for it would be "triangulation independent". We want to see when Z(M) doesn't depend on the triangulation we picked.

To do this, we need some moves that will get us from any triangulation of M to any other one. A good set of moves are the so-called "Pachner moves". I've talked about these in 3 dimensions, but a version of them works in whatever dimension you like. The 2d version was known long before Pachner came along... they may go back all the way to Alexander!"

"Alexander the Great??" asked Oz.

"No!" said the Wizard irritably, zapping him with a bolt of lightning. "James Waddell Alexander, the great topologist!"

"The guy with the horned sphere?" asked Toby.

"Yeah. But anyway, I'll call them Pachner moves. In 2d they go like this. There's the 1-3 move, where we take 1 triangle and replace it by 3 or vice versa, like this:

               o                           o
              / \                         /|\
             /   \                       / | \
            /     \                     /  |  \
           /       \        1-3        /   |   \
          /         \     <----->     /    o    \
         /           \               /    ' `    \
        /             \             /   '     `   \
       /               \           /  '         `  \
      /                 \         / '             ` \
     o-------------------o       o-------------------o
And there's the 2-2 move, where we take 2 triangles and replace them by 2, like this:
        o----------o                o----------o
        |\         |                |         /|
        | \        |                |        / |
        |  \       |                |       /  |
        |   \      |                |      /   |
        |    \     |      2-2       |     /    |
        |     \    |    <----->     |    /     |
        |      \   |                |   /      |
        |       \  |                |  /       |
        |        \ |                | /        |
        |         \|                |/         |
        o----------o                o----------o
That's all we need! We can go between any two triangulations of a compact 2-manifold using a finite sequence of these moves. This is even true when our manifold has a boundary -- we'll need that later.

By the way, do you see anything cool about these moves?"

"They're both just pictures of two sides of a tetrahedron!" cried Toby.

"Right! There are two ways to chop the boundary of a tetrahedron in half, and these give the two 2d Pachner moves. So we can actually think of these Pachner moves as the process of sticking a tetrahedron on top of a triangulated surface and getting a new triangulated surface. For example, if you take any triangle in your surface:

              o
             / \
            /   \
           /     \
          /       \    
         /         \   
        /           \  
       /             \ 
      /               \         
     /                 \        
    o-------------------o
and set a tetrahedron on top of it, it now looks like this:
             o
            /|\
           / | \
          /  |  \
         /   |   \
        /    o    \
       /    ' `    \
      /   '     `   \
     /  '         `  \
    / '             ` \
   o'_________________`o
In fact, this is how it works in every dimension! In the second part of Week 10, I travelled back in time to tell you about the 3d Pachner moves: the 1-4 move and the 2-3 move. These come from the two ways of chopping the boundary of a 4-simplex in half. Similarly, in 4d we have a 1-5 move, a 2-4 move and a 3-3 move, coming from the three ways of chopping the boundary of a 5-simplex in half. And so on....

It's a wonderful recursive pattern: THE (N+1)-SIMPLEX IS NOTHING BUT THE BASIC OPERATION FOR GOING BETWEEN TRIANGULATIONS OF N-MANIFOLDS!" He let out a cackle of crazed laughter.

"Why do you always laugh like that whenever you touch upon something related to n-category theory?" asked Toby.

The Wizard coughed and looked embarassed. "Hmm... I'm digressing.

Now, the 2-2 move is great, but the 1-3 move is a bit funky, so the following fact is sometimes nice: given the 2-2 move, the 1-3 move is equivalent to something called the "bubble move":

              o                           o
              |                          /|\
              |                         / | \
              |          bubble        |  |  |
              |         <------>       |  o  |
              |                        |  |  |
              |                        |  |  |
              |                         \ | /
              |                          \|/
              o                           o
This one is sort of weird, so I've drawn the vertices as little circles to clarify what's going on. On the left we have any edge in our triangulation; on the right we've replaced it by a pair of triangles with two edges in common. I can't draw these triangles so that their edges are straight, but that's okay: this is topology."

Let's derive the bubble move from the 2-2 move and 1-3 move. Suppose we have a triangle

              o
             / \
            /   \
           /     \
          /       \    
         /         \   
        /           \  
       /             \ 
      /               \         
     /                 \        
    o-------------------o
and we want to apply the bubble move to the bottom edge. How can we do it by a sequence of 2-2 and 1-3 moves?"

"All we can do is the 1-3 move," said Toby, "so do that first!"

"Okay," said the Wiz, and he pointed his wand at the triangle and said "1-3", turning it into this:

             o
            /|\
           / | \
          /  |  \
         /   |   \
        /    o    \
       /    ' `    \
      /   '     `   \
     /  '         `  \
    / '             ` \
   o'-----------------`o
"Now what?" he said.

"Do the 2-2 move to the top two triangles," said Miguel.

The Wiz pointed his wand at the picture and said "2-2", and it became this:

             o
            / \
           /   \
          /  .  \
         / .   . \
        / .  o  . \
       / .  ' `  . \
      /.  '     `  .\
     /. '         ` .\
    / '             ` \
   o'__________________o
"Ugh!" said Toby. "That picture sucks!"

"I'd like to see you do better with ASCII art!" growled the Wiz. "Anyway, if you stare at it carefully, you'll see we've succeeded: we've replaced the bottom edge of our original triangle by a pair of triangles with two edges in common. They're rather warped-looking, but this is topology, so it's okay. In short: the 2-2 move and 1-3 move give the bubble move!

Conversely, the 2-2 move and bubble move give the 1-3 move! I'll make this homework. This means that we can get between any two triangulations of a compact 2-manifold using the 2-2 move and bubble move.

So: the partition function of our 2d lattice field theory will be triangulation-independent if it's invariant under the 2-2 move and 1-3 move... or alternatively, the 2-2 move and bubble move.

But let's see what this really amounts to!

First let's consider the 2-2 move. In terms of the exploded triangulation, it looks like this:

        o o----------o                o----------o o
        |\ \         |                |         / /|
        | \ \        |                |        / / |
        |  \ \       |                |       / /  |
        |   \ \      |                |      / /   |
        |    \ \     |                |     / /    |
        |     \ \    |    <----->     |    / /     |
        |      \ \   |                |   / /      |
        |       \ \  |                |  / /       |
        |        \ \ |                | / /        |
        |         \ \|                |/ /         |
        o----------o o                o o----------o
If we label the edges with indices we get something like this:
        o o----n-----o                o-----n----o o
        |\ \         |                |         / /|
        | \ \        |                |        / / |
        |  \ \       |                |       / /  |
        |   \ \      |                |      / /   |
        |    \ \     |                |     / /    |
        j     i l    m    <----->     j    i l     m
        |      \ \   |                |   / /      |
        |       \ \  |                |  / /       |
        |        \ \ |                | / /        |
        |         \ \|                |/ /         |
        o-----k----o o                o o----k-----o
so the partition will be invariant under this move if
cijk gil clmn = cnjigil clkm
Does this look at all familiar?"

"Yeah!" said Oz. "It looks like those horrible formulas in relativity books, all crawling with indices!"

"Hmm. What about the 1-3 move? Maybe this will be more familiar to you. It looks like this:

                                      
                                            o   o
               o                           /|   |\
              / \                         / |   | \
             /   \                       /  r   q  \
            /     \                     /   |   |   \
           /       \                   /    |   |    \
          j         i     <----->     j     o   o     i
         /           \               /    '   o   `    \
        /             \             /   '   '   `   `   \
       /               \           /  l   m       n   p  \
      /                 \         / '   '           `   ` \
     o--------k----------o       o'   '               `   `o   
                                   o----------k----------o
so for invariance under this move we need:
cijk = cpjl glm cmkn gnp cpiq grq
Recognize this?"

"From my nightmares!" said Oz. "Blecch!"

The Wizard towered up straight, and all the Acolytes expected him to punish Oz with a fireball for his insolence, but then he leaned back and let out a tremendous belly laugh. When he recovered, he said, "Right! That's precisely the point I'm trying to make. The index-ridden notation for tensors provides no insight into this problem. We need a better way to write these tensor equations. Suggestions, anyone?"

The class thought a while and then someone said, "How about our diagram methods?"

"Exactly! We didn't do all that work last quarter for nothing. It's really good for stuff like this. Let's see how it works.

First, remember how we draw a metric. It's a "cup" with two strands coming in and none going out:

         |           |              
         |           |                   
         v           v 
          \         /                 
           \_______/                  
               g                    
Next, how do we draw an element c of V (x) V (x) V? It's a trivalent vertex with no strands coming in and 3 going out:
            /\     /\
           /  \   /  \
          /    \ /    \
         |      c      |
         |      |      |
         |      |      |
         v      v      v 
         |      |      |
         |      |      |
         |      |      |
Now: how do these diagrams relate to what we've just been doing, where factors of g come from pairs of edges in our exploded triangulation, while factors of c come from triangles?"

"Poincare duality!" cried Toby.

"Right!" said the Wiz.

"Huh???" said the rest of the Acolytes.

"A picture is worth a thousand words," said the Wiz. "A pair of edges corresponds to a cup like this:

              . .
         |    . .    |              
         |    . .    |                   
         v    . .    v 
          \   . .   /                 
           \__._.__/                  
              .g.                    
              . .
              . .
              . .
while a triangle corresponds to a trivalent vertex like this:
            /\  .   /\
           /  \. . /  \
          /   .\ /.    \
         |   .  c  .    |
         |  .   |   .   |
         | ...........  |
         |      |       |
         |      |       |
         v      v       v 
         |      |       |
Get it? Each strand in our new diagram crosses one edge of the original triangulation. Each trivalent vertex in our new diagram sits inside one triangle of the original triangulation. That's Poincare duality at work.

Applying this rule to a big fat triangulated 2-manifold M, we get a big fat diagram built from c's and g's. If the manifold has no boundary, this diagram has no strands going in or out..."

"... so it evaluates to a number!" said Jay.

"Right: and that's Z(M).

But now let's see what the 2-2 move becomes when we wave the magic wand of Poincare duality over it."

The Wiz took the 2-2 move and waved his wand over it. It gradually dissolved from this:

        o----------o                o----------o
        |\         |                |         /|
        | \        |                |        / |
        |  \       |                |       /  |
        |   \      |                |      /   |
        |    \     |      2-2       |     /    |
        |     \    |    <----->     |    /     |
        |      \   |                |   /      |
        |       \  |                |  /       |
        |        \ |                | /        |
        |         \|                |/         |
        o----------o                o----------o
into this:
        ........|...               ....|.......
        ..      |  .               .   |     ..
        . .     |  .               .   |    . .
        .  .    |  .               .   |   .  .
        .   .   |_____            _____|  .   .
        .    . /   .               .    \.    .
        .     /    .     <--->     .    .\    .
      _______/ .   .               .   .  \______
        .    |  .  .               .  .   |   .
        .    |   . .               . .    |   .
        .    |    ..               ..     |   .
        .....|......               .......|....
             |                            |
and finally this:
             |                             |
             |                             |
             |                             |  
             |                             |  
             c------        =        ------c 
            /                               \ 
           g                                 g
          /                                   \
   ------c                                     c-------
         |                                     | 
         |                                     |  
         |                                     |  
         |                                     |
"Cool," said John. "But wait a minute -- I don't see any little arrows on the strands of that last diagram!"

"Good point," said the Wiz. "I've rendered them invisible. Remember from Week 5: a metric lets us identify a vector space with its dual, so we don't need to draw the arrows. In fact, we don't even need to draw the little g's for the metric... so we can simply write our equation as:

            |                        |
            |                        |  
            |                        |  
            c------     =      ------c 
           /                          \ 
          /                            \
   ------c                              c-------
         |                              | 
         |                              |  
         |                              |  
Now, is this familiar to anyone?"

"Physicists call it "crossing symmetry" when they're talking about Feynman diagrams," said Miguel. "In fact, what we're really doing here is taking a triangulated 2d spacetime, reinterpreting it as a kind of Feynman diagram, and then evaluating that diagram to get a number."

"Yes, that's an excellent point! We're building spacetimes from Feynman diagrams! The metric g is what physicists would call a "propagator", while the tensor c is what they'd call a "cubic interaction". But there's a simpler way to think about this equation. Here, let me bend it around a bit," said the Wiz, grabbing it and bending it (with a great show of exertion) until it looked like this:

 \     \     /            \     /     /                      
  \     \   /              \   /     /               
   \     \ /                \ /     /                      
    \     c                  c     /                         
     \   /          =         \   /
      \ /                      \ /
       c                        c
       |                        |
       |                        |    
"IT'S THE ASSOCIATIVE LAW!" thundered the class in unison.

"Right. See, I can bend these diagrams around, turning inputs into outputs with the help of the metric. c started out as an element of V (x) V (x) V, but turning two ouputs into inputs, it becomes a product on V, and now we see this product must be associative!

But what about the 1-3 move? What does it amount to? Let me wave the magic wand of Poincare duality over it...."

The Wiz waved his wand over the 1-3 move, and it faded from this:

               o                           o
              / \                         /|\
             /   \                       / | \
            /     \                     /  |  \
           /       \        1-3        /   |   \
          /         \     <----->     /    o    \
         /           \               /    ' `    \
        /             \             /   '     `   \
       /               \           /  '         `  \
      /                 \         / '             ` \
     o-------------------o       o-------------------o
to this:
               .                           .
         \    . .    /               \    ...    /
          \  .   .  /                 \  . . .  /
           \.     ./                   \.  .  ./
           .\     /.                   .\_____/.
          .  \   /  .      <--->      .  \ . /  .
         .    \ /    .               .    \ /    .
        .      |      .             .   .  |  .   .
       .       |       .           .  .    |    .  .
      .        |        .         . .      |      . .
     ..........|..........       ..........|..........
               |                           |
and finally this:
         \         /                 \         /
          \       /                   \       /
           \     /                     c-----c
            \   /           =           \   /
             \ /                         \ /
              c                           c
              |                           |
              |                           |
              |                           |
              |                           |
"Recognize this equation?" asked the Wiz.

"Hey!" said Miguel. "That's the "star-triangle relation" from statistical mechanics!"

"Hmm, I guess so," said the Wiz. "But unfortunately, that's too complicated for mere mathematicians to understand. I want something simpler... so let's try the bubble move instead."

He took the bubble move and waved the magic wand of Poincare duality over it... transforming it from this:

              o                           o
              |                          /|\
              |                         / | \
              |          bubble        |  |  |
              |         <------>       |  o  |
              |                        |  |  |
              |                        |  |  |
              |                         \ | /
              |                          \|/
              o                           o
to this:
             .                          .
        |    .    |             |      ...        |
        |    .    |             |     . . .       |
         \   .   /               \   . ___ .     /
          \_____/       <--->     \___/ . \_____/
             .                       .\___/.
             .                       .  .  .
             .                        . . .
             .                         ...
             .                          .
and then this:
        |          |            |                |
        |          |      =     |       __       |
         \        /              \     /  \     /
          \______/                \___c    c___/
                                       \__/ 
"Recognize this?" asked the Wiz. The class stared at the equation suspiciously.

"No," said Oz, "but it's some sort of formula for the metric g, since that's what the "cup" on the left stands for."

"Right!" said the Wiz. "So the question is just: what does the right hand side mean? Let me warp it around a bit..." He bent it until the equation looked like this:

         |         |         |    |        
         |         |    =    |    |   ___        
         |         |         |     \ /   \
          \       /           \     c     \
           \_____/             \   /       |
                                \ /        |
                                 c         |
                                 |         |
                                  \       /
                                   \_____/
"To prove this, it suffices to prove the equation we get when we feed specific vectors from V into the top:
         _         _         _    _
        / \       / \       / \  / \ 
       | v |     | w |     | v || w |
        \_/       \_/       \_/  \_/
         |         |         |    |        
         |         |    =    |    |   ___        
         |         |         |     \ /   \
          \       /           \     c     \
           \_____/             \   /       |
                                \ /        |
                                 c         |
                                 |         |
                                  \       /
                                   \_____/
Now the left side is just g(v,w). What's the right side? Well, closing a diagram up in a loop amounts to taking a trace:
          _____
         /     \
        |       |
        |       |
       ---      |
      | f |     |    = tr(f)
       ---      |
        |       |
        |       |
         \_____/     
and this diagram represents the operation of left multiplication by v:
         _        |
        / \       |
       | v |      |
        \_/      /
          \     /
           \   /
            \ /
             c
             |
             |
which in normal math language we write as
Lv: V -> V.

Combining these facts, we see the right side is just tr(Lv Lw). So our equation says

g(v,w) = tr(Lv Lw).

This expresses the metric in terms of the product on V! So we've proved this result:

A 2d topological lattice field theory is the same as a vector space V equipped with an associative product such that if we set g(v,w) = tr(Lv Lw), then g is a metric on V.
Cool, huh? But we can improve this. First of all, tr(Lv Lw) is always bilinear in v and w. Second of all, it's always symmetric, by the cyclic property of the trace. So if we want it to be a metric, the only question is whether it's nondegenerate! In short, we have:
A 2d topological lattice field theory is the same as a vector space V equipped with an associative product such that if we set g(v,w) = tr(Lv Lw), then g is nondegenerate.
But we can improve this even more. A vector space with just an associative product is a somewhat annoying thing: we'd be happier if it had a unit, too. Then we'd call it an "algebra". Suppose we have V satisfying the above conditions. Does it have a unit? Yes it does! V has a special element that looks like this:
            ___
           /   \
          |     |
          |     |
          |     |
           \   /
            \ /
             c
             |
             |
             |
I leave it to you to show that this is both a left and right unit for the product in V:
                      |            |            |
          ___         |            |            |         ___
         /   \        |            |            |        /   \
        |     |       |            |            |       |     |
        |     |       |            |            |       |     |
        |     |       |            |            |       |     |
         \   /       /             |             \       \   /
          \ /       /              |              \       \ /
           c       /        =      |      =        \       c
           |      /                |                \      |
           |     /                 |                 \     |
            \   /                  |                  \   /
             \ /                   |                   \ /
              c                    |                    c
              |                    |                    |
              |                    |                    |
There's a beautiful picture proof.

So we have this result:

A 2d topological lattice field theory is the same as an algebra such that if we set g(v,w) = tr(Lv Lw), then g is nondegenerate.

In fact, there's a name for algebras with this special property. They're called "semisimple". Algebraists usually say an algebra is semisimple if it's a direct sum of algebras with no nontrivial ideals.... but that's equivalent to this property!

So here's the really snappy way to state our result:

Theorem: A 2d topological lattice field theory is a semisimple algebra.

This is great! It was proved by Fukuma, Hosono and Kawai. Even better, Wedderburn classified all semisimple algebras back in the late 1800s. He didn't know he was classifying 2d topological lattice field theories, but he was! Here's what he showed:

Wedderburn's Theorem: Every semisimple algebra is a finite direct sum of matrix algebras Mn(C).

So we have a completely explicit classification of 2d topological lattice field theories, thanks to Professor Wedderburn and our picture tricks.

Whew! I'll stop here. Next time we'll see how to get TQFTs from topological lattice field theories. And we'll see how the result we just proved fits in with our classification of 2d TQFTs."


baez@math.ucr.edu © 2001 John Baez

home