In singular (co)homology, if $\alpha\in C^*(X)$ and $x\in C_*(X)$, then the cap product $\alpha \cap x$ is generally defined by the following process:

  1. Apply to $x$ the diagonal map $C_*(X)\to C_*(X\times X)$ followed by some choice of Alexander-Whitney chain equivalence $ C_*(X\times X)\to C_*(X)\otimes C_*(X)$ to obtain an element $\sum y_i\otimes z_i$.

  2. Apply $\alpha$ to $\sum y_i\otimes z_i$ by the slant product, or, in other words and roughly speaking, apply $\alpha$ to ``half of the factors''.

  3. Depending on your favorite conventions (and what you're trying to accomplish), there may also be a sign (which might also be part of your definition of the slant product - but let's ignore this).

The reason I'm being so cagey with wording in part 2 is directly related to my question: In almost all major textbook sources I have consulted, step 2 is performed by forming $\sum y_i \alpha(z_i)$, which strikes me as somewhat unnatural, forcing the $\alpha$, which starts off on the left to jump all the way over the $y_i$ terms to get to the $z_i$ terms on the right. Is there a good mathematical reason for this convention? Why not define the cap product to be $\sum \alpha(y_i) z_i$?

The one major exception to this convention seems to be Hatcher. He does form $\sum \alpha(y_i) z_i$, but he also writes cap products as $x\cap \alpha$, so his cochain also has to jump, but it jumps over the $z$s instead!

(For the record, I'm not asking this question out of idle pickiness. Jim McClure and I have been doing a lot of work with cap products recently, and we're trying to be consistent amongst various conventions for various issues, but preferably with good reasons thrown in!)

  • 3
    $\begingroup$ The reason for the convention is that, using the Alexander-Whitney convention, you get a left module structure if you apply to the righthand factor and you get a right module structure if you apply to the lefthand factor. Fun related topics include trying to get the signs correct on the dual of a differential graded coalgebra. $\endgroup$ Aug 26, 2010 at 1:59
  • 1
    $\begingroup$ This is something which bothered me too (and probably loads of other people), so thanks for the question! I wish we had one straight convention which everyone followed throughout, or at least a small number thereof. It would be great to have an automated "convention translator" for these signs and so on, otherwise it's hell trying to cite results out of various papers and make sure their sign conventions agree with yours (and often they do not). $\endgroup$ Aug 26, 2010 at 2:06
  • 2
    $\begingroup$ Tell me about it. Jim and I have spent hours, if not days, of our lives trying to get signs to work out. $\endgroup$ Aug 26, 2010 at 4:21

1 Answer 1


This is just an expanded version of Tyler's comment, I think.

Let's use a, b, c for cochains, x, y, z for chains, [a,x] for the value of a cochain on a chain. I'll be lazy and write $ab$ for $a\cup b$ and $ax$ for $a\cap x$. Let $[a\otimes b,y\otimes z]=(-1)^{|b||y|}[a,y][b,z]$.

I like to define $bx$ in such a way that $[a,bx]$ is $[ab,x]$. Then associativity and unit of cup makes cap into a module structure: $(bc)x=b(cx)$ because $[a,(bc)x]=[a(bc),x]=[(ab)c,x]=[ab,cx]=[a,b(cx)]$, and $1x=x$ follows from $[a,1x]=[a1,x]=[a,x]$.

If you have a product $a\otimes b\mapsto ab$ of cochains and a coproduct of chains defined in such a way that $[ab,x]=[a\otimes b,y_i\otimes z_i]$ where the coproduct of $x$ is $\Sigma y_i\otimes z_i$, then that means I have to define $bx$ to be $\Sigma (-1)^{|y_i||b|}[b,z_i]y_i$, so as to get

$[a,bx]=[ab,x]=[a\otimes b,\Sigma y_i\otimes z_i]=\Sigma (-1)^{|y_i||b|}[a,y_i][b,z_i]=[a,\Sigma (-1)^{|y_i||b|}[b,z_i]y_i]$.

The sign is a bit unexpected, as is the jump you mention, but it's worth it for the neat formulas in the third paragraph above.

It's not a bad idea to define $xa$ as well. I'd do it by first declaring $[x,a]$ to be $(-1)^p[a,x]$ when $a$ is a $p$-cochain and $x$ is a $p$-chain, then defining $xa$ in such a way that $[xa,b]=[x,ab]$. This insures $x(ab)=(xa)b$ and $x1=x$. The chain-level formula is no better and no worse than the formula for $ax$.

Of course, $ax$ and $xa$ end up differing only by a sign when you get to homology, but the sign is hard to remember; in working it out you have to use the commutativity law for the cup product.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.