The problem: fibers that cannot talk to each other
In the previous guide you built a vector bundle E -> M by gluing trivial pieces U x R^k together with transition functions, and you met its principal cousin, the principal bundle P -> M with a structure group G acting on the fibers. Now ask a deceptively simple question: given a section s of E — a smoothly varying choice of vector s(p) in the fiber E_p over each point p in M — how do you differentiate it? You want to know how s changes as you move from p in a direction X. But s(p) lives in E_p and s(p + epsilon X) lives in a different fiber E_{p+epsilon X}, and there is no built-in way to subtract a vector in one fiber from a vector in another.
On flat R^n this problem hides, because every tangent space is canonically the same R^n, so "the vector at q minus the vector at p" is just ordinary subtraction. That canonical identification is a privilege of flatness, and it is exactly what a general bundle lacks. The naive recipe — pick a local trivialization, write s as a column of functions, differentiate componentwise — does produce a number, but a useless one: change the trivialization (the gluing chart) and the answer changes, because the derivative picks up a term from how the frame itself twists. A genuine derivative must not depend on the chart. Supplying the missing rule for comparing nearby fibers is the entire job of a connection.
What a connection actually is: splitting the tangent space
Here is the cleanest geometric picture, best seen on the total space of a fiber bundle. Stand at a point in the total space E and look at its tangent space there. Some tangent directions point along the fiber — staying over the same base point p; these form the vertical subspace, and they are canonical, since the projection E -> M kills exactly them. What is missing is a notion of moving "horizontally," across to neighboring fibers without drifting up or down the fiber. A connection is precisely a choice, at every point and varying smoothly, of a complementary horizontal subspace so that the tangent space splits as vertical plus horizontal.
That single choice does all the work. Because the projection identifies each horizontal subspace isomorphically with the tangent space T_p M of the base, a tangent direction X downstairs lifts uniquely to a horizontal vector upstairs — its horizontal lift. Follow that lift and you are moving across fibers in the one way the connection deems "straight." There is nothing forced about this splitting: a plain bundle admits many different horizontal distributions, and choosing one is genuinely adding structure, just as choosing a Riemannian metric adds structure to a bare manifold. Two honest people can put different connections on the same bundle and both be right.
The covariant derivative and its honest formula
On a vector bundle the connection reappears as an operator that finally lets you differentiate sections. The covariant derivative nabla takes a tangent direction X on M and a section s of E and returns another section nabla_X s, the rate of change of s along X measured against the connection's notion of "staying horizontal." It is R-linear and tensorial in X — nabla_{fX} s = f nabla_X s — but in s it obeys a Leibniz rule with the ordinary derivative of the coefficient: nabla_X (f s) = (X f) s + f nabla_X s. That Leibniz term is what makes nabla a derivative rather than a tensor, and it is the same shape you saw for the Levi-Civita connection on the tangent bundle.
To compute, fix a local frame: smooth sections e_1, ..., e_k that form a basis of each fiber over an open set U. The connection is pinned down entirely by what it does to the frame, and nabla e_j must again be a section, so it expands as nabla e_j = sum over i of omega^i_j tensor e_i, where the omega^i_j are ordinary 1-forms on U. This matrix of 1-forms, omega = (omega^i_j), is the connection matrix (the local face of the connection form). Now write any section as s = sum of s^i e_i; the Leibniz rule does the rest.
Local frame e_1,...,e_k on U, connection matrix of 1-forms omega^i_j
nabla e_j = sum_i omega^i_j (.) e_i (defines the connection on U)
For a section s = sum_j s^j e_j and direction X:
nabla_X s = sum_i ( X(s^i) + sum_j omega^i_j(X) s^j ) e_i
\_______/ \___________________/
ordinary correction term
derivative from the connection
For the tangent bundle with a frame e_j = d/dx^j :
omega^i_j = Gamma^i_{jk} dx^k (Christoffel symbols are the components)Two warnings the formula makes honest. First, omega is not a tensor: under a change of frame by a matrix-valued function it transforms with an inhomogeneous term, exactly the term that cancels the chart-dependence of the naive derivative so that nabla_X s itself is a well-defined section. Second, conventions for index placement and signs differ wildly between books — some write the correction with a minus, some put the frame index up, some bundle the dx^k differently. Fix one convention, state it, and expect other sources to disagree, exactly as you were warned for curvature signs.
Parallel transport: carrying a vector without turning it
The covariant derivative immediately answers the original question — how to move a vector from one fiber to another. A section s is parallel along a curve gamma(t) if its covariant derivative in the direction of the curve vanishes: nabla_{gamma'(t)} s = 0 at every t. This is the bundle's honest version of "not changing." Given a starting vector v in the fiber over gamma(0), the equation nabla_{gamma'} s = 0 is a first-order linear ordinary differential equation along the curve, so by existence-uniqueness it has exactly one solution with s(0) = v. Carrying v to s(1) is parallel transport along gamma.
Parallel transport is the horizontal lift seen from below: the parallel section is exactly the curve in E whose velocity is always horizontal, never drifting along the fiber. It gives a linear isomorphism from the fiber over gamma(0) to the fiber over gamma(1), the long-sought way to compare distant fibers — but with a crucial honesty: the isomorphism depends on the path, not just its endpoints. Transport the same vector along two different curves between the same two points and you can land on two different vectors. That path-dependence is not a defect; it is the seed of curvature and the next guide's subject.
A worked transport on the sphere
Let us make the picture concrete with the simplest loop. Take S^2 of radius 1. Start at the north pole, but to keep the vector visible work near it; instead, run the standard equator-and-meridians triangle: from the north pole N go down the meridian at longitude 0 to the equator, walk a quarter of the way around the equator to longitude 90 degrees, then go back up the meridian to N. The three arcs are all geodesics, so along each arc "parallel" means "keep a constant angle with the direction of travel."
- Start at N with a vector v that points along the longitude-0 meridian (the direction you are about to travel). Going down a geodesic, parallel transport keeps v tangent to that meridian, so at the equator v still points due south.
- Now turn and walk east along the equator. v made a 90-degree angle with the equator at the corner, and along this geodesic that angle is preserved, so the whole quarter-arc v keeps pointing due south — it does not swing to follow you.
- At longitude 90 turn north and climb the meridian back to N. The transported vector, still pointing south, now lies along this second meridian, and parallel transport up the geodesic keeps it so. It arrives at N pointing back down the longitude-90 meridian.
- Compare start and finish: the meridian at longitude 0 and the meridian at longitude 90 meet at N at a 90-degree angle, so the returned vector is rotated by exactly 90 degrees — pi/2 radians — from where it began.
The triangle bounds one-eighth of the sphere, an area of (1/8)(4 pi) = pi/2, and on the unit sphere the holonomy rotation equals the enclosed area: pi/2, matching what we just traced by hand. Notice what did the work: at no instant did we "rotate" the vector — each leg was a faithful parallel transport along a geodesic — yet the round trip produced a real rotation. This is the cleanest possible demonstration that the connection on a curved bundle has no path-independent comparison of fibers, and it sets up the next guide exactly, where the infinitesimal version of this loop defect becomes the curvature.
What this unlocks next
You now own the missing structure: a connection, in any of its three faces — a horizontal splitting on the total space, a connection form on a principal bundle, or a covariant derivative with its connection matrix on a vector bundle. From it you can differentiate sections, transport vectors along curves, and decide what "parallel" means. The single phenomenon left unexplained is the path-dependence of transport — the fact that going around a loop need not return you to where you started.
The next guide turns that loop defect into a tensor. Measuring the failure of transport around an infinitesimal parallelogram gives the curvature, the obstruction to the connection being locally flat; its global integral is the holonomy you just saw on the sphere. We will write curvature as the connection form's own derivative corrected by its self-bracket, meet the Bianchi identity that it automatically satisfies, and so set the stage for Chern-Weil theory, where these curvature 2-forms are fed into invariant polynomials to manufacture the characteristic classes that close out this rung.