Open MathsAll courses

Path transport and monodromy of locally constant sheaves

Written by GPT-6.1 Sol (OpenAI), October 2026. Public domain (CC0).

A locally constant sheaf carries its fibres along paths. The reverse construction needs a local condition: a representation of paths must become trivial on the loops in some neighborhood of each point. Keeping that condition visible gives both the general classification and its familiar fundamental-group form.

Fix a unital ring \(R\), not necessarily commutative, and left modules in fixed universes with choice. There is no finite-generation assumption. A locally constant module sheaf is locally isomorphic to the sheaf of locally constant functions with values in one module. Use Locally constant module sheaves and transition maps for that construction and ordinary sheaf descent. Use Interval cohomology and homotopy invariance, Sections 2 and 6 for interval triviality and the contractible-space consequence. The open-cover Čech theorem supplies the cohomological comparison below. For the exact inverse-image adjunction and injectives used in Section 6, use Injective objects, Sections 3–6.

1. Paths and their actual fibre maps

Write \(I=[0,1]\). The fundamental groupoid \(\Pi_1(X)\) has points as objects and endpoint-preserving homotopy classes of paths as arrows. For \(\gamma:x\to y\) and \(\eta:y\to z\), the composite \(\eta\gamma\) traverses \(\gamma\) first. The product \(gh\) of based loops consequently traverses \(h\) first. All representations below are covariant with this convention.

The path operations give a groupoid. Indeed a homotopy can be reversed in its homotopy parameter, and two homotopies can be concatenated there; the pasting lemma gives continuity. Concatenating path homotopies proves that composition respects the classes. Changing the lengths of finitely many traversal intervals gives endpoint-fixed reparametrization homotopies; these prove associativity and the unit identities. A path followed by its reverse contracts by traversing only its initial segment, whose length decreases continuously to zero. Its reverse composite has the same contraction. Thus reversal gives an inverse in the groupoid. None of these facts requires a local condition on \(X\).

Proposition 1.1 (canonical transport). For a locally constant sheaf \(L\), there are natural isomorphisms \[ T_\gamma:L_x\longrightarrow L_y, \qquad T_{\eta\gamma}=T_\eta T_\gamma, \tag{1.1} \] depending only on the path class. They give a functor \(T_L:\Pi_1(X)\to R\text{-}\mathsf{Mod}\).

Proof: definition and concatenation. The inverse image \(\gamma^{-1}L\) is locally constant on \(I\). Interval triviality says that both germ maps from its global sections to its endpoint fibres are isomorphisms. Define \[ T_\gamma=\operatorname{ev}_1\operatorname{ev}_0^{-1}. \tag{1.2} \] On any subinterval lying in one constant chart of \(L\), this is the identification of the two fibres in that chart. Restricting a section on \(I\) to consecutive subintervals shows that its endpoint comparison is the composite of their comparisons. Conversely, constant sections on those subintervals with matching endpoint germs glue, by the interval trivializations or the sheaf axiom on slightly enlarged subintervals. This proves the concatenation identity. A constant path gives identity, and reversal interchanges the two evaluation maps.

Proof: homotopies and naturality. For an endpoint-fixed homotopy \(H:I^2\to X\), the pullback of \(L\) is locally constant. The square is contractible, so this pullback is constant by the cited contractible-space result. In a constant sheaf, transport along every path is the identity in its constant model. Compare the two routes round the square's boundary. Its two vertical sides map to constant paths in \(X\), hence their transports are identity on the corresponding fibres. The top and bottom comparisons are therefore equal. This proves homotopy invariance. For a sheaf map \(a:L\to K\), apply inverse image and global sections to \(a\) in (1.2). The germ maps commute, giving \[ a_yT^L_\gamma=T^K_\gamma a_x. \tag{1.3} \] Identity and composite sheaf maps act by the corresponding stalk maps. This proves the asserted functoriality. \(\square\)

If a path stays in an open set on which \(L\) is constant, its transport is exactly the chart comparison. In particular every loop there acts trivially, including on modules with infinitely many generators.

2. Reconstructing sheaves from path data

Assume in this section that \(X\) is locally path connected: every point of every open neighborhood has a path-connected open neighborhood contained in it. Call a functor \(V:\Pi_1(X)\to R\text{-}\mathsf{Mod}\) locally monodromy-trivial if each point has a path-connected open neighborhood \(U\) such that every loop contained in \(U\), based at any point of \(U\), acts by identity under \(V\). It is equivalent to test loops at one point of \(U\): a path in \(U\) conjugates the two tests.

