Cohomology Rings or: How I Learned to Stop Worrying and Love the Cup Product

Enrique De Alba ; September 28, 2025


Let's talk about fun ways we can translate topological problems into algebraic ones. Suppose we have an (n1)(n-1)-sphere, i.e. Sn1S^{n-1} and the nn-disk DnD^n. It's well known that these two spaces are very different from each other, but can we retract one of these to the other? One way we can approach this is by applying a homology functor. Since Sn1S^{n-1} is a subspace of DnD^n such that Dn=Sn1\partial D^n = S^{n-1}, i.e. Sn1S^{n-1} is the boundary of the nn-disk, suppose there were a retraction r:DnSn1r: D^n \to S^{n-1}. Can we do this? Recall that a retraction is such that we get the following mapping:

AiXrAA \xrightarrow{\,\, i \,\,} X \xrightarrow{\,\, r \,\,} A

where i:AXi: A \to X is the inclusion map and r:XAr: X \to A is a retraction such that ri=idAr \circ i = \text{id}_{A}. Note that this follows from the property of retractions where r(a)=ar(a) = a for all aAa \in A. Going back to Sn1S^{n-1}, we have a similar mapping:

Sn1iDnrSn1S^{n-1} \xrightarrow{\,\, i \,\,} D^n \xrightarrow{\,\, r \,\,} S^{n-1}

where i:Sn1Dni: S^{n-1} \to D^n just comes from the boundary inclusion Sn1DnS^{n-1} \subset D^n. Next, we apply the homology functor:

H(Sn1;Z)iH(Dn;Z)rH(Sn1;Z)H_*(S^{n-1}; \mathbb{Z}) \xrightarrow{\,\, i_* \,\,} H_*(D^n;\mathbb{Z}) \xrightarrow{\,\, r_* \,\,} H_*(S^{n-1};\mathbb{Z})

Note that we're using Z\mathbb{Z} coefficients for convenience. Let's focus on the (n1)(n-1) homology group, Hn1H_{n-1}:

Hn1(Sn1;Z)iHn1(Dn;Z)rHn1(Sn1;Z)H_{n-1}(S^{n-1}; \mathbb{Z}) \xrightarrow{\,\, i_* \,\,} H_{n-1}(D^n;\mathbb{Z}) \xrightarrow{\,\, r_* \,\,} H_{n-1}(S^{n-1};\mathbb{Z})

Since DnD^n is contractible, we know that Hn1(Dn;Z)0H_{n-1}(D^n;\mathbb{Z}) \cong 0 for n>1n > 1. Similarly, we know that Hn1(Sn1;Z)ZH_{n-1}(S^{n-1}; \mathbb{Z}) \cong \mathbb{Z}, hence we get:

Zi{0}rZ\mathbb{Z} \xrightarrow{\,\, i_* \,\,} \{ 0 \} \xrightarrow{\,\, r_* \,\,} \mathbb{Z}

where ii_* and rr_* are the induced maps on homology for the inclusion and retraction maps, respectively. Recall that ri=idSn1r \circ i = \text{id}_{S^{n-1}}, so applying the homology functor to this, we get

(ri)=ri=(idSn1)=idH(Sn1)(r \circ i)_* = r_* \circ i_* = (\text{id}_{S^{n-1}})_* = \text{id}_{H_*(S^{n-1})}

