Skip to content
The Lumenary
First-year graduateGraduate 150 min

Vector bundles and characteristic classes

Families of vector spaces that are products locally but twisted globally — why you cannot comb a hairy ball, which projective spaces are parallelisable, and how curvature integrates to topology.

Formally verified · 15 LeanComputationally tested · 1 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review
MotivationH

Combing, twisting and curvature

You cannot comb the hair on a ball flat without leaving a cowlick: every continuous tangent vector field on the sphere S2S^2 vanishes somewhere. On a doughnut you can. On the circle S1S^1 there is a nowhere-zero tangent field, and on S3S^3 there are three that are orthonormal at every point. Why these differences?

The tangent spaces of a manifold form a family of vector spaces parametrised by the manifold — a vector bundle. Locally it is a product, but globally it may twist, just as a Möbius band is locally a strip (a,b)×R(a, b) \times \R but is not the cylinder S1×RS^1 \times \R. Characteristic classes are cohomology classes of the base that measure this twisting. They obstruct sections ("is there a nowhere-zero vector field?"), frames ("is the manifold parallelisable?") and embeddings ("does RP4\R P^4 immerse in R6\R^6?"), and, through Chern–Weil theory, they are computed by integrating curvature. The prototype is Gauss–Bonnet: for every metric on a closed surface, ∫MK dA=2πχ(M)\int_M K \, dA = 2\pi \chi(M) — geometry on the left, topology on the right.

This lesson builds on algebraic topology (cohomology, degree), smooth manifolds and differential forms.

IntuitionH

Local products, global twists

Take a strip [0,1]×R[0, 1] \times \R and glue its ends. Glue (0,v)(0, v) to (1,v)(1, v) and you get a cylinder; glue (0,v)(0, v) to (1,−v)(1, -v) and you get the (infinite) Möbius band. Both are lines over a circle, and both look the same over any proper arc. The difference is global, and a section — a continuous choice of a vector in each fibre — detects it: the cylinder has the nowhere-zero section v=1v = 1, but any section of the Möbius band starting at height vv must come back at height −v-v, so it crosses zero.

Left: the cylinder (sides glued the same way) carries a section that never meets the zero section (dashed). Right: on the Möbius band (sides glued with a flip) a section leaving the left edge at height +h must arrive at the right edge at height −h, so it crosses zero.

Characteristic classes generalise this sign-flip. A bundle can be described by transition functions on overlaps of trivialising open sets, valued in GLkGL_k; the cohomology of the base records how they fail to be undone. The Möbius band has transition function −1-1 on one overlap: the non-trivial element of H1(S1;Z/2)H^1(S^1; \Z/2), its first Stiefel–Whitney class.

DefinitionsH

Definitions

Definition— vector bundle

A real vector bundle of rank kk over a space BB is a map p:E→Bp : E \to B with a real vector space structure on each fibre Eb=p−1(b)E_b = p^{-1}(b), such that every point of BB has an open neighbourhood UU and a homeomorphism φ:p−1(U)→U×Rk\varphi : p^{-1}(U) \to U \times \R^k (a local trivialisation) mapping each fibre EbE_b linearly isomorphically onto {b}×Rk\{b\} \times \R^k. Complex bundles are defined with Ck\C^k. A morphism of bundles over BB is a continuous map E→E′E \to E' over BB that is linear on fibres; an isomorphism is a morphism with an inverse morphism.

Definition— trivial bundle; section; frame

The trivial bundle is εk=B×Rk\varepsilon^k = B \times \R^k; a bundle is trivial if it is isomorphic to it. A section is a continuous s:B→Es : B \to E with p∘s=idBp \circ s = \mathrm{id}_B; every bundle has the zero section. A frame over UU is a family of sections s1,…,sks_1, \dots, s_k that form a basis of EbE_b for every b∈Ub \in U. A manifold is parallelisable if its tangent bundle is trivial.

Definition— pullback; Whitney sum