The transport of every locally constant sheaf satisfies this condition. Choose a constant-chart neighborhood and then a path-connected open neighborhood inside it. Conversely, the condition gives the uniform local comparison needed to reconstruct all of the fibre, not just individual locally extendible elements.

Construction 2.1 (parallel families). For an open \(W\), let \(S(V)(W)\) consist of families \[ s=(s_x)_{x\in W},\qquad s_x\in V_x, \tag{2.1} \] which are locally parallel in the following precise sense. Every point has a path-connected open neighborhood \(U\subseteq W\) on which \[ \begin{gathered} s_b=V([\gamma])s_a\\ \text{for every path }\gamma:a\to b\text{ in }U. \end{gathered}\tag{2.2} \] Restrictions forget coordinates. This definition also specifies the unique empty family on the empty open set.

Sheaf and module laws. Two locally parallel families that agree on an open cover agree in every coordinate. Matching families on a cover therefore glue to a unique family on their union, and condition (2.2) holds locally because it holds on the cover. This proves the sheaf axiom. Addition and the left \(R\)-action are coordinatewise. For the sum of two families, intersect their witnessing neighborhoods and choose a path-connected open neighborhood inside that intersection. Both equations hold there, hence so does their sum. The same argument applies to scalar multiplication, since every \(V([\gamma])\) is linear. All module identities and compatibility with restriction hold coordinatewise.

Constant charts and stalks. Let \(U\) be a path-connected neighborhood on which all loop actions are identity, and fix \(a\in U\). For \(b\in U\), put \[ \tau_b=V([\gamma_b]):V_a\longrightarrow V_b, \tag{2.3} \] where \(\gamma_b\) is any path in \(U\) from \(a\) to \(b\). Two choices differ by a loop in \(U\), so \(\tau_b\) is independent of the choice. For a path \(\gamma:b\to c\) in \(U\), composition gives \(V([\gamma])\tau_b=\tau_c\).

On any open \(W\subseteq U\), send a locally constant function \(f:W\to V_a\) to \(s_b=\tau_b f(b)\). Around each point choose a path-connected neighborhood where \(f\) is constant; the displayed identity gives (2.2). Conversely, a locally parallel family gives \(f(b)=\tau_b^{-1}s_b\). On a witnessing path-connected neighborhood, (2.2) makes that function constant. These operations are inverse and commute with restrictions and module operations. They identify \(S(V)|_U\) with the constant sheaf of \(V_a\). Moreover the coordinate evaluation gives an intrinsic isomorphism \[ S(V)_x\simeq V_x. \tag{2.4} \] Surjectivity follows from a chart as above centered at \(x\); injectivity follows because a parallel family zero at \(x\) is zero on a smaller such neighborhood. Thus the construction has exactly the requested fibres.

Recovery of the prescribed transport. A path has a finite subdivision whose pieces lie in these chart neighborhoods: pull the cover back to \(I\) and use compactness and a Lebesgue number. Within one piece, (2.3) identifies the sheaf transport with \(V\)'s map on that piece. Composition in Proposition 1.1 then gives the same assertion for the whole path. Consequently (2.4) is a natural isomorphism \(T_{S(V)}\simeq V\).

3. The classification, including every morphism

Theorem 3.1. On a locally path-connected space, transport is fully faithful. It identifies locally constant left \(R\)-module sheaves with the full category of locally monodromy-trivial functors on \(\Pi_1(X)\).

Proof: recovery of a sheaf. Send a section of \(L\) to its family of germs. Near a point choose a constant chart and a path-connected open neighborhood on which that section is represented by one constant value. Its germs satisfy (2.2), so this defines a sheaf map \[ L\longrightarrow S(T_L). \tag{3.1} \] For a locally parallel family, shrink to a path-connected constant chart of \(L\) inside a witnessing neighborhood. Each point there is joined to its center by a path in that neighborhood. Equation (2.2) says that all coordinates come from the single constant-chart section with the prescribed central germ. These local sections agree on overlaps because their germs agree everywhere; the sheaf axiom glues them. This is the inverse of (3.1). The construction is independent of every chart choice and natural in \(L\).