where idH(Sn1)\text{id}_{H_*(S^{n-1})} is just the identity map on the homology of Sn1S^{n-1}. However, we see that for Zi{0}rZ\mathbb{Z} \xrightarrow{\,\, i_* \,\,} \{ 0 \} \xrightarrow{\,\, r_* \,\,} \mathbb{Z}, this mapping factors through zero which means the overall map must be the zero map, i.e. the map Z{0}\mathbb{Z} \to \{ 0 \} must map every integer to zero, and then likewise {0}Z\{ 0 \} \to \mathbb{Z} also just maps 000 \mapsto 0. This is the zero homomorphism. Note that idH(Sn1)\text{id}_{H_*(S^{n-1})} is not the zero homomorphism since the zero homomorphism is not the identity map of H(Sn1)H_*(S^{n-1}) (suppose we have some non-zero aHn1(Sn1)a \in H_{n-1}(S^{n-1}), then 0(a)a0(a) \neq a where 0()0(-) denotes the zero homomorphism), so we've reached a contradiction. Since we initially assumed that this retraction r:DnSn1r: D^n \to S^{n-1} existed, we see that this must not be the case. Thus, a retraction from the nn-disk to the (n1)(n-1)-sphere does not exist.

The example above showcases how we can use homology to convert this retraction problem into one about induced function composition. As we'll see, homology is not all-powerful, and we'll need to develop a bit more advanced machinery to tackle more interesting problems.

Let's see if homology can help us with the following problem: Does there exist a continuous map f:RPmRPnf: \mathbb{RP}^m \to \mathbb{RP}^n for 1<n<m1 < n < m such that it induces an isomorphism on fundamental groups, i.e.

f:π1(RPm)π1(RPn),f_*: \pi_1(\mathbb{RP}^m) \xrightarrow{\,\, \cong \,\,} \pi_1(\mathbb{RP}^n),

where RPk\mathbb{RP}^k is kk-dimensional real projective space? Recall that real projective space is such that π1(RPk)Z2\pi_1(\mathbb{RP}^k) \cong \mathbb{Z}_2 for all k>1k >1 and since RP1\mathbb{RP}^1 is homeomorphic to S1S^1, then we have π1(RP1)π1(S1)Z\pi_1(\mathbb{RP}^1) \cong \pi_1(S^1) \cong \mathbb{Z} for the k=1k=1 case. On the homology side of things, we have H0(RPk)ZH_0(\mathbb{RP}^k) \cong \mathbb{Z} and Hk(RPk)ZH_{k}(\mathbb{RP}^k) \cong \mathbb{Z} if kk is odd (note that RPk\mathbb{RP}^k for odd kk is orientable, but RPk\mathbb{RP}^k for even kk is non-orientable). Then we also have Hi(RPk)Z2H_{i}(\mathbb{RP}^k) \cong \mathbb{Z}_2 if 0<i<k0 < i < k and ii is odd and Hi(RPk)0H_{i}(\mathbb{RP}^k) \cong 0 if ii is even. Note that Hk(RPk)0H_k(\mathbb{RP}^{k}) \cong 0 for k>0k > 0 when kk is even (note: here we're emphasizing that the homology group is zero even at the top-most dimension). From the fundamental group perspective, there's no clear obstructions since we just have the induced map:

f:Z2Z2,f_*: \mathbb{Z}_2 \to \mathbb{Z}_2,

so the fundamental group doesn't distinguish between RPn\mathbb{RP}^n versus RPm\mathbb{RP}^m for nmn \neq m and 1<n<m1 < n < m. Note that if n=1n=1 then this problem becomes a lot easier since ZZ2\mathbb{Z} \neq \mathbb{Z}_2.

What about for homology? We have:

Hi(RPk)={Zif i=0 or if i=k is oddZ2if i is odd and 0<i<k0otherwise H_i(\mathbb{RP}^k) = \left\{ \begin{array}{ll} \mathbb{Z} & \text{if } i=0 \text{ or if } i=k \text{ is odd} \\ \mathbb{Z}_2 & \text{if } i \text{ is odd and } 0 < i < k\\ 0 & \text{otherwise} \end{array} \right.

Looking at just the H1H_1 case we have an induced map of f:H1(RPm)H1(RPn)f_*: H_1(\mathbb{RP}^m) \to H_1(\mathbb{RP}^n) such that we get the same induced map from before with f:Z2Z2. f_*: \mathbb{Z}_2 \to \mathbb{Z}_2. Can homology distinguish between these spaces more than the fundamental group? Well, suppose mm were odd and nn were even, then for the mm-th homology group we'd get:

f:Hm(RPm)Hm(RPn),f_*: H_m(\mathbb{RP}^m) \to H_m(\mathbb{RP}^n),

where Hm(RPm)ZH_m(\mathbb{RP}^m) \cong \mathbb{Z} and Hm(RPn)0H_m(\mathbb{RP}^n) \cong 0 since m>nm > n, so we just get the zero map f:Z{0}f_*: \mathbb{Z} \to \{0\}. Note that this does not imply that ff can't exist. f:Z{0}f_*: \mathbb{Z} \to \{0\} is only a constraint on ff. Additionally, note that even if we consider a mix of these odd/even cases for nn and mm, these would merely be placing constraints on ff and not leading to any kind of contradiction we could use to conclude that ff can't possibly exist. Here's where we run into a dead end with homology.

What about cohomology? Before we jump into H(RPk;)H^*(\mathbb{RP}^k;-), let's build some intuition by first looking at H(S1;Z)H^*(S^1;\mathbb{Z}). Recall that H0(S1;Z)Z1H^0(S^1;\mathbb{Z}) \cong \mathbb{Z}\langle 1\rangle, where we have a generator 1H0(S1;Z)1 \in H^0(S^1;\mathbb{Z}). Next, we have H1(S1;Z)ZαH^1(S^1;\mathbb{Z}) \cong \mathbb{Z}\langle\alpha\rangle, where we have a different generator αH1(S1;Z)\alpha \in H^1(S^1;\mathbb{Z}). Note that Hk(S1;Z)0H^k(S^1;\mathbb{Z}) \cong 0 for all k>1k > 1. With this, we see that the total cohomology H(S1;Z)H^*(S^1;\mathbb{Z}) is generated as a group by 11 and α\alpha. Furthermore, note that the generator 1H0(S1;Z)1 \in H^0(S^1;\mathbb{Z}) acts as the multiplicative identity for the entire cohomology ring, i.e.

11=1,1α=α,α1=α,1 \smile 1 = 1, \quad 1 \smile \alpha = \alpha, \quad \alpha \smile 1 = \alpha,

where we have the standard cohomology cup product :Hn(X;)×Hm(X;)Hn+m(X;)\smile: H^n(X;-) \times H^m(X;-) \to H^{n+m}(X;-). Importantly, since α2=ααH2(S1;Z)\alpha^2 = \alpha \smile \alpha \in H^2(S^1;\mathbb{Z}) and H2(S1;Z)0H^2(S^1;\mathbb{Z}) \cong 0, then we get that α2=0\alpha^2 = 0. This is the central relation we want to capture for the cohomology ring H(S1;Z)H^*(S^1;\mathbb{Z}). We can get this with the truncated polynomial ring Z[α]/(α2)\mathbb{Z}[\alpha] / (\alpha^2) where we mod out by the ideal (α2)Z[α](\alpha^2) \subset \mathbb{Z}[\alpha] to capture the relation α2=0\alpha^2 = 0. Putting this all together, we get

H(S1;Z)Z[α]/(α2)={c0+c1αc0,c1Z},H^*(S^1;\mathbb{Z}) \cong \mathbb{Z}[\alpha] / (\alpha^2) = \{ c_0 +c_1\alpha \mid c_0, c_1 \in \mathbb{Z} \},

where elements b1+b2α,c1+c2αH(S1;Z)b_1 + b_2\alpha, c_1+c_2\alpha \in H^*(S^1;\mathbb{Z}) are such that

(b1+b2α)(c1+c2α)=b1c1+(b1c2+b2c1)α(b_1 + b_2 \alpha) \smile (c_1 + c_2\alpha) = b_1c_1 + (b_1c_2 + b_2c_1)\alpha

Note that this is the simplest non-trivial example of an exterior algebra which is denoted as either ΛZ[α]\Lambda_\mathbb{Z}[\alpha] or just Λ[α]\Lambda[\alpha] if the ring that's being worked over is obvious.

Next, let's consider H(RP2;Z2)H^*(\mathbb{RP}^2;\mathbb{Z}_2) with Z2\mathbb{Z}_2 coefficients. Recall that H0(RP2;Z2)Z21H^0(\mathbb{RP}^2;\mathbb{Z}_2) \cong \mathbb{Z}_2\langle 1\rangle, H1(RP2;Z2)Z2αH^1(\mathbb{RP}^2;\mathbb{Z}_2) \cong \mathbb{Z}_2\langle\alpha\rangle, H2(RP2;Z2)Z2βH^2(\mathbb{RP}^2;\mathbb{Z}_2) \cong \mathbb{Z}_2\langle\beta\rangle, and Hk(RP2;Z2)0H^k(\mathbb{RP}^2;\mathbb{Z}_2) \cong 0 for all k>2k > 2, where we have non-zero generators αH1(RP2;Z2)\alpha \in H^1(\mathbb{RP}^2;\mathbb{Z}_2) and βH2(RP2;Z2)\beta \in H^2(\mathbb{RP}^2;\mathbb{Z}_2). Note that we have αα=β\alpha \smile \alpha = \beta (non-zero generators mapping to non-zero generators), and since H3(RP2;Z2)=0H^3(\mathbb{RP}^2;\mathbb{Z}_2) = 0 then α3=α(αα)=0\alpha^3 = \alpha \smile (\alpha \smile \alpha) = 0. Similar to the H(S1;Z)H^*(S^1;\mathbb{Z}) case, we want to capture this α3=0\alpha^3 = 0 relation. This gives us the following truncated polynomial ring:

H(RP2;Z2)Z2[α]/(α3)={c0+c1α+c2α2c0,c1,c2Z2}H^*(\mathbb{RP}^2;\mathbb{Z}_2) \cong \mathbb{Z}_2[\alpha] / (\alpha^3) = \{ c_0 +c_1\alpha + c_2\alpha^2 \mid c_0, c_1, c_2 \in \mathbb{Z}_2 \}

From this, we see how this generalizes to the RPn\mathbb{RP}^n case, where Hk(RPn;Z2)0H^k(\mathbb{RP}^n;\mathbb{Z}_2) \cong 0 for all k>nk > n, so we want to capture the relation αn+1=0\alpha^{n+1} = 0 where αH1(RPn;Z2)\alpha \in H^1(\mathbb{RP}^n;\mathbb{Z}_2) is the non-zero generator, thus we get the following cohomology ring:

H(RPn;Z2)Z2[α]/(αn+1)H^*(\mathbb{RP}^n;\mathbb{Z}_2) \cong \mathbb{Z}_2[\alpha] / (\alpha^{n+1})

Taking a small step back, if we start with f:RPmRPnf: \mathbb{RP}^m \to \mathbb{RP}^n then we can consider the induced map on cohomology rings

f:H(RPn;Z2)H(RPm;Z2),f^*: H^*(\mathbb{RP}^n;\mathbb{Z}_2) \to H^*(\mathbb{RP}^m; \mathbb{Z}_2),

note that we're mapping H(RPn;Z2)H(RPm;Z2)H^*(\mathbb{RP}^n;\mathbb{Z}_2) \mapsto H^*(\mathbb{RP}^m; \mathbb{Z}_2) since cohomology is a contravariant functor. Let αnH1(RPn;Z2)\alpha_n \in H^1(\mathbb{RP}^n;\mathbb{Z}_2) be the generator for this cohomology group. How would ff^* map αn\alpha_n? One way we can see this is by considering the Universal Coefficient Theorem, where we have an isomorphism

Hk(X;R)Hom(Hk(X;R),R), where R is a fieldH^k(X;R) \cong \text{Hom}(H_k(X;R), R ), \text{ where } R \text{ is a field}

so in the H1(RPn;Z2)H^1(\mathbb{RP}^n;\mathbb{Z}_2) case we have: H1(RPn;Z2)Hom(H1(RPn;Z2),Z2)H^1(\mathbb{RP}^n;\mathbb{Z}_2) \cong \text{Hom}(H_1(\mathbb{RP}^n;\mathbb{Z}_2), \mathbb{Z}_2) since Z2\mathbb{Z}_2 is a field. Note that this does not hold for Z.\mathbb{Z}. With this, we get the following commutative diagram

Commutative diagram showing cohomology isomorphisms

where ff^* is the previous induced mapping on cohomology and (f)(f_*)^* is the induced map we get after applying the Hom\text{Hom} functor to the induced map on homology f:H1(RPm;Z2)H1(RPn;Z2)f_*: H_1(\mathbb{RP}^m;\mathbb{Z}_2) \to H_1(\mathbb{RP}^n;\mathbb{Z}_2), where we get

(f):Hom(H1(RPn;Z2),Z2)Hom(H1(RPm;Z2),Z2),(f_*)^*: \text{Hom}( H_1(\mathbb{RP}^n;\mathbb{Z}_2), \mathbb{Z}_2 ) \to \text{Hom}( H_1(\mathbb{RP}^m;\mathbb{Z}_2), \mathbb{Z}_2 ),

since Hom\text{Hom} is also a contravariant functor similar to cohomology. Let's trace where the generator αnH1(RPn;Z2)\alpha_n \in H^1(\mathbb{RP}^n;\mathbb{Z}_2) gets mapped.

Let αnH1(RPn;Z2)\alpha_n \in H^1(\mathbb{RP}^n;\mathbb{Z}_2). αnf(αn)H1(RPm;Z2)\alpha_n \mapsto f^*(\alpha_n) \in H^1(\mathbb{RP}^m;\mathbb{Z}_2). f(αn)Ψm(f(αn))Hom(H1(RPm;Z2),Z2)f^*(\alpha_n) \mapsto \Psi_m( f^*(\alpha_n) ) \in \text{Hom}(H_1(\mathbb{RP}^m;\mathbb{Z}_2), \mathbb{Z}_2). Here, we will denote Ψm(f(αn))\Psi_m( f^*(\alpha_n) ) as the non-zero homomorphism ϕm\phi_m such that

ϕm:H1(RPm,Z2)Z2,\phi_m: H_1(\mathbb{RP}^m, \mathbb{Z}_2) \to \mathbb{Z}_2,

i.e. Ψm(f(αn))=ϕm\Psi_m( f^*(\alpha_n) ) = \phi_m. Next, going down then right, we get: αnΨn(αn)\alpha_n \mapsto \Psi_n(\alpha_n), which is just the corresponding non-zero homomorphism ϕn:H1(RPn,Z2)Z2\phi_n: H_1(\mathbb{RP}^n, \mathbb{Z}_2) \to \mathbb{Z}_2, so we have αnΨn(αn)=ϕn\alpha_n \mapsto \Psi_n(\alpha_n) = \phi_n. Then, ϕn(f)(ϕn)\phi_n \mapsto (f_*)^*(\phi_n), where we pullback ϕn\phi_n (since contravariant) to get:

(f)(ϕn)=ϕnfHom(H1(RPm;Z2),Z2),(f_*)^*(\phi_n) = \phi_n \circ f_* \in \text{Hom}(H_1(\mathbb{RP}^m;\mathbb{Z}_2), \mathbb{Z}_2),

and similarly to Ψm(f(αn))\Psi_m( f^*(\alpha_n) ), we must have that ϕnf\phi_n \circ f_* is also the non-zero homomorphism ϕm:H1(RPm,Z2)Z2\phi_m: H_1(\mathbb{RP}^m, \mathbb{Z}_2) \to \mathbb{Z}_2 where ϕmHom(H1(RPm;Z2),Z2)\phi_m \in \text{Hom}(H_1(\mathbb{RP}^m;\mathbb{Z}_2), \mathbb{Z}_2). Putting things together, we get:

Ψm(f(αn))=ϕm=ϕnf,\Psi_m(f^*(\alpha_n)) = \phi_m = \phi_n \circ f_*,

and since ϕm=Ψm(αm)\phi_m = \Psi_m(\alpha_m), then Ψm(f(αn))=ϕm\Psi_m(f^*(\alpha_n)) = \phi_m implies that Ψm(f(αn))=Ψm(αm)\Psi_m(f^*(\alpha_n)) = \Psi_m(\alpha_m), which means that

f(αn)=αmf^*(\alpha_n) = \alpha_m

With this, we see that ff^* maps the generator αnH1(RPn;Z2)\alpha_n \in H^1(\mathbb{RP}^n;\mathbb{Z}_2) to the generator αmH1(RPm;Z2)\alpha_m \in H^1(\mathbb{RP}^m;\mathbb{Z}_2). Why is this an issue? Well, we have two different cohomology rings with different relations. In H(RPn;Z2)H^*(\mathbb{RP}^n;\mathbb{Z}_2) we have that αnn+1=0\alpha_n^{n+1} = 0 and in H(RPm;Z2)H^*(\mathbb{RP}^m;\mathbb{Z}_2) we have that αmm+1=0.\alpha_m^{m+1} = 0. Since we have 1<n<m,1 < n < m, then consider

αnm=αnn+1αnmn1=0αnmn1=0\begin{aligned} \alpha_n^{m} &= \alpha_n^{n+1} \smile \alpha_n^{m-n-1} \\ &= 0 \smile \alpha_n^{m-n-1} \\ &= 0 \end{aligned}

Note that αmmHm(RPm;Z2)\alpha_m^m \in H^m(\mathbb{RP}^m;\mathbb{Z}_2) is the non-zero generator for this cohomology group, but if we apply ff^* to αnm\alpha_n^{m} then we get:

f(αnm)=(f(αn))m=αmmHm(RPm;Z2),f^*(\alpha_n^m) = (f^*(\alpha_n))^m = \alpha_m^m \in H^m(\mathbb{RP}^m;\mathbb{Z}_2),

where αmm\alpha_m^m is non-zero, but recall that αnm=0\alpha_n^m = 0, so this contradicts f(αnm)=f(0)=0f^*(\alpha_n^m) = f^*(0) = 0.

TL;DR: In H(RPn;Z2)H^*(\mathbb{RP}^n;\mathbb{Z}_2), the element αnm=0\alpha_n^m = 0 since m>nm > n and Hm(RPn;Z2)H^m(\mathbb{RP}^n;\mathbb{Z}_2) is trivial. However, when we map this "zero" to H(RPm;Z2)H^*(\mathbb{RP}^m;\mathbb{Z}_2) via ff^* we get f(αnm)=(f(αn))m=αmmf^*(\alpha_n^m) = (f^*(\alpha_n))^m = \alpha_m^m, where αmmHm(RPm;Z2)\alpha_m^m \in H^m(\mathbb{RP}^m;\mathbb{Z}_2) is a non-zero generator in H(RPm;Z2)H^*(\mathbb{RP}^m;\mathbb{Z}_2) which contradicts f(αnm)=f(0)=0f^*(\alpha_n^m) = f^*(0) = 0 being zero.

With this, we see through the cohomology rings of RPn\mathbb{RP}^n and RPm\mathbb{RP}^m that the function f:RPmRPnf: \mathbb{RP}^m \to \mathbb{RP}^n cannot exist such that it induces an isomorphism f:π1(RPm)π1(RPn)f_*: \pi_1(\mathbb{RP}^m) \to \pi_1(\mathbb{RP}^n). ■