# How does one actually take the dual of a chain complex?

I know the following about the chain complex used for computing the homology groups of the torus $S^1 \times S^1$: The complex is $0 \to^{\delta_3} \mathbb{Z}[U] \oplus \mathbb{Z}[L] \to^{\delta_2} \mathbb{Z}[a] \oplus \mathbb{Z}[b] \oplus \mathbb{Z}[c] \to^{\delta_1} \mathbb{Z}[v] \to^{\delta_0} 0$; the (non-obvious) boundary maps are $\delta_1(a) = \delta_1(b) = \delta_2(c) = v - v = 0$, $\delta_2(U) = \delta_2(L) = a + b - c$.

I'm trying to compute the cohomology groups of the torus "directly from the definitions", which I take to mean that I should take the dual of this chain complex and then use the definition of cohomology groups as $ker(d_i)/im(d_{i+1})$. The dual here has been defined to me as $C^*(X, R) = Hom_{R-mod}(C_*(X, R), R)$, which (if I understand correctly) is the "group of all R-module homomorphisms from $C_*(X, R)$ to R". What I don't undrestand is how exactly to take the dual of a group in this chain map, like $\mathbb{Z}[U] \oplus \mathbb{Z}[L]$, or of a map, like $\delta_1$; specifically I don't know how to count or locate all of those homomorphisms in a rigorous manner (i.e., to be sure I have all of them). In case it's not clear, this is essentially my first real exposure to the idea of "duals".

I'm looking for information on the process more than the specific answer, because I have to do the same thing for some other objects with known homology chains and boundary maps.

Let $G$ be an abelian group. The dual to $G$ is just the group whose elements are homomorphisms $G\to\mathbb{Z}$. Note that if $G$ is freely generated by the set $\{g_i|i\in I\}$, then a homomorphism $G\to\mathbb{Z}$ is equivalent to a map $I\to\mathbb{Z}$ with no constraints. Furthermore, if $I$ is finite, the dual is isomorphic to $G$ (why? and why isn't it the case when $I$ is infinite?).
Now we proceed to the boundary map. Let $\varphi:G\to H$ be a homomorphism of abelian groups, and let $G^*,H^*$ be dual to $G,H$ respectively. The dual map $\varphi^*:H^*\to G^*$ is given by $$\varphi^*(h^*)=h^*\circ\varphi.$$ Remark: In category language one says that taking dual is a contravariant functor, which basically means that every diagram of abelian groups is mapped by taking dual to a similar diagram with all arrows reversed.
• Am I correct in thinking that the generators of the dual (for the finite and free case) should be the homomorphisms that each take a chosen generator to 1 in $\mathbb{Z}$ and all the other generators to 0? Commented Nov 22, 2014 at 15:58