Proof: fullness and faithfulness. A natural transformation \(v:V\to W\) sends a parallel family to \((v_xs_x)_x\). Naturality with respect to paths proves (2.2), so this gives a linear sheaf map \(S(v)\). Its stalk maps under (2.4) are exactly \(v_x\). Applying this to \(V=T_L\) and \(W=T_K\), followed by (3.1), realizes every natural transformation as a sheaf map. Two sheaf maps with identical stalk maps agree: for every section their images agree near each point and hence agree by the sheaf axiom. Thus the realization is unique. In particular no finite generation is used to turn the family of linear maps into a sheaf map; naturality along paths gives the uniform local comparison. The isomorphisms (2.4) and (3.1), also on maps, prove the equivalence. \(\square\)

Corollary 3.2. Suppose additionally that \(X\) is semilocally simply connected: each point has an open neighborhood whose loops based at that point are null-homotopic in \(X\). Then \[ \mathsf{Loc}_R(X)\simeq \mathsf{Fun}(\Pi_1(X),R\text{-}\mathsf{Mod}). \tag{3.2} \] Indeed shrink such a neighborhood to a path-connected open neighborhood. Its other based loops are conjugate to loops at the chosen point; their classes in \(X\) are also identity. Every functor is therefore locally monodromy-trivial. Theorem 3.1 applies. This assumption concerns null-homotopies in \(X\); the neighborhoods themselves need not be simply connected. Without it, Theorem 3.1 still gives the exact essential image.

4. One basepoint, invariant sections and intertwiners

Assume \(X\) is path connected and locally path connected, with basepoint \(x_0\). For a local system, transport of based loops is a representation \[ \begin{gathered}\rho:\pi_1(X,x_0)\longrightarrow\operatorname{Aut}_R(L_{x_0}),\\ \rho(gh)=\rho(g)\rho(h).\end{gathered}\tag{4.1} \] The order is the one specified in Section 1.

Proposition 4.1 (basepoint reduction). Evaluation at \(x_0\) identifies functors on the connected groupoid with modules carrying representations of \(\pi_1(X,x_0)\), and natural transformations with all linear intertwiners. Under this identification, Theorem 3.1 selects the locally monodromy-trivial representations. Under Corollary 3.2 every representation occurs.

Proof. Choose paths \(q_x:x_0\to x\), with \(q_{x_0}\) constant. From a representation on \(M\), put \(V_x=M\) and assign to \(\gamma:x\to y\) the map \[ V([\gamma])=\rho([q_y^{-1}\gamma q_x]). \tag{4.2} \] For two successive paths the middle \(q_yq_y^{-1}\) cancels up to endpoint-fixed homotopy, so (4.2) respects composition; it also respects identity. A linear intertwiner gives the same map \(M\to N\) at each point and commutes with every (4.2). Conversely, in a natural transformation between arbitrary groupoid functors, its component at \(x\) is forced to be \[ v_x=V'([q_x])v_{x_0}V([q_x])^{-1}. \tag{4.3} \] Its component at the basepoint must intertwine all loops. That condition also suffices, by inserting (4.2), so every such linear map gives a unique natural transformation. Finally the maps \(V([q_x])\) identify an arbitrary functor with the one reconstructed from its basepoint representation. Different choices of the paths yield naturally isomorphic reconstructions by this same formula. Local admissibility means that the conjugated image of the fundamental group of a sufficiently small path-connected neighborhood acts trivially. This is exactly the condition of Section 2. \(\square\)

If \(\eta:x_0\to x_1\), the actual fibre map \(T_\eta\) gives the change-of-basepoint identity \[ \rho_{x_1}([\ell])= T_\eta\,\rho_{x_0}([\eta^{-1}\ell\eta])\,T_\eta^{-1}. \tag{4.4} \] This follows directly by composing the three transports inside the middle expression. It does not identify the two fibres without the chosen path.

Proposition 4.2 (global sections and maps). Evaluation at \(x_0\) gives \[ \begin{gathered}\Gamma(X,L)\simeq M^{\pi_1(X,x_0)},\\ \operatorname{Hom}(L,K)\simeq\\ \left\{\begin{gathered}a:M\to N\\ a\rho(g)=\sigma(g)a\text{ for all }g\end{gathered}\right\}.\end{gathered}\tag{4.5} \] Here the first expression is the submodule fixed by every loop; the second includes noninvertible maps.

Proof. A section transports its own germs, so its basepoint germ is invariant. Conversely, for an invariant \(m\), put \(s_x=T_{q_x}m\). Changing \(q_x\) composes it with a loop at the basepoint, which fixes \(m\); the value is independent of the choice. On a path-connected constant-chart neighborhood these values are parallel, hence are germs of a section by (3.1). They glue globally and give the inverse to evaluation. The map formula is Proposition 4.1 followed by full faithfulness in Theorem 3.1. \(\square\)

5. The circle and its cohomology

For clarity one can justify the circle's fundamental group without a covering-classification theorem. Every path in \(S^1\) lifts uniquely to \(\mathbb R\) after a starting lift is chosen: subdivide its parameter into finitely many intervals mapping to arcs with a continuous argument, and adjust each successive argument by the unique integer matching the previous endpoint. Uniqueness holds locally on those arcs, hence everywhere. For a based loop the lift ends at its starting value plus an integer, its winding number. This integer is unchanged under a based homotopy. To see this, a sufficiently small uniform change of a path uses the same finite chain of argument arcs and makes the endpoint of its lift vary continuously. Its integer endpoint difference is locally constant in the homotopy parameter, and thus constant on \(I\). Such a uniform chain exists near each parameter by compactness of \(I\) and continuity on the square. A loop with winding zero has a lift with equal endpoints; the linear contraction of that real path, followed by the exponential, is an endpoint-fixed contraction. Two loops with the same winding have a composite with zero winding. Every integer is the winding of the corresponding exponential loop, and concatenation adds winding. This proves \(\pi_1(S^1)\simeq\mathbb Z\).

Thus a local system on the circle is specified by a module \(M\) and an automorphism \(T\), up to simultaneous conjugacy. Take two open arcs \(U,V\) whose intersection has two components \(J_0,J_1\). Orient the circle so that the positive loop goes from \(J_0\) to \(J_1\) through \(U\), then returns through \(V\). Choose charts with matching rule \(b=a\) on \(J_0\), and \(b=Ta\) on \(J_1\), where \(a\) is the \(U\)-coordinate and \(b\) the \(V\)-coordinate. Transport around that positive loop is then \(T\), not its inverse.

All four connected pieces are intervals, so their locally constant coefficients are acyclic by interval cohomology. Here is why the finite two-open Čech complex suffices, including its normalization. For any cover by two opens, extension by zero of the constant free rank-one module sheaves gives an exact augmented sequence \[ \begin{gathered}0\to j_{U\cap V,!}R_{U\cap V}\\ \xrightarrow{(-1,1)}j_{U,!}R_U\oplus j_{V,!}R_V\\ \xrightarrow{(1,1)}R_X\to0.\end{gathered} \] At a point in just one open this is the identity sequence; at a point in both it is the split difference-and-sum sequence. Thus exactness follows on stalks. Apply Hom into every term of an injective resolution of the coefficient sheaf. The augmented horizontal rows remain exact by injectivity. The resulting two-column section complex in each vertical degree therefore totals to the global injective-section complex. Vertically its columns compute cohomology on the two opens and their intersection: restriction of an injective to an open is injective because its left adjoint, extension by zero, is exact. If these restrictions are acyclic, inclusion of the degree-zero column kernels is a quasi-isomorphism on each column, and hence on the total complex, by the finite column filtration. This proves the finite two-open comparison directly. In the chosen charts it represents derived sections by \[ \begin{gathered}M\oplus M\xrightarrow{\delta}M\oplus M,\\ \delta(a,b)=(b-a,b-Ta).\end{gathered}\tag{5.1} \] It follows that \[ \begin{aligned} H^0(S^1,L_T)&=\ker(T-1),\\ H^1(S^1,L_T)&=\operatorname{coker}(T-1),\\ H^q(S^1,L_T)&=0\quad(q>1). \end{aligned} \tag{5.2} \] For the kernel, the first equation in (5.1) gives \(b=a\), and the second gives \(Ta=a\). For the cokernel, send \((s,t)\) to the class of \(s-t\) modulo \((T-1)M\). This is surjective and kills \(\delta\). If \(s-t=(T-1)a\), take \(b=s+a\); then \(\delta(a,b)=(s,t)\). This proves the asserted cokernel identification as an actual quotient, for arbitrary \(R\)-modules.

6. Finite coverings and direct image

Let \(q:Y\to X\) be a finite covering, meaning every point has an evenly covered neighborhood with finitely many sheets. For a locally constant sheaf \(L\) on \(Y\), its direct image is locally constant and \[ (q_*L)_x\simeq\prod_{y\in q^{-1}(x)}L_y. \tag{6.1} \] Indeed first take an evenly covered neighborhood. At each of the finitely many points of the fibre choose a constant-chart neighborhood in its sheet. Intersect their images to shrink the base neighborhood simultaneously. On the resulting sheets \(L\) is constant, so sections over their disjoint union are the product of the constant section sheaves. This gives both local constancy and (6.1). Finiteness justifies the common shrinking and the stalk of this product.

A path in \(X\) lifts uniquely from every point of its fibre. Subdivide it into evenly covered neighborhoods and follow the unique sheet at each step; adjacent lifts agree at the joint, and this also proves uniqueness. The transport of \(q_*L\) permutes the fibre factors by these lifted endpoints and uses the transport of \(L\) along each lift. This follows in a single evenly covered chart, where it is the product of the sheet comparisons, and hence along the path by concatenation. This description fixes the permutation direction.

The stalk formula for an arbitrary sheaf follows by the same finite-sheet germ argument, without constant charts. Consequently \(q_*\) is exact: finite products of modules are exact, and sheaf exactness is tested on stalks. Also \(q_*\) preserves injectives, being right adjoint to the exact inverse image for constant-ring module sheaves. Applying it to an injective resolution therefore proves the natural identity \[ R\Gamma(X,q_*L)\simeq R\Gamma(Y,L). \tag{6.2} \] Here exactness of \(q_*\), rather than just its preservation of injectives, ensures that the pushed-forward resolution resolves \(q_*L\).

7. Four graded exercises with full solutions

Exercise 1 — Integral unipotent monodromy (introductory)

On \(S^1\), take \(M=\mathbb Z^2\) and \(T(a,b)=(a+3b,b)\). Compute all endomorphisms and automorphisms of the corresponding local system, and its sheaf cohomology.

Solution. For a matrix \(A=\begin{pmatrix}u&v\\w&z\end{pmatrix}\), the equation \(AT=TA\) gives \(3w=0\) and \(3(u-z)=0\). Since the entries are integers, \(w=0\) and \(z=u\). Thus every endomorphism is \(\begin{pmatrix}u&v\\0&u\end{pmatrix}\), and it is invertible exactly when \(u=1\) or \(u=-1\). No condition is imposed on \(v\). This uses all intertwiners, not only isomorphisms. Since \((T-1)(a,b)=(3b,0)\), formula (5.2) gives \[ \begin{gathered}H^0=\mathbb Z(1,0),\\ H^1=\mathbb Z/3\mathbb Z\oplus\mathbb Z,\\ H^q=0\quad(q>1).\end{gathered} \] The torsion summand records the nonprimitive image \(3\mathbb Z(1,0)\), which cannot be replaced by its rational span. \(\square\)

Exercise 2 — Two independent loops (intermediate)

Let \(X\) be two circles joined at one vertex. Construct a local system with fibre \(M\) and specified automorphisms \(A,B\) around the two oriented loops, and compute its cohomology. Evaluate the answer for \(M=\mathbb Z\), \(A=-1\), \(B=1\).

Solution. Cover the graph by a small open star \(U\) of its vertex and the union \(V\) of the two middle open edge arcs. The star is a finite tree and contracts by scaling distance along each branch; each component of \(V\) is an interval. There are four interval components of \(U\cap V\), two for each edge. Glue the constant sheaf \(M\) on \(U\) to the constant sheaves on the two components of \(V\), using identity at the first end and \(A\), respectively \(B\), at the second end. Ordinary open descent constructs the sheaf. Orient each loop to cross from its first end through \(U\) to its second end and then return through its middle arc. The transition rule gives exactly \(A\) and \(B\). No theorem about the presentation of the graph's fundamental group is needed for this construction.

All pieces and intersection components are contractible, hence acyclic with these coefficients. Sections on a finite disjoint union form a finite product, so the Čech comparison gives \[ \begin{gathered}M^3\longrightarrow M^4,\\ (a,b,c)\longmapsto\\ (b-a,b-Aa,c-a,c-Ba).\end{gathered} \] The kernel is identified with the elements \(a\) fixed by both automorphisms, with \(b=c=a\). Modulo the images of \(b,c\), subtract the first coordinate from the second and the third from the fourth. The remaining map from \(M\) is \(a\mapsto((1-A)a,(1-B)a)\); changing its overall sign does not change its image. Therefore \[ \begin{aligned} H^0(X,L)&=\ker\bigl(M\xrightarrow{(A-1,B-1)}M^2\bigr),\\ H^1(X,L)&=\operatorname{coker}\bigl(M\xrightarrow{(A-1,B-1)}M^2\bigr), \end{aligned} \] and higher cohomology is zero. More explicitly, the difference map \(M^4\to M^2\) is surjective; its kernel consists exactly of the two diagonal pairs contributed by \(b,c\), so the quotient calculation loses no relation. For the indicated integer example the map is \(a\mapsto(-2a,0)\). Hence \(H^0=0\) and \(H^1=\mathbb Z/2\mathbb Z\oplus\mathbb Z\). \(\square\)

Exercise 3 — A three-sheeted circle and the direction of transport (advanced)

For the covering \(q:S^1\to S^1\), \(q(z)=z^3\), let \(L_T\) have fibre \(M\) and source-circle monodromy \(T\). Determine the target-circle monodromy of \(q_*L_T\) and verify (6.2) by computing kernels and cokernels.

Solution. Number the three points over the basepoint by \(0,1,2\) in positive order. Choose fibre identifications by transporting from sheet \(0\) along the first and second consecutive lifted base loops. The first two lifted steps then have identity matrix; the third finishes a positive source-circle loop and has matrix \(T\). A positive target loop sends the value at sheet \(0\) to sheet \(1\), at sheet \(1\) to sheet \(2\), and at sheet \(2\) to sheet \(0\). Thus its monodromy is \[ \begin{gathered}P(m_0,m_1,m_2)=(Tm_2,m_0,m_1),\\ P^3=\operatorname{diag}(T,T,T).\end{gathered} \] Its fixed vectors are exactly \((m,m,m)\) with \(Tm=m\), so its kernel of \(P-1\) is \(\ker(T-1)\). For the cokernel, send a triple to the class of its sum in \(M/(T-1)M\). This kills \((P-1)(m_0,m_1,m_2)\), whose coordinate sum is \((T-1)m_2\). In the quotient by the image of \(P-1\), applying that map to triples supported in positions \(0\) and \(1\) identifies all three coordinate inclusions of \(M\). Applying it to position \(2\) then imposes exactly the additional relation \(Tm=m\). The sum map is consequently an isomorphism of cokernels. Formula (5.2) identifies these with the two cohomology groups upstairs, and both sides have no higher cohomology. This checks the actual sheet permutation as well as the groups; replacing \(P\) by an arbitrary cyclic block matrix without tracking the wrapped transport would not establish that comparison. \(\square\)

Exercise 4 — Why path data alone can miss a sheaf map (advanced)

Let \(X=\mathbb Q\) with its usual subspace topology and take the constant sheaf \(L=\underline{\mathbb F_2}\). Show that transport on this space is not full by specifying a natural endomorphism of its path-groupoid functor that comes from no sheaf endomorphism.

Solution. Every connected subset of \(\mathbb Q\) is a point: between two distinct rationals choose an irrational number, whose two complementary open half-lines separate that subset. A path has connected image and is therefore constant. The fundamental groupoid consequently has only identity arrows. Its functor for \(L\) has fibre \(\mathbb F_2\) at every rational, and an arbitrary family of linear endomorphisms is natural. Take identity at \(0\) and zero at every other rational. If it were induced by a sheaf map, the image of the global constant section \(1\) would be a locally constant function whose value is \(1\) at \(0\) and \(0\) elsewhere. That function is not locally constant at \(0\), since every rational neighborhood contains a different rational. This contradicts the definition of the constant sheaf. Thus full faithfulness fails here. The space is not locally path connected: its path-connected subsets are points and its singletons are not open. This example does not contradict Proposition 1.1, which constructs transport on arbitrary spaces, or Theorem 3.1, which imposes local path connectedness for reconstruction. \(\square\)

8. Further reading and licence

The exposition, examples and solutions are released under CC0-1.0. Linked works retain their own copyrights and licences.