For a bundle E→BE \to B and a map f:B′→Bf : B' \to B, the pullback f∗E={(b′,v)∈B′×E:f(b′)=p(v)}f^*E = \{ (b', v) \in B' \times E : f(b') = p(v) \} is a bundle over B′B' with fibre Ef(b′)E_{f(b')} over b′b'. The Whitney sum E⊕E′E \oplus E' of two bundles over BB has fibres Eb⊕Eb′E_b \oplus E'_b; it is the pullback of E×E′→B×BE \times E' \to B \times B along the diagonal. Tensor products, duals, Hom⁡(E,E′)\operatorname{Hom}(E, E') and exterior powers are defined fibrewise in the same way.

Definition— transition functions

If φα\varphi_\alpha and φβ\varphi_\beta are trivialisations over UαU_\alpha and UβU_\beta, then φα∘φβ−1(b,v)=(b,gαβ(b)v)\varphi_\alpha \circ \varphi_\beta^{-1}(b, v) = (b, g_{\alpha\beta}(b) v) for continuous transition functions gαβ:Uα∩Uβ→GLk(R)g_{\alpha\beta} : U_\alpha \cap U_\beta \to GL_k(\R), satisfying the cocycle condition gαβ gβγ=gαγg_{\alpha\beta}\, g_{\beta\gamma} = g_{\alpha\gamma} on triple overlaps. Conversely, any cocycle defines a bundle by gluing the pieces Uα×RkU_\alpha \times \R^k. A bundle is orientable if the cocycle can be chosen with values in GLk+(R)GL_k^+(\R) (positive determinant).

Definition— tangent, normal and tautological bundles

The tangent bundle TMTM of a smooth nn-manifold has fibres TxMT_xM; its transition functions are the Jacobians of the chart changes. For M⊂RNM \subset \R^N, the normal bundle ν\nu has fibres (TxM)⊥(T_xM)^\perp, and TM⊕ν≅εNTM \oplus \nu \cong \varepsilon^N. The Grassmannian Grk(Rn)\mathrm{Gr}_k(\R^n) is the space of kk-dimensional subspaces of Rn\R^n, and the tautological bundle γk\gamma_k over it has fibre over a plane the plane itself. For k=1k = 1 this is the tautological line bundle γ\gamma over RPn−1\R P^{n-1}; over RP1=S1\R P^1 = S^1 it is the Möbius bundle. Letting n→∞n \to \infty gives Grk(R∞)=BO(k)\mathrm{Gr}_k(\R^\infty) = BO(k), and in the complex case Grk(C∞)=BU(k)\mathrm{Gr}_k(\C^\infty) = BU(k).

Worked examplesH

Examples

Example— Spheres

TSn={(x,v)∈Sn×Rn+1:v⊥x}TS^n = \{ (x, v) \in S^n \times \R^{n+1} : v \perp x \}, with normal bundle {(x,tx)}\{ (x, tx) \} trivialised by the section x↦xx \mapsto x. So TSn⊕ε1≅εn+1TS^n \oplus \varepsilon^1 \cong \varepsilon^{n+1}: the tangent bundle of a sphere is stably trivial. Yet TS2TS^2 is not trivial (Theorem 4): adding a trivial bundle can untwist a bundle.

Example— Line bundles over the circle

A real line bundle over S1S^1 can be trivialised over two arcs whose intersection has two components; the transition function is a non-zero constant on each, and only the signs matter. Up to isomorphism there are exactly two line bundles: the trivial one and the Möbius bundle. This is the first case of the clutching construction (Theorem 5).

Example— Projective spaces

TRPn⊕ε1≅(n+1)γT\R P^n \oplus \varepsilon^1 \cong (n+1)\gamma, the sum of n+1n + 1 copies of the tautological line bundle (Milnor–Stasheff, Lemma 4.4): a tangent vector at a line LL is a linear map L→L⊥L \to L^\perp, so TRPn≅Hom⁡(γ,γ⊥)T\R P^n \cong \operatorname{Hom}(\gamma, \gamma^\perp), and adding the trivial bundle Hom⁡(γ,γ)≅ε1\operatorname{Hom}(\gamma, \gamma) \cong \varepsilon^1 gives Hom⁡(γ,εn+1)≅(n+1)γ∗≅(n+1)γ\operatorname{Hom}(\gamma, \varepsilon^{n+1}) \cong (n+1)\gamma^* \cong (n+1)\gamma. Similarly TCPn⊕εC1≅(n+1) γ‾T\C P^n \oplus \varepsilon^1_\C \cong (n+1)\,\overline{\gamma} for the complex tautological bundle.

ProofH

Sections, frames and the hairy ball

Theorem— Proposition 1 (frames trivialise)

A rank-kk bundle E→BE \to B is trivial if and only if it has kk sections s1,…,sks_1, \dots, s_k that are linearly independent at every point. In particular, a line bundle is trivial if and only if it has a nowhere-zero section.

Proof

A trivialisation E≅B×RkE \cong B \times \R^k gives the frame si(b)=(b,ei)s_i(b) = (b, e_i). Conversely, given a frame, define Φ:B×Rk→E\Phi : B \times \R^k \to E by Φ(b,t)=∑itisi(b)\Phi(b, t) = \sum_i t_i s_i(b). It is continuous, linear and bijective on each fibre. To see that Φ−1\Phi^{-1} is continuous, work in a local trivialisation over UU: there Φ\Phi becomes (b,t)↦(b,A(b)t)(b, t) \mapsto (b, A(b) t), where the columns of the matrix A(b)A(b) are the coordinates of the si(b)s_i(b), so A:U→GLk(R)A : U \to GL_k(\R) is continuous, and (b,v)↦(b,A(b)−1v)(b, v) \mapsto (b, A(b)^{-1} v) is continuous because matrix inversion is (Cramer's rule). So Φ\Phi is an isomorphism.

∎

Theorem— Theorem 2 (the Möbius bundle is not trivial)

Every section of the Möbius bundle vanishes somewhere; hence the Möbius bundle is not trivial.

Proof

Realise the Möbius bundle as the quotient of R×R\R \times \R by (t,v)∼(t+1,−v)(t, v) \sim (t + 1, -v), over S1=R/ZS^1 = \R/\Z. A section is the same as a continuous function s:R→Rs : \R \to \R with s(t+1)=−s(t)s(t + 1) = -s(t) (its graph is invariant under the identification). Then s(0)s(0) and s(1)=−s(0)s(1) = -s(0) are either both zero or of opposite signs, and the intermediate value theorem gives t∈[0,1]t \in [0, 1] with s(t)=0s(t) = 0. By Proposition 1 the bundle is not trivial.

∎

Theorem— Theorem 3 (odd spheres can be combed; S³ is parallelisable)

(a) For every m≥1m \ge 1, S2m−1S^{2m-1} carries a nowhere-zero tangent vector field. (b) S1S^1 and S3S^3 are parallelisable.

Proof

(a) Regard S2m−1⊂CmS^{2m-1} \subset \C^m and set v(z)=izv(z) = iz, i.e. (x1,y1,…,xm,ym)↦(−y1,x1,…,−ym,xm)(x_1, y_1, \dots, x_m, y_m) \mapsto (-y_1, x_1, \dots, -y_m, x_m). Then ⟨z,iz⟩=∑kRe⁡(zˉk⋅izk)=∑kRe⁡(i∣zk∣2)=0\langle z, iz \rangle = \sum_k \operatorname{Re}(\bar z_k \cdot i z_k) = \sum_k \operatorname{Re}(i |z_k|^2) = 0, so v(z)v(z) is tangent, and ∣v(z)∣=∣z∣=1|v(z)| = |z| = 1. (b) For S1S^1 this single field is a frame. For S3⊂H=R4S^3 \subset \mathbb{H} = \R^4, the quaternions, let v1(x)=ixv_1(x) = ix, v2(x)=jxv_2(x) = jx, v3(x)=kxv_3(x) = kx. Left multiplication by a unit quaternion is an isometry of R4\R^4, and 1,i,j,k1, i, j, k are orthonormal; so x,ix,jx,kxx, ix, jx, kx are orthonormal for every unit xx (they are the images of 1,i,j,k1, i, j, k under right multiplication by xx, also an isometry). Thus v1,v2,v3v_1, v_2, v_3 form an orthonormal tangent frame, and TS3TS^3 is trivial by Proposition 1. The octonions give S7S^7 the same way.

∎

Theorem— Theorem 4 (hairy ball theorem; Poincaré, Brouwer)

If nn is even, every continuous tangent vector field on SnS^n vanishes somewhere. In particular TS2TS^2 is not trivial.

Proof

Suppose vv is a tangent field on SnS^n with no zero; replacing v(x)v(x) by v(x)/∣v(x)∣v(x)/|v(x)| we may assume ∣v(x)∣=1|v(x)| = 1 and v(x)⊥xv(x) \perp x. Define H(x,t)=cos⁡(πt) x+sin⁡(πt) v(x)H(x, t) = \cos(\pi t)\, x + \sin(\pi t)\, v(x). Since xx and v(x)v(x) are orthonormal, ∣H(x,t)∣=1|H(x, t)| = 1, so HH is a homotopy in SnS^n from the identity (t=0t = 0) to the antipodal map x↦−xx \mapsto -x (t=1t = 1). Homotopic maps have equal degree, but deg⁡(id)=1\deg(\mathrm{id}) = 1 and the antipodal map, a composite of n+1n + 1 reflections, has degree (−1)n+1=−1(-1)^{n+1} = -1 for nn even. Contradiction.

∎

So whether SnS^n can be combed depends only on the parity of nn. Parallelisability is much subtler: SnS^n is parallelisable only for n=0,1,3,7n = 0, 1, 3, 7 (Bott–Milnor and Kervaire, 1958), and J. F. Adams (1962) determined exactly how many independent vector fields Sn−1S^{n-1} carries: ρ(n)−1\rho(n) - 1, where ρ(24a+b⋅odd)=2b+8a\rho(2^{4a+b} \cdot \text{odd}) = 2^b + 8a for 0≤b≤30 \le b \le 3 are the Radon–Hurwitz numbers.

ExplanationH

Clutching and classifying spaces

Theorem— Theorem 5 (clutching)

Every bundle over SnS^n is trivial over the two closed hemispheres D±nD^n_\pm, and is determined up to isomorphism by the clutching function f:Sn−1→GLkf : S^{n-1} \to GL_k comparing the two trivialisations along the equator. This gives a bijection between isomorphism classes of rank-kk complex bundles over SnS^n and [Sn−1,GLk(C)]≅πn−1(U(k))[S^{n-1}, GL_k(\C)] \cong \pi_{n-1}(U(k)); for oriented real bundles one gets [Sn−1,SO(k)]≅πn−1(SO(k))[S^{n-1}, SO(k)] \cong \pi_{n-1}(SO(k)) (for a connected topological group, free and based homotopy classes of maps from a sphere agree).

Bundles over a disc are trivial (the disc is contractible: Theorem 6 below), and homotopic clutching functions give isomorphic bundles (Hatcher, Vector Bundles and K-Theory, Proposition 1.11). Examples: real line bundles over S1S^1 correspond to π0(GL1(R))={±1}\pi_0(GL_1(\R)) = \{\pm 1\} — trivial and Möbius; complex line bundles over S2S^2 correspond to π1(U(1))=Z\pi_1(U(1)) = \Z, and the integer is the first Chern class; TS2TS^2 is clutched by a map of degree 22, matching χ(S2)=2\chi(S^2) = 2.

Theorem— Theorem 6 (classification)

Let BB be paracompact. (a) Homotopic maps f≃g:B′→Bf \simeq g : B' \to B pull back isomorphic bundles; so bundles over a contractible paracompact space are trivial. (b) The map [B,Grk(R∞)]→Vect⁡Rk(B)[B, \mathrm{Gr}_k(\R^\infty)] \to \operatorname{Vect}^k_\R(B), f↦f∗γkf \mapsto f^*\gamma_k, is a bijection, and likewise [B,BU(k)]≅Vect⁡Ck(B)[B, BU(k)] \cong \operatorname{Vect}^k_\C(B) with BU(k)=Grk(C∞)BU(k) = \mathrm{Gr}_k(\C^\infty).

See Milnor–Stasheff, Theorems 5.6 and 5.7, and Hatcher, VBKT, Theorem 1.16. Since RP∞=K(Z/2,1)\R P^\infty = K(\Z/2, 1) and CP∞=K(Z,2)\C P^\infty = K(\Z, 2) are Eilenberg–MacLane spaces (see homotopy theory), it follows that real line bundles over a CW complex correspond to H1(B;Z/2)H^1(B; \Z/2) and complex line bundles to H2(B;Z)H^2(B; \Z) — via the classes w1w_1 and c1c_1 defined next.

Definition— characteristic class

A characteristic class of rank-kk real bundles with coefficients in RR assigns to each bundle E→BE \to B a class c(E)∈H∙(B;R)c(E) \in H^\bullet(B; R) depending only on the isomorphism class of EE and natural under pullback: c(f∗E)=f∗c(E)c(f^*E) = f^* c(E). By Theorem 6 these are exactly the elements of H∙(BO(k);R)H^\bullet(BO(k); R) (evaluate on the tautological bundle); for complex bundles, of H∙(BU(k);R)H^\bullet(BU(k); R).

ProofH

Stiefel–Whitney, Chern, Euler and Pontryagin classes

Theorem— Theorem 7 (Stiefel–Whitney classes)

There are unique classes wi(E)∈Hi(B;Z/2)w_i(E) \in H^i(B; \Z/2), i≥0i \ge 0, for real vector bundles over paracompact spaces, such that: (1) w0=1w_0 = 1 and wi(E)=0w_i(E) = 0 for i>rank⁡Ei > \operatorname{rank} E; (2) naturality: wi(f∗E)=f∗wi(E)w_i(f^*E) = f^* w_i(E); (3) Whitney sum formula: w(E⊕E′)=w(E) w(E′)w(E \oplus E') = w(E)\, w(E') for the total class w=1+w1+w2+⋯w = 1 + w_1 + w_2 + \cdots; (4) normalisation: w1w_1 of the Möbius bundle over RP1\R P^1 is non-zero.

Existence and uniqueness are Milnor–Stasheff, §4 and §8: H∙(BO(k);Z/2)=Z/2[w1,…,wk]H^\bullet(BO(k); \Z/2) = \Z/2[w_1, \dots, w_k], and the classes can be built from the Thom isomorphism and Steenrod squares. Immediate consequences: a trivial bundle has w=1w = 1 (it is pulled back from a point), so w(E⊕εm)=w(E)w(E \oplus \varepsilon^m) = w(E); EE is orientable if and only if w1(E)=0w_1(E) = 0; if EE has mm everywhere independent sections then E≅E′⊕εmE \cong E' \oplus \varepsilon^m and wi(E)=0w_i(E) = 0 for i>k−mi > k - m. The tautological line bundle over RPn\R P^n has w(γ)=1+aw(\gamma) = 1 + a, where aa generates H1(RPn;Z/2)H^1(\R P^n; \Z/2) and H∙(RPn;Z/2)=Z/2[a]/(an+1)H^\bullet(\R P^n; \Z/2) = \Z/2[a]/(a^{n+1}).

Theorem— Theorem 8 (Stiefel–Whitney classes of projective space)

w(TRPn)=(1+a)n+1=∑i=0n(n+1i)aiw(T\R P^n) = (1 + a)^{n+1} = \sum_{i=0}^{n} \binom{n+1}{i} a^i. Consequently: (a) if RPn\R P^n is parallelisable, then n+1n + 1 is a power of 22; (b) if n=2rn = 2^r, then RPn\R P^n does not immerse in R2n−2\R^{2n-2}.

Proof

From TRPn⊕ε1≅(n+1)γT\R P^n \oplus \varepsilon^1 \cong (n+1)\gamma, the Whitney sum formula and w(ε1)=1w(\varepsilon^1) = 1 give w(TRPn)=w(γ)n+1=(1+a)n+1w(T\R P^n) = w(\gamma)^{n+1} = (1 + a)^{n+1}.

(a) If RPn\R P^n is parallelisable then w=1w = 1, so (n+1i)\binom{n+1}{i} is even for 1≤i≤n1 \le i \le n. Write n+1=2rmn + 1 = 2^r m with mm odd. In characteristic 22, (1+a)2r=1+a2r(1 + a)^{2^r} = 1 + a^{2^r}, so (1+a)n+1=(1+a2r)m=1+m a2r+⋯(1 + a)^{n+1} = (1 + a^{2^r})^m = 1 + m\, a^{2^r} + \cdots. If m>1m > 1 then 2r≤n2^r \le n, so the coefficient m≡1m \equiv 1 of a2ra^{2^r} is a non-zero class: contradiction. Hence m=1m = 1.

(b) If MnM^n immerses in Rn+k\R^{n+k}, its normal bundle ν\nu has rank kk and TM⊕ν≅εn+kTM \oplus \nu \cong \varepsilon^{n+k}, so w(ν)=w(TM)−1=:wˉ(M)w(\nu) = w(TM)^{-1} =: \bar w(M) and wˉi(M)=0\bar w_i(M) = 0 for i>ki > k (Whitney duality). For n=2rn = 2^r: (1+a)n+1=(1+a)(1+an)(1 + a)^{n+1} = (1 + a)(1 + a^n), so wˉ=(1+a)−1(1+an)−1=(∑i=0nai)(1+an)=∑i=0n−1ai\bar w = (1 + a)^{-1} (1 + a^n)^{-1} = \big( \sum_{i=0}^{n} a^i \big)(1 + a^n) = \sum_{i=0}^{n-1} a^i in Z/2[a]/(an+1)\Z/2[a]/(a^{n+1}). Thus wˉn−1≠0\bar w_{n-1} \neq 0, and an immersion into Rn+k\R^{n+k} needs k≥n−1k \ge n - 1.

∎

Whitney proved that every nn-manifold immerses in R2n−1\R^{2n-1} (for n≥2n \ge 2), so (b) is sharp. Bott–Milnor and Kervaire (1958) showed that only RP1\R P^1, RP3\R P^3 and RP7\R P^7 are parallelisable; the characteristic-class argument alone leaves RP15,RP31,…\R P^{15}, \R P^{31}, \dots undecided.

Theorem— Theorem 9 (Chern, Euler and Pontryagin classes)

(a) For complex bundles there are unique Chern classes ci(E)∈H2i(B;Z)c_i(E) \in H^{2i}(B; \Z) with the analogous axioms: c0=1c_0 = 1, ci=0c_i = 0 for i>rank⁡CEi > \operatorname{rank}_\C E, naturality, c(E⊕E′)=c(E)c(E′)c(E \oplus E') = c(E) c(E'), and c1c_1 of the tautological line bundle γ\gamma over CP1\C P^1 satisfying ⟨c1(γ),[CP1]⟩=−1\langle c_1(\gamma), [\C P^1] \rangle = -1 (with the standard orientation conventions). Then c(TCPn)=(1+x)n+1c(T\C P^n) = (1 + x)^{n+1}, where x=−c1(γ)x = -c_1(\gamma) generates H2(CPn;Z)H^2(\C P^n; \Z). (b) An oriented rank-kk real bundle has an Euler class e(E)∈Hk(B;Z)e(E) \in H^k(B; \Z), natural, multiplicative under Whitney sum, zero if EE has a nowhere-zero section, reducing mod 22 to wkw_k, and equal to ckc_k for the underlying real bundle of a complex rank-kk bundle. (c) The Pontryagin classes of a real bundle are pi(E)=(−1)ic2i(E⊗C)∈H4i(B;Z)p_i(E) = (-1)^i c_{2i}(E \otimes \C) \in H^{4i}(B; \Z).

See Milnor–Stasheff, §9, §14 and §15. The decisive link between the Euler class and the topology of a manifold is the Poincaré–Hopf theorem: for a closed oriented manifold, ⟨e(TM),[M]⟩=χ(M)\langle e(TM), [M] \rangle = \chi(M), and for a vector field with isolated zeros the sum of their indices is χ(M)\chi(M) (Milnor–Stasheff, Corollary 11.12). For instance ⟨cn(TCPn),[CPn]⟩=n+1=χ(CPn)\langle c_n(T\C P^n), [\C P^n] \rangle = n + 1 = \chi(\C P^n). Pontryagin numbers are oriented-cobordism invariants; Hirzebruch's signature theorem gives sign⁡(M4)=13⟨p1(TM),[M]⟩\operatorname{sign}(M^4) = \tfrac13 \langle p_1(TM), [M] \rangle, and Milnor (1956) used it to discover exotic smooth structures on S7S^7.

ExplanationH

Curvature computes characteristic classes

Let E→ME \to M be a smooth complex vector bundle with a connection ∇\nabla (a rule for differentiating sections along vector fields). In a local frame, ∇=d+A\nabla = d + A with AA a matrix of 11-forms, and the curvature F=dA+A∧AF = dA + A \wedge A is a matrix of 22-forms which transforms by conjugation, F↦g−1FgF \mapsto g^{-1} F g, under a change of frame. It satisfies the Bianchi identity dF=F∧A−A∧FdF = F \wedge A - A \wedge F.

Theorem— Theorem 10 (Chern–Weil)

For every polynomial PP on glk(C)\mathfrak{gl}_k(\C) invariant under conjugation, P(F)P(F) is a well-defined closed even-degree form on MM, and its de Rham class does not depend on the connection. The total Chern class is represented by

c(E)=[det⁡(I+i2πF)]∈H∙(M;R),c1(E)=[i2πtr⁡F].c(E) = \Big[ \det\Big( I + \frac{i}{2\pi} F \Big) \Big] \in H^\bullet(M; \R), \qquad c_1(E) = \Big[ \frac{i}{2\pi} \operatorname{tr} F \Big].

Why: invariance under conjugation makes P(F)P(F) independent of the frame. Closedness follows from the Bianchi identity, since d tr⁡(Fj)=j tr⁡(Fj−1(F∧A−A∧F))=0d\,\operatorname{tr}(F^j) = j\, \operatorname{tr}(F^{j-1}(F \wedge A - A \wedge F)) = 0 by cyclicity of the trace. For two connections ∇0,∇1\nabla_0, \nabla_1, the path ∇t=(1−t)∇0+t∇1\nabla_t = (1 - t)\nabla_0 + t\nabla_1 gives an explicit transgression form whose exterior derivative is P(F1)−P(F0)P(F_1) - P(F_0). That these de Rham classes are the images of the integral Chern classes is proved by checking the axioms (Milnor–Stasheff, Appendix C; Bott–Tu, §20 for the splitting principle).

Example— The Dirac monopole and the tautological bundle over the sphere

The tautological line bundle over CP1=S2\C P^1 = S^2, with the connection induced from C2\C^2, has curvature FF with i2π∫S2F=−1\frac{i}{2\pi} \int_{S^2} F = -1. In physics this is the magnetic monopole of unit charge: the connection is the vector potential, FF is the field strength, and the integrality of ∫c1\int c_1 is Dirac's quantisation condition. The integral of the curvature of any connection on this bundle is the same — a topological charge.

For an oriented Riemannian 2m2m-manifold with Levi-Civita connection and curvature matrix Ω\Omega in an oriented orthonormal frame, the Pfaffian Pf⁡(Ω)\operatorname{Pf}(\Omega) (the polynomial with Pf⁡(X)2=det⁡X\operatorname{Pf}(X)^2 = \det X on skew-symmetric matrices) is an invariant 2m2m-form representing (2π)me(TM)(2\pi)^m e(TM).

Theorem— Theorem 11 (Gauss–Bonnet–Chern; Allendoerfer–Weil 1943, Chern 1944)

For a closed oriented Riemannian manifold MM of even dimension n=2mn = 2m,

∫MPf⁡(Ω)=(2π)m χ(M).\int_M \operatorname{Pf}(\Omega) = (2\pi)^{m}\, \chi(M).

For n=2n = 2, Pf⁡(Ω)=Ω12=K dA\operatorname{Pf}(\Omega) = \Omega_{12} = K \, dA (with the usual sign conventions), and this is the Gauss–Bonnet theorem ∫MK dA=2πχ(M)\int_M K\, dA = 2\pi \chi(M).

Chern's intrinsic proof (1944) transgresses Pf⁡(Ω)\operatorname{Pf}(\Omega) on the unit sphere bundle and reduces the theorem to Poincaré–Hopf. In dimension two there is also an elementary argument, sketched here: assume the local Gauss–Bonnet formula α+β+γ−π=∫TK dA\alpha + \beta + \gamma - \pi = \int_T K\, dA for a geodesic triangle TT with angles α,β,γ\alpha, \beta, \gamma, and a triangulation of MM by FF geodesic triangles with EE edges and VV vertices. Summing over triangles, the angles around each vertex add up to 2π2\pi, so

∫MK dA=2πV−πF=2πV−2πE+2πF=2πχ(M),\int_M K \, dA = 2\pi V - \pi F = 2\pi V - 2\pi E + 2\pi F = 2\pi \chi(M),

using 3F=2E3F = 2E. Curvature integrates to an Euler characteristic.

Formal mathematicsF

Sections, frames and Stiefel–Whitney arithmetic in Lean

Mathlib has topological vector bundles (VectorBundle), with the trivial bundle, pullbacks, Whitney sums (fibrewise products E₁ ×ᵇ E₂) and the tangent bundle of a manifold as instances. We cite these to connect the lesson's definitions to the library:

trivial_bundleLean 4Applies a library theoremFormally verified
/-- The product `B × ℝᵏ`, as Mathlib's `Bundle.Trivial B F`, is a vector bundle. This applies
the instance `Bundle.Trivial.vectorBundle`. -/
theorem trivial_bundle (B F : Type*) [TopologicalSpace B] [NormedAddCommGroup F]
    [NormedSpace ℝ F] : VectorBundle ℝ F (Bundle.Trivial B F) :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
pullback_bundleLean 4Applies a library theoremFormally verified
/-- **Pullbacks.** If `E → B` is a vector bundle and `f : B' → B` is continuous, then `f*E → B'`
(fibre `E_{f(b')}` over `b'`) is a vector bundle. This applies Mathlib's instance
`VectorBundle.pullback`. Characteristic classes are, by definition, natural under pullback. -/
theorem pullback_bundle {B B' F : Type*} [TopologicalSpace B] [TopologicalSpace B']
    [NormedAddCommGroup F] [NormedSpace ℝ F] {E : B → Type*} [∀ x, AddCommMonoid (E x)]
    [∀ x, Module ℝ (E x)] [TopologicalSpace (TotalSpace F E)] [∀ x, TopologicalSpace (E x)]
    [FiberBundle F E] [VectorBundle ℝ F E] (f : C(B', B)) :
    VectorBundle ℝ F ((f : B' → B) *ᵖ E) :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
whitney_sumLean 4Applies a library theoremFormally verified
/-- **Whitney sum.** The fibrewise direct sum `E₁ ⊕ E₂` of two vector bundles over the same base
(Mathlib's `E₁ ×ᵇ E₂`) is a vector bundle. This applies Mathlib's instance `VectorBundle.prod`. -/
theorem whitney_sum {B F₁ F₂ : Type*} [TopologicalSpace B]
    [NormedAddCommGroup F₁] [NormedSpace ℝ F₁] [NormedAddCommGroup F₂] [NormedSpace ℝ F₂]
    {E₁ E₂ : B → Type*} [∀ x, AddCommMonoid (E₁ x)] [∀ x, Module ℝ (E₁ x)]
    [∀ x, AddCommMonoid (E₂ x)] [∀ x, Module ℝ (E₂ x)]
    [TopologicalSpace (TotalSpace F₁ E₁)] [TopologicalSpace (TotalSpace F₂ E₂)]
    [∀ x, TopologicalSpace (E₁ x)] [∀ x, TopologicalSpace (E₂ x)]
    [FiberBundle F₁ E₁] [FiberBundle F₂ E₂] [VectorBundle ℝ F₁ E₁] [VectorBundle ℝ F₂ E₂] :
    VectorBundle ℝ (F₁ × F₂) (E₁ ×ᵇ E₂) :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
tangent_bundleLean 4Applies a library theoremFormally verified
/-- **The tangent bundle** of a (once differentiable) manifold `M` modelled on a normed space `E`
is a vector bundle with fibre `E`. This applies Mathlib's instance `TangentSpace.vectorBundle`,
built from the derivatives of the chart transition maps — a cocycle of transition functions. -/
theorem tangent_bundle {E H M : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
    [TopologicalSpace H] (I : ModelWithCorners ℝ E H) [TopologicalSpace M] [ChartedSpace H M]
    [IsManifold I 1 M] : VectorBundle ℝ E (TangentSpace I : M → Type _) :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor

Theorem 2 is formalised independently in the form used in its proof: sections of the Möbius bundle are continuous antiperiodic functions. The identification of sections with such functions is the one step done on paper.

mobius_section_vanishesLean 4Proved here from basic factsFormally verified
/-- **Every section of the Möbius bundle vanishes somewhere.** The Möbius line bundle over
`S¹ = ℝ/ℤ` is the quotient of `ℝ × ℝ` by `(t, v) ~ (t + 1, -v)`, so its continuous sections are
the continuous functions with `s(t + 1) = -s(t)`. Then `s(0)` and `s(1) = -s(0)` have opposite
signs (or vanish), and the intermediate value theorem gives a zero in `[0, 1]`. -/
theorem mobius_section_vanishes (s : ℝ → ℝ) (hs : Continuous s) (anti : ∀ t, s (t + 1) = -s t) :
    ∃ t ∈ Set.Icc (0 : ℝ) 1, s t = 0 := by
  have h1 : s 1 = -s 0 := by simpa using anti 0
  rcases le_total (s 0) 0 with h0 | h0
  · -- `s 0 ≤ 0 ≤ s 1`
    exact intermediate_value_Icc zero_le_one hs.continuousOn ⟨h0, by linarith⟩
  · -- `s 1 ≤ 0 ≤ s 0`
    exact intermediate_value_Icc' zero_le_one hs.continuousOn ⟨by linarith, h0⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
mobius_not_trivialLean 4Proved here from basic factsFormally verified
/-- **The Möbius bundle is not trivial.** A trivial line bundle `S¹ × ℝ` has the nowhere-zero
section `t ↦ 1`; the Möbius bundle has no nowhere-zero section at all. (Contrast: the constant
function `1` is periodic, `s(t + 1) = s(t)`, i.e. a section of the trivial bundle.) -/
theorem mobius_not_trivial :
    ¬ ∃ s : ℝ → ℝ, Continuous s ∧ (∀ t, s (t + 1) = -s t) ∧ ∀ t, s t ≠ 0 := by
  rintro ⟨s, hs, anti, hne⟩
  obtain ⟨t, -, ht⟩ := mobius_section_vanishes s hs anti
  exact hne t ht
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor

Theorem 3 is formalised by explicit computation: the field iziz on odd spheres, and the quaternionic frame on S3S^3 written in coordinates, with all nine orthogonality and length relations checked.

reInnerLean 4Formally verified
/-- The real (Euclidean) inner product on `ℂⁿ = ℝ²ⁿ`: `⟨z, w⟩ = Σₖ Re(z̄ₖ wₖ)`. -/
def reInner {n : ℕ} (z w : Fin n → ℂ) : ℝ :=
  ∑ k, (conj (z k) * w k).re
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
odd_sphere_vector_fieldLean 4Proved here from basic factsFormally verified
/-- **Odd-dimensional spheres can be combed.** On `S²ⁿ⁻¹ ⊂ ℂⁿ` the field `v(z) = i z` is tangent
(`⟨z, i z⟩ = 0`) and has the same length as `z`, so it never vanishes on the sphere. In real
coordinates it is `(x₁, y₁, …) ↦ (-y₁, x₁, …)`. -/
theorem odd_sphere_vector_field {n : ℕ} (z : Fin n → ℂ) :
    reInner z (fun k => Complex.I * z k) = 0 ∧
      reInner (fun k => Complex.I * z k) (fun k => Complex.I * z k) = reInner z z := by
  constructor
  · -- each term `Re(z̄ · i z) = Re(i |z|²)` is zero
    apply Finset.sum_eq_zero
    intro k _
    simp only [Complex.mul_re, Complex.conj_re, Complex.conj_im, Complex.mul_im, Complex.I_re,
      Complex.I_im]
    ring
  · -- `|i z| = |z|` term by term
    apply Finset.sum_congr rfl
    intro k _
    simp only [map_mul, Complex.conj_I, Complex.mul_re, Complex.conj_re, Complex.conj_im,
      Complex.mul_im, Complex.I_re, Complex.I_im, Complex.neg_re, Complex.neg_im]
    ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
dot4Lean 4Formally verified
/-- The dot product on `ℝ⁴`. -/
def dot4 (x y : Fin 4 → ℝ) : ℝ := ∑ i, x i * y i
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
frameILean 4Formally verified
/-- Three vector fields on `ℝ⁴`: left multiplication of `x = x₀ + x₁ i + x₂ j + x₃ k` by the
quaternion units `i`, `j`, `k`. -/
def frameI (x : Fin 4 → ℝ) : Fin 4 → ℝ := ![-x 1, x 0, -x 3, x 2]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
frameJLean 4Formally verified
/-- Left multiplication by `j`. -/
def frameJ (x : Fin 4 → ℝ) : Fin 4 → ℝ := ![-x 2, x 3, x 0, -x 1]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
frameKLean 4Formally verified
/-- Left multiplication by `k`. -/
def frameK (x : Fin 4 → ℝ) : Fin 4 → ℝ := ![-x 3, -x 2, x 1, x 0]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
s3_parallelizableLean 4Proved here from basic factsFormally verified
/-- **`S³` is parallelisable.** At every point `x` the vectors `i x`, `j x`, `k x` are tangent to
the sphere through `x` (orthogonal to `x`), pairwise orthogonal, and as long as `x`; on the unit
sphere they form an orthonormal basis of the tangent space, so `TS³ ≅ S³ × ℝ³`. -/
theorem s3_parallelizable (x : Fin 4 → ℝ) :
    dot4 x (frameI x) = 0 ∧ dot4 x (frameJ x) = 0 ∧ dot4 x (frameK x) = 0 ∧
    dot4 (frameI x) (frameJ x) = 0 ∧ dot4 (frameI x) (frameK x) = 0 ∧
    dot4 (frameJ x) (frameK x) = 0 ∧
    dot4 (frameI x) (frameI x) = dot4 x x ∧ dot4 (frameJ x) (frameJ x) = dot4 x x ∧
    dot4 (frameK x) (frameK x) = dot4 x x := by
  refine ⟨?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ <;>
    simp [dot4, frameI, frameJ, frameK, Fin.sum_univ_four] <;> ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor

Finally, the polynomial arithmetic in the proof of Theorem 8 happens in Z/2[a]\Z/2[a]: the Frobenius identity (1+a)2k=1+a2k(1 + a)^{2^k} = 1 + a^{2^k} (from Mathlib) and the computation w(TRP2)=1+a+a2w(T\R P^2) = 1 + a + a^2.

frobenius_twoLean 4Applies a library theoremFormally verified
/-- In characteristic two, `(1 + a)^(2^k) = 1 + a^(2^k)`. Since `w(TℝPⁿ) = (1 + a)ⁿ⁺¹` with
`aⁿ⁺¹ = 0`, this shows `w(TℝPⁿ) = 1` when `n + 1 = 2^k` (e.g. `ℝP³`, `ℝP⁷`). This applies
Mathlib's `add_pow_char_pow`. -/
theorem frobenius_two (k : ℕ) : ((1 + X) ^ (2 ^ k) : (ZMod 2)[X]) = 1 + X ^ (2 ^ k) := by
  simpa using add_pow_char_pow (1 : (ZMod 2)[X]) X (p := 2) (n := k)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor
sw_rp2Lean 4Proved here from basic factsFormally verified
/-- The total Stiefel–Whitney class of `ℝP²` is `(1 + a)³ = 1 + a + a² + a³ = 1 + a + a²` in
`H*(ℝP²; ℤ/2) = ℤ/2[a]/(a³)`. As a polynomial identity mod 2: squaring is additive, so
`(1 + a)³ = (1 + a²)(1 + a)`. Since `w₁ = a ≠ 0`, `ℝP²` is non-orientable, and since `w₂ = a² ≠ 0`
its tangent bundle is not trivial. -/
theorem sw_rp2 : ((1 + X) ^ 3 : (ZMod 2)[X]) = 1 + X + X ^ 2 + X ^ 3 := by
  have hsq : ((1 + X) ^ 2 : (ZMod 2)[X]) = 1 + X ^ 2 := by
    simpa using add_pow_char (1 : (ZMod 2)[X]) X (p := 2)
  rw [pow_succ, hsq]
  ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/VectorBundlesCharacteristicClasses.leanTry it in the Lean web editor

What is and is not formalised. Formalised independently: the vanishing of Möbius sections and hence the absence of a nowhere-zero one; the tangent field on odd spheres; the orthonormal frame on S3S^3; and the mod-22 arithmetic of Theorem 8 for RP2\R P^2. From Mathlib: vector bundle structures on trivial bundles, pullbacks, Whitney sums and tangent bundles. Not formalised: Proposition 1 as a statement about Mathlib's bundles, the identification of the abstract Möbius bundle's sections with antiperiodic functions, the hairy ball theorem (Mathlib has no degree theory for spheres yet), clutching and classification, characteristic classes themselves (Mathlib does not yet have the cohomology ring needed to define them), Chern–Weil theory and Gauss–Bonnet–Chern.

ComputationC

Stiefel–Whitney classes by machine

Theorem 8 turns questions about projective spaces into arithmetic in Z/2[a]/(an+1)\Z/2[a]/(a^{n+1}). The experiment expands (1+a)n+1(1 + a)^{n+1} for n≤16n \le 16, inverts it to get the dual classes wˉ\bar w, and reads off the consequences.

Stiefel-Whitney classes of projective spacesPythonExact computationExhaustive finite checkComputationally tested
"""Stiefel-Whitney classes of real projective spaces, computed exactly mod 2.

The cohomology ring is H*(RP^n; Z/2) = Z/2[a]/(a^(n+1)), and the tangent bundle
has total Stiefel-Whitney class w = (1 + a)^(n+1) (a theorem in the lesson). We
expand this polynomial mod 2, read off which classes are nonzero, and invert it
to get the dual classes w-bar with w * w-bar = 1. Consequences: if w is not 1,
RP^n is not parallelisable; if w-bar_k is nonzero, RP^n does not immerse in
R^(n+k-1) (Whitney duality). Exact arithmetic in a finite ring; the topology
enters only through the two theorems the computation takes as input.
"""

from math import comb

def total_sw(n):
    """Coefficients mod 2 of (1 + a)^(n+1), truncated at degree n."""
    return [comb(n + 1, i) % 2 for i in range(n + 1)]

def multiply(p, q, n):
    """Product of two polynomials mod 2, truncated at degree n."""
    r = [0] * (n + 1)
    for i, x in enumerate(p):
        if x:
            for j, y in enumerate(q[: n + 1 - i]):
                r[i + j] ^= y
    return r

def inverse(p, n):
    """Inverse of a polynomial with constant term 1 in Z/2[a]/(a^(n+1))."""
    inv = [1] + [0] * n
    for k in range(1, n + 1):
        inv[k] = sum(p[i] * inv[k - i] for i in range(1, k + 1)) % 2
    return inv

def nonzero_degrees(p):
    """Degrees of the nonzero coefficients, excluding degree 0."""
    return [i for i, x in enumerate(p) if x and i > 0]

def ranges(degrees):
    """Compress [1, 2, 3, 8] to '1-3,8'."""
    parts, start = [], None
    for i, d in enumerate(degrees):
        if start is None:
            start = d
        if i + 1 == len(degrees) or degrees[i + 1] != d + 1:
            parts.append(str(start) if start == d else f"{start}-{d}")
            start = None
    return ",".join(parts) or "-"

def immersion_bound(n):
    """Largest k with w-bar_k nonzero: RP^n does not immerse in R^(n+k-1)."""
    dual = inverse(total_sw(n), n)
    return max(nonzero_degrees(dual), default=0)

def main():
    print("w(T RP^n) = (1 + a)^(n+1) in Z/2[a]/(a^(n+1)), and its inverse w-bar")
    print()
    print(f"{'n':>3}  {'nonzero w_i':<22}{'w = 1?':<8}{'top w-bar':<11}"
          f"no immersion in")
    for n in range(1, 17):
        w = total_sw(n)
        dual = inverse(w, n)
        assert multiply(w, dual, n) == [1] + [0] * n
        assert w[n] == (n + 1) % 2  # w_n = Euler characteristic mod 2
        degs = nonzero_degrees(w)
        shown = ranges(degs)
        k = immersion_bound(n)
        bound = f"R^{n + k - 1}" if k > 1 else "-"
        print(f"{n:>3}  {shown:<22}{'yes' if not degs else 'no':<8}"
              f"{k:<11}{bound}")
    print()
    print("w = 1 exactly when n + 1 is a power of 2 (n = 1, 3, 7, 15): only")
    print("those RP^n can be parallelisable, and RP^1, RP^3, RP^7 are. For")
    print("n = 2^r the top dual class is w-bar_(n-1), so RP^(2^r) does not")
    print("immerse in R^(2n-2): Whitney's bound 2n - 1 is sharp.")
    print()
    print("Epistemic status: exact computation in Z/2[a]/(a^(n+1)) for n <= 16.")
    print("It takes as given the theorem w(T RP^n) = (1 + a)^(n+1) and Whitney")
    print("duality; parallelisability of RP^15 is NOT implied (it is false:")
    print("by Adams, only RP^1, RP^3 and RP^7 are parallelisable).")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

The computation is exact, but it is only as strong as its two inputs, the formula w(TRPn)=(1+a)n+1w(T\R P^n) = (1 + a)^{n+1} and Whitney duality. It shows which projective spaces might be parallelisable (n=1,3,7,15,…n = 1, 3, 7, 15, \dots); it cannot show that one is. That RP15\R P^{15} is not parallelisable needs the deeper methods of Bott–Milnor–Kervaire or Adams.

Explore

Explore: curvature and indices

Local Gauss–Bonnet on the sphere: drag the vertices of a geodesic triangle and compare the angle excess with the area. Summing exactly this identity over a triangulation is the proof sketch of Theorem 11 in dimension two.

Triangles on curved surfaces

Angle sum − π = K · area: the building block of Gauss–Bonnet.

80.6°66.6°64.7°ABC

Drag a corner to move it; drag anywhere else to turn the sphere. The sides are arcs of great circles — the shortest paths on a sphere.

  • ∠A80.6°
  • ∠B66.6°
  • ∠C64.7°

∠A + ∠B + ∠C = 212.0°

Angle excess (sum − 180°)
32.0° = 0.558 rad
Area, measured numerically
0.558 R²
Share of the whole sphere (area ÷ 4πR²)
4.44 %

∠A + ∠B + ∠C − π = Area / R²On a sphere of radius R, the excess in radians equals the area divided by R². The area is computed separately, by numerical integration, so the match is a check rather than an assumption.

∠A + ∠B + ∠C − π = K · Area

Flat planeK = 0∠A+∠B+∠C = 180°
SphereK = 1/R²∠A+∠B+∠C > 180°
Hyperbolic planeK = −1∠A+∠B+∠C < 180°

This is a first glimpse of the Gauss–Bonnet theorem: for a triangle whose sides are geodesics (shortest paths), the angle sum minus π equals the total curvature inside it. Here the curvature K is the same everywhere; on other surfaces you add up (integrate) K over the area.

The index of a vector field around a loop counts how many times the arrow turns. The field (x2−y2,2xy)(x^2 - y^2, 2xy), i.e. z↦z2z \mapsto z^2, has a single zero of index 22. Extended to the Riemann sphere as the vector field z2 ∂/∂zz^2 \, \partial/\partial z, it has no other zero (in the coordinate u=1/zu = 1/z it becomes −∂/∂u-\partial/\partial u), so its indices add up to 2=χ(S2)2 = \chi(S^2), as Poincaré–Hopf predicts. Try the source, sink and saddle presets too: indices 11, 11 and −1-1.

A single zero of index 2

Drag the loop around the origin and watch the index.

Examples

F(x, y) = (x² − y², 2·x·y)

Drag the gold centre (or click anywhere) to move the loop. With the keyboard, focus the centre and use the arrow keys.

Turns so far: 0.19

Circulation
∮ F·dr ≈ 3.6191 | ∬ curl F dA ≈ 3.6191
Flux out
∮ F·n ds ≈ 5.4287 | ∬ div F dA ≈ 5.4287
At the centre
curl F ≈ 0.8, div F ≈ 1.2, πr² ≈ 4.524
Index
2

All values are numerical approximations (sums around the loop and over the disc).

Green’s theorem checks out: circulation = total curl inside, and flux = total divergence inside (up to numerical error).

Index 2 ≠ 0: walking once around the loop, the arrow makes 2 net full turns (negative means clockwise). A non-zero index forces the field to vanish somewhere inside the loop.

Exercises

Exercises

1. Vector bundles and characteristic classes

Warm-upHuman

Which of these vector bundles are trivial? (Select all that apply.)

Choose all that apply

2. Vector bundles and characteristic classes

Warm-upHuman

For any Riemannian metric on the closed orientable surface of genus 22, what is 12π∫MK dA\frac{1}{2\pi} \int_M K \, dA?

3. Vector bundles and characteristic classes

CoreHuman

A tangent vector field on S2S^2 has exactly two zeros. One of them is a saddle, of index −1-1. What is the index of the other zero?

4. Vector bundles and characteristic classes

CoreHuman

In the proof of the hairy ball theorem, H(x,t)=cos⁡(πt) x+sin⁡(πt) v(x)H(x, t) = \cos(\pi t)\, x + \sin(\pi t)\, v(x). Which property of vv guarantees that H(x,t)H(x, t) stays on the sphere?

Choose one

5. Vector bundles and characteristic classes

CoreHuman

S5⊂C3S^5 \subset \C^3 has the nowhere-zero tangent field v(z)=izv(z) = iz. What can we conclude about TS5TS^5?

Choose one

6. Vector bundles and characteristic classes

CoreHuman

What is the smallest n≥2n \ge 2 for which w(TRPn)=1w(T\R P^n) = 1?

7. Vector bundles and characteristic classes

StretchHuman

The dual Stiefel–Whitney class of RP4\R P^4 is wˉ=1+a+a2+a3\bar w = 1 + a + a^2 + a^3. What does this prove, by Whitney duality?

Choose one

8. Vector bundles and characteristic classes

CoreFormal

Sections of the Möbius bundle are modelled as continuous s : ℝ → ℝ with s (t + 1) = -s t. Which Lean statement says the Möbius bundle has no nowhere-zero section?

Choose one

9. Vector bundles and characteristic classes

CoreComputational

Write sw_nonzero(n) returning the sorted list of degrees ii with 1≤i≤n1 \le i \le n for which wi(TRPn)=(n+1i) mod 2w_i(T\R P^n) = \binom{n+1}{i} \bmod 2 is non-zero.

Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Common misconceptionsH

Common misconceptions

Misconception

"If every piece looks like a product, the bundle is a product." Local triviality never implies global triviality: the Möbius band is a product over every proper arc of the circle, and TS2TS^2 is trivial over each hemisphere. The twisting lives in how the pieces are glued, which is exactly what transition functions and characteristic classes record.

Misconception

"The tangent bundle of a round sphere is trivial, because the sphere is so symmetric." TSnTS^n is trivial only for n=0,1,3,7n = 0, 1, 3, 7. For even nn there is not even a nowhere-zero vector field (Theorem 4); for odd n≠1,3,7n \ne 1, 3, 7 there is one, but not a full frame. Symmetry gives stable triviality (TSn⊕ε1≅εn+1TS^n \oplus \varepsilon^1 \cong \varepsilon^{n+1}), not triviality.

Misconception

"A nowhere-zero section makes a bundle trivial." Only for line bundles. TS5TS^5 has a nowhere-zero section iziz but is not trivial. For rank kk one needs kk independent sections (Proposition 1).

Misconception

"Orientable bundles are trivial." Orientability is the vanishing of w1w_1 only. TS2TS^2 is orientable but not trivial (e(TS2)=2≠0e(TS^2) = 2 \ne 0), and the tautological complex line bundle over CP1\C P^1 is orientable (every complex bundle is) with c1≠0c_1 \ne 0.

Misconception

"Curvature is local, so its integral cannot know the global shape." Chern–Weil says the opposite: the cohomology class of a curvature form is independent of the connection, so integrals such as ∫K dA\int K\, dA or ∫c1\int c_1 are topological invariants, however the metric or connection is deformed.

ViewpointsH

Viewpoints

Geometry— Curvature, connections and holonomy

A connection lets one parallel-transport vectors along curves; transporting around a small loop rotates a vector by approximately the curvature times the enclosed area, and around a geodesic triangle on the unit sphere by its angle excess. Chern–Weil theory turns this local holonomy into global invariants: c1c_1 is the integral of the curvature of a line bundle, the Euler class is the Pfaffian of the Riemann curvature, and Pontryagin forms appear in Hirzebruch's signature formula. Flat bundles (F=0F = 0) have vanishing real characteristic classes but can still be non-trivial, detected by their holonomy representation of π1\pi_1.

Topology— Classifying spaces and K-theory

By Theorem 6, bundles are homotopy theory: maps into BO(k)BO(k) or BU(k)BU(k), and characteristic classes are the cohomology of these spaces, H∙(BU(k);Z)=Z[c1,…,ck]H^\bullet(BU(k); \Z) = \Z[c_1, \dots, c_k]. Forming formal differences of bundles gives topological K-theory, the first generalised cohomology theory; Bott periodicity K~(Sn+2)≅K~(Sn)\tilde K(S^{n+2}) \cong \tilde K(S^n) comes from πn(U)≅πn+2(U)\pi_{n}(U) \cong \pi_{n+2}(U), and Adams used K-theory and its operations to settle the vector fields problem on spheres. See stable homotopy theory.

Algebra— Modules of sections

The Serre–Swan theorem says that for a compact Hausdorff space XX, taking global sections gives an equivalence between vector bundles over XX and finitely generated projective modules over the ring C(X)C(X); trivial bundles correspond to free modules, and TS2⊕ε1≅ε3TS^2 \oplus \varepsilon^1 \cong \varepsilon^3 becomes a projective module that is stably free but not free. In algebraic geometry, vector bundles are locally free sheaves, line bundles form the Picard group H1(X,OX×)H^1(X, \mathcal{O}_X^\times), and c1c_1 is the connecting map of the exponential sequence — see sheaves.

Analysis— The index theorem

The Gauss–Bonnet–Chern theorem is the first case of the Atiyah–Singer index theorem (1963): the analytic index of an elliptic operator on a closed manifold (dimension of its kernel minus that of its cokernel) equals a topological expression in characteristic classes. For the operator d+d∗d + d^* from even to odd forms, the index is χ(M)\chi(M) and the formula is Gauss–Bonnet–Chern; for the signature operator it is Hirzebruch's signature theorem; for the Dolbeault operator it is Hirzebruch–Riemann–Roch.

Physics— Gauge fields are connections

In gauge theory a field such as the electromagnetic potential is a connection on a principal bundle, its curvature is the field strength, and gauge transformations are changes of local trivialisation. Characteristic numbers are topological charges: ∫c1\int c_1 is the magnetic charge of a monopole (Dirac, 1931), and ∫c2\int c_2 over S4S^4 is the instanton number of a Yang–Mills field. The Aharonov–Bohm effect shows physically that a flat connection can have non-trivial holonomy. These correspondences are dictionaries between mathematical theorems and physical models, not derivations of physics — see gauge theory.

Number theory— Bernoulli numbers in topology

Hirzebruch's LL-polynomials and A^\hat A-polynomials, which express the signature and the index of the Dirac operator in Pontryagin classes, have coefficients built from Bernoulli numbers, so integrality theorems become divisibility statements: the A^\hat A-genus of a spin manifold is an integer. The J-homomorphism sends π4k−1(SO)\pi_{4k-1}(SO), which classifies vector bundles over spheres, into the stable homotopy groups of spheres, and its image is cyclic of order the denominator of B2k/4kB_{2k}/4k (Adams, with the Adams conjecture proved by Quillen and by Sullivan): for k=1,2k = 1, 2 this gives 2424 and 240240, the orders of π3s\pi_3^s and π7s\pi_7^s.

History & global context

History and global context

  • Vector fields. Henri Poincaré (1885) proved that the indices of a vector field on a closed surface sum to its Euler characteristic, so the sphere cannot be combed; L. E. J. Brouwer (1912) proved the hairy ball theorem in all even dimensions; Heinz Hopf (1926) proved the general Poincaré–Hopf theorem.
  • The first characteristic classes. Eduard Stiefel, in his 1935 Zürich thesis on independent vector fields, and Hassler Whitney, in work on sphere bundles (1935–37), introduced what are now Stiefel–Whitney classes; Whitney proved the sum formula and duality theorem. Lev Pontryagin defined his classes in the 1940s.
  • Chern. Shiing-Shen Chern, born in Jiaxing, China, studied at Nankai and Tsinghua universities and then in Hamburg and in Paris with Élie Cartan. At the Institute for Advanced Study in 1943–44 he gave an intrinsic proof of the higher-dimensional Gauss–Bonnet theorem, after Carl Allendoerfer and André Weil's proof via embeddings (1943), and in 1946 he introduced Chern classes using curvature. He was acting director of the Institute of Mathematics of Academia Sinica (founded 1946–47), and later the founding director of the Mathematical Sciences Research Institute in Berkeley (1981) and of the Nankai Institute of Mathematics in Tianjin (1985). The Chern–Weil homomorphism was developed by Chern and Weil in the late 1940s.
  • Fibre bundles as a theory. Norman Steenrod's The Topology of Fibre Bundles (1951) set out classification and obstruction theory; Friedrich Hirzebruch's signature and Riemann–Roch theorems (1954) and John Milnor's exotic 77-spheres (1956) showed the power of characteristic numbers.
  • K-theory and index theory. Michael Atiyah and Friedrich Hirzebruch created topological K-theory (1959–61) from Raoul Bott's periodicity theorem (1957–59); J. F. Adams solved the vector fields problem on spheres (1962); Atiyah and Isadore Singer announced the index theorem in 1963. Milnor and James Stasheff's lecture notes, published in 1974, became the standard text.
Further reading

Further reading

  • John Milnor and James D. Stasheff, Characteristic Classes (1974) — the classic; §1–9 and §14–15 cover this lesson, Appendix C Chern–Weil theory.
  • Raoul Bott and Loring W. Tu, Differential Forms in Algebraic Topology (1982) — Thom isomorphism, Euler class, splitting principle and Chern classes via forms.
  • Allen Hatcher, Vector Bundles and K-Theory (book in progress, versions since 2003) — clutching, classification and K-theory with many pictures.
  • Dale Husemoller, Fibre Bundles (1966) and Norman Steenrod, The Topology of Fibre Bundles (1951).
  • Ib Madsen and Jørgen Tornehave, From Calculus to Cohomology (1997) — de Rham cohomology to Chern–Weil and Gauss–Bonnet at an advanced-undergraduate pace.
  • Shiing-Shen Chern, "A simple intrinsic proof of the Gauss–Bonnet formula for closed Riemannian manifolds", Annals of Mathematics 45 (1944).
  • Mikio Nakahara, Geometry, Topology and Physics (1990; 2nd ed. 2003) — bundles, connections and characteristic classes for physicists.

Reading path: Milnor–Stasheff §1–8 alongside this lesson, Bott–Tu for the de Rham side, then Hatcher's K-theory notes or gauge theory.