Integrals, logarithms, and staircases

What noise does a drowning analytic number theorist make?

“log log log log” (Courtesy of Prof. Bob Vaughan, who must have made this joke at least a dozen times in a number theory class last semester. By the way, at least one source attributes this to number theorists Ram Murty and Barry Mazur.)

Alas, what I have to do say today has absolutely nothing to do with analytic number theory. Instead, I’d like to tell a story about the logarithm function, which will ultimately tie together topics in complex analysis, topology, and group theory. Before I do that though, I want to relate an interesting conversation I had with a couple of months ago with a first-year student, which led me to the first draft of this tale.

When I asked what he’d been working on lately, he mentioned two things: first of all, the second-semester introductory class for math majors that he’s taking was just starting to study groups, and this new manner of abstraction was difficult; and secondly, he had been reading some complex analysis on the side and was very fascinated by it.

Being a very algebraic sort of cat myself, I felt that this was an injustice that needed to be righted, and so proceeded our conversation in which I tried to motivate his study of groups via complex analysis. (I suspect that I did a pretty bad job. Fortunately, this was a rare occasion in pedagogy when one gets a second chance: he was at least interested enough to ask me about it again the next day, when I articulated the ideas a bit more clearly. Hopefully, this third chance will be even better!)

I’m going to start by saying a few words about a purely analytic object, the logarithm. We’ll attempt to formulate a definition for it as a function on the complex numbers, but quickly run into trouble. There are a number of ways to resolve the issue we’ll face, but (remarkably!) the most elegant solution requires tools from abstract algebra.

This post will be long, but hopefully I’ve organized it in a manageable way. Basically, I’m going to talk about the logarithm for a bit, and then a problem will arise. We’ll spend some time fixing it, and then we’ll solve a similar problem, and finally I’ll discuss the general situation. The last part is unfortunately going to require some group theory, but my hope is that the first few sections will be accessible to anyone with some calculus background, an understanding of complex numbers, and some time to spend pondering!

One last aside for readers not familiar with complex analysis: I’ll throw around the word “holomorphic” a lot. Don’t mind it! For a function defined on a subset of the complex plane, holomorphic means exactly the same thing as differentiable. For our discussion, the word is superfluous – it’s just such a part of my lexicon that I probably can’t avoid saying it!

The logarithm

Surely the reader, regardless of her familiarity with complex analysis, is more than familiar with the logarithm function. (If anyone asks, I’ll always use the word “logarithm” to refer to the natural logarithm, with base e. This’ll show up when I write down formulas, but it won’t be important at all.) The log is a beautiful object with many remarkable properties, but the one we’ll be most interested in here is that for any positive real number x, we have

\displaystyle\log(x) = \int_1^x \frac{dx}{x}  (1).

The logarithm is most important, or course, because it is inverse to the exponential function: for any real number x, e^x is positive, and in fact \log\left(e^x\right)=x. Unlike the log, the exponential function is easy to extend to the complex plane: if we look at its regular old Taylor series

\displaystyle e^x = \sum_{n=0}^\infty \frac{x^n}{n!}

from a calculus or analysis course, we’ll be relieved to know that this sum makes sense everywhere on the complex plane, so we can take it as our definition of the exponential. We now have enough background to really ask a question:

Question: Is there a holomorphic function f defined on \mathbb C \smallsetminus {0} so that f\left(e^x\right)=x?

(Why \mathbb C \smallsetminus {0}, you ask? Well the exponential function has no zeros, so there’s no need for its inverse function to be defined at zero! As we’ll eventually see, this is a necessary precaution.)

The first claim that I’ll make is that, if there is such a function, it definitely needs to satisfy something resembling equation (1). Why is this? Well, for any complex number x, we have

\displaystyle 1=\frac{d}{dx}x=\frac{d}{dx}f\left(e^x\right) = f'\left(e^x\right)\cdot e^x.

Now if we make the substitution y=e^x, this gives us that

\displaystyle f'(y) = \frac 1 y

for any nonzero complex number y. In other words, if there is a “complex logarithm,” whatever it is, we know what it’s derivative has to be.

So if we know it’s derivative, then it can’t be too hard to figure out what the function actually is: why don’t we just integrate? This works – sort of. Ultimately, we will just take equation (1) as our definition. The trouble is, equation (1) doesn’t actually make sense (yet)! The reason for this brings us briefly to the world of topology.

Integrals and paths

So what’s wrong with formula (1)? The issue here is that in the complex plane (unlike on the line) there many ways of getting from 1 to x, and hence of evaluating that integral.

Fortunately, this kind of thing isn’t usually an issue in complex analysis: if you have two different paths from a to b, and you integrate a function f which is holomorphic in the entire region between those paths, then you’ll get the same integral. (In other words, you can “slide integrals around,” as long as you stay inside the region where your function is holomorphic.) For this reason, we can still say that

\displaystyle e^x = \int_0^x e^x dx

without any issue. Since e^x is defined everywhere, it’s going to be defined in the region between any two paths we choose, so we always get the same integral. (Just to be clear, I’m only saying that the equation is at least a complete sentence – the fact that that it’s true isn’t quite obvious!)

Integrating e^x is no problem. 1/x, on the other hand, is problematic because it’s not defined at the origin. If we want to compute \log(-1), we can imagine choosing a path from 1 to -1 which goes above the origin, and one which goes below it, and we have no guarantee that these two paths have the same integral. In fact, they don’t.

In an extreme case, we could have one path which stays put (and so obviously has integral zero) and one path that branches out and then returns to where it began (which might have nonzero integral). It turns out that the question of closed loops integrating to zero is the only thing we need to worry about. Worded differently, if we can get rid of discrepancies coming from closed loops, we’ve gotten rid of all discrepancies!

(The interested reader might want to check this herself: given two paths from a to b whose integrals are different, can you come up with a closed loop that has nonzero integral?)

In the particular case of the logarithm, I can tell you exactly what all the integrals around closed loops are: if your loop circles the origin n times counterclockwise, then the integral is 2πni; if it does so clockwise, then the integral is –2πni. In fact, we might just stop here! A pessimist might remark that we have given a conclusive negative answer to our question: there is not any function holomorphic on \mathbb C \smallsetminus {0} which is inverse to the exponential.

(The details of this argument might be fun to work out. Suppose you had such a function, and compute its value in two different ways, using the integral formula. The two results you get have to be equal, since they’re the value of the same function at the same point! This’ll give us some silly formula like \log(x) = \log(x) + 2\pi i, which is obviously nonsense, so our original function must have been nonsense!)

But this is the wrong way to look at it; the trick here is to run away from our problems. Apparently, \mathbb C \smallsetminus {0} is the wrong world for our logarithm function to live in. If we want this to work, we need a world where there are no loops enclosing the origin.

Imagine a spiral staircase heading off to infinity above and below, and with steps that are infinitely long, extending away from the center. There’s no opening in the middle – this is the kind where the stairs all connect to a support beam in the center. Put that support beam perpendicular to the complex plane, sticking right through the origin. Believe it or not, I claim that this staircase is the place where the logarithm function lives. (The stairs themselves are a bit of a red herring – go ahead and imagine the stairs smoothed out into a ramp, it you prefer.)

So how does this work, exactly? Start by picking a spot on the stairs so that you’re directly above the number 1 on the complex plane. That point has logarithm zero. Now think about a path in the complex plane that runs from 1 to, say, 3+5i, and wraps around the hole in the origin – oh I don’t know – twice, counterclockwise. Start from where you’re standing on the staircase, and trace your way along that path.

Staircases like to change your altitude, so obviously as you circle the origin twice, you’ll be forced to move up two floors, and you’ll finish standing directly above 3+5i. Now consider the integral of the function 1/x along this path in the complex plane. Whatever number that gives, we say that this is the value of the logarithm at the spot you’re standing on the staircase, which we can think of as “one of the logarithms at a spot that’s above (or below) 3+5i.”

So what would happen if your path had wrapped around three times and ended up at the same spot? Well, you’d get a different integral, and hence a different value for your logarithm function, and this would be no problem at all, because you’d be at a different spot on the staircase: you’d circle around the support beam one extra time, and rise up one extra floor!

We had a rule for calculating a function, but our rule was ambiguous: there were many different ways to determine its value, and they didn’t always agree. We solved our problem by just using all the values, all at once, and creating a bigger space where there was no conflict. There were infinitely many different “logarithms” we could compute at each point, so our new “staircase space” had infinitely many points lying over each of our original points, each giving us one of the values of our functions.

A double-staircase

Now let’s play around with another example. Just like before, we’ll start with a function that’s defined globally by a simple formula, and try to define its antiderivative – just like before, we’ll run into issues when closed loops have nonzero integrals.

Problem: We’ll define an “antiderivative” for the function g on \mathbb{C}\smallsetminus \{0,1\} given by

g(x) = \frac{1}{x(x-1)}.

Just like I did before, I’ll just go ahead and tell you what the integrals are here. (If you believe the integrals that I gave you in the first example, there’s a simple trick for computing these ones from those. You might want to try thinking about it for a while.)

  1. If we take a loop encircling the origin once, counterclockwise, and not the point 1, then the integral will be –2πi.
  2. If we take a loop encircling the point 1 once, counterclockwise, and not the origin, then the integral will be 2πi.
  3. From this, we can see that a loop circling both points once has integral zero.
  4. In fact, if we take a loop which encircles the origin n times counterclockwise (taking negative if the loop circles it clockwise, for instance) and encircles 1 times, then its integral will be (n-m)2πi.

Now, as before, I’ll describe the space where this integral lives. In fact, it’s pretty simple; imagine a “building of infinitely many floors” as before, but this time with two stairwells positioned next to each other –  one going counterclockwise (over the origin) and the other running clockwise (over the point 1).

If you walk along a path that encircles both staircases, you’ll go halfway down one staircase, and then right back up the other one, and never change floors! This is consistent with bullet point 3. above. I’ll leave it to you to convince yourself that 1, 2, and 4, all make sense in this space as well – if you were comfortable with the logarithm example, then this one shouldn’t be much trouble at all.

Heading about groups

(Coming up with fun headings is hard.)

From now on, I’m going to assume that the reader knows a thing or two about groups. (The notions I’ll use: group, product group, homomorphism, kernel. Nothing very technical.)

In both of the examples we’ve studied so far, we solved our problem in essentially the same way: we “broke” the “bad” paths. We took the closed loops with nonzero integral (such as a loop around the origin) and created a new space where they were no longer closed.

I’ve claimed that there’s a group floating around somewhere, and that we can use it to understand this process. So what’s the group? The elements of this group are loops – or to be precise “sums of loops, with integer coefficients.” Let’s make this a bit more explicit:

Definition Let U be a subset of the complex plane. Then we define a group G to be the set of expressions of the form n1 α1 + … + nk αk where all the n‘s are integers and the α‘s are loops in U. The operation is the obvious thing: just collect terms and add up coefficients! (Note that this thing is Abelian.)

Well this is kind of silly – we have lots and lots of expressions, a lot of which basically represent the same loop.  For instance: we should be able slide loops around (within U) without changing which group element we’re talking about, and take a “pinched” loop (one that crosses over itself) and replace it by the sum of the two component loops, again without changing anything. Let’s do that.

(If you’re not sure why I think that we should be able to do these things, then consider this: we’re only really interested in integrals. Eventually we’l be “integrating along” these group elements. However, the two little tricks I just described will never change the value of the integral, so there’s no reason why we’d want to keep track of those little differences!)

Definition Let H denote the subgroup of G generated by elements of the following form:

  • If α and β are loops with the property that we can slide from one to the other without leaving U, then stick α-β in there. (Think about, for instance, two loops in \mathbb{C}\smallsetminus {0} which both run once clockwise around the origin.)
  • If α is a loop which is “pinched,” made up of two smaller loops β and γ , then let’s include α-β-γ. (Have in mind the image of a figure-eight loop, with two smaller loops that make it up.)
  • Finally, if α and β are the same loop but traversed in opposite directions, then take α+β too.

These are all things that we agree should be zero. Finally, define H1(U) to be the quotient group G/H.

G was way too big, but now magically we have a new group where lots of reasonable equations hold. For instance, if α and β are “reverses” of one another, then α = -β! This is the kind of group we want – unlike G, its structure actually reflects the geometry of U.

Also, note that we didn’t really use anything about being a “subset of the complex plane.” We could apply this construction, for instance, to our “staircase spaces” that we described before – in fact, we will do that.

(By the way, what we’ve just constructed is called the first integral singular homology group of U.)

Now let’s compute some H1‘s! My first claim is that if U is \mathbb{C}\smallsetminus {0} (the set from our logarithm example), then H1(U) is isomorphic to the group of integers (under addition). For a loop α in U, we’ll say that the corresponding integer is the number of times that α circles the origin counterclockwise. If it goes clockwise instead, it’ll be a negative integer. If it’s clockwise sometimes and counterclockwise other times, that’s not a problem either – more of those turns will “cancel,” and in the end we’ll still get just one integer.

It’s easy to see that this map H1(U) → Z is surjective – we can get any integer we want by circling the origin the right number of times. Seeing that it’s injective is harder, but fortunately it is true. We won’t worry about that.

Now how about our second example – what was the group there? I claim that, for a reason similar to the first example, this group is isomorphic to the product x Z. Can you see why? (We have two holes now – apply the construction from the first example to each one separately, and then stick them together to get the right map! Just like before, don’t worry about why it’s injective, unless you know some topology.)

There’s one last object we need in order to make use of these groups: a homomorphism. This part is easy, but we need one piece of extra structure. Up until now, we just had a set U. Now let’s fix a holomorphic function f on that set.

Definition We now define a map ∫ : H1(U) → \mathbb{C} taking a loop α to the complex number \int_\alpha f, the integral of f around that loop. As for sums of loops, just integrate the loops separately, and them add them all up with the right coefficients.

Of course to see that this is well-defined, we need to check that the integrals of all the things in the subgroup we killed are zero. This isn’t hard, and it’s also not terribly relevant, so I’ll forget about it.

Here’s the key observation about this homomorphism: we want it to be zero! If this is the zero homomorphism, then every loop integrates to zero, and we have no trouble, there’s no obstruction to defining an antiderivative, and we can just do it the naive way. On the other hand, every loop with nonzero integral presents a struggle. We need to break it, or else there’s no hope for our antiderivative.

Preferably, we don’t want to break anything extra. We only want to break loops with nonzero integrals, so that we can change the space as little as possible while making it a safe place for our antiderivative to live. In other words, we want to turn U into a new space \widetilde{U} with the property that H^1\left(\widetilde{U}\right) = \ker \int. We want a space whose loops are just the loops that already had zero integral.

(In particular, we don’t just want those groups to be isomorphic, we want them to be canonically isomorphic. Here’s what I mean: \widetilde{U} should come with a “projection map” to U, and that map will give us a homomorphism H^1\left(\widetilde{U}\right)\to H^1(U). This map should be injective, and its image should be the kernel. We really want even more than that, but you get the point – the isomorphism should arise from the geometry, not just the algebra.)

Finally, let’s look at the examples and check that this all makes sense. In the logarithm example, the integral map whs injective! Every loop that actually circled the origin had nonzero integral, so the kernel was zero. I’ll leave it to you to draw some pictures and convince yourself that H1 of the single staircase space was also zero. In other words, every loop in that space can be contracted to a point. (The idea is that you can circle the origin and still end up where you started: if you do, you’ve changed floors!)

In the second example, our map was not injective – some loops did integrate to zero, for instance those that looped around both of the holes the same number times, and in the same direction. In other words, if we think of the group as x Z, the kernel is the subgroup consisting of things like (n, n). This group is isomorphic to Z.

So is H1 of our double-staircase isomorphic to Z? It shouldn’t be very surprising that it is: any loop that doesn’t circle both wholes the same number of times lands on a different floor, so the only closed loops are the ones coming from (n, n)‘s anyways!

One last point

I’ve said a lot already and, this is getting pretty long, but I want to make one last point before moving on. We know now sort of what we need to do to get the right space for an antiderivative: compute H1 for our set, find the kernel of the integral map, and then try to cook up a space whose H1 is (canonically – see the note above) that kernel.

But where do we get that space? Well that’s unfortunately where I’m going to stop explaining. The fact that the right space exists is not totally obvious, and it requires a fair amount of topology and algebra to prove.

(The interested reader can find this theory in most books on algebraic topology, under the name “covering spaces.” Just so you’re not shocked, you won’t see any H1‘s there, since when the things we want aren’t subsets of the plane, that’s not really the right group to talk about.)

Anyways, I hope this lengthy piece can be worth someone’s time other than my own. Until next time, enjoy the following confused dogs.