Discrete differential geometry in homotopy type theory

\(\newcommand{\textesh}{∫}\) \(\newcommand{\ensuremath}{}\)

Abstract

Higher inductive types can capture some concepts of differential geometry in two dimensions including connections, curvature, and vector fields. We define connections on higher inductive types. We then define tangent bundles and vector fields by looking at the special subclass of combinatorial manifolds, which are discrete in the sense of real cohesion (Shulman, 2017), drawing inspiration from the field of discrete differential geometry. We prove the Gauss-Bonnet theorem and Poincaré-Hopf theorem for combinatorial manifolds.

“It is always ourselves we work on, whether we realize it or not. There is no other work to be done in the world.” — Stephen Talbott, The Future Does Not Compute (Talbott, 1995)

1 Overview

We will define

  • combinatorial 2-manifolds

  • circle bundles, and principal circle bundles of tangent bundles

  • vector fields,

and then observe emerging from those definitions the presence of

  • connections

  • curvature

  • the index of a vector field,

and prove

  • the Gauss-Bonnet theorem

  • and the Poincaré-Hopf theorem.

We will consider functions \(M\to \mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) where \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) is the connected component in the universe of the Eilenberg-MacLane space \(\mathrm{K}(\ensuremath{\mathbb{Z}},1)\) which we will take to be \(S^1\), and where \(M\) is a combinatorial manifold of dimension 2, which is a simplicial complex encoded in a higher inductive type, such that each vertex has a neighborhood that looks like a disk with a discrete circle boundary (i.e. a polygon). We can call terms \(C:\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) “mere circles.”

We will see in Section 3.4 that \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) contains all the polygons. We will construct a map \(\mathop{\mathrm{\mathsf{link}}}:M\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) that maps each vertex to the polygon consisting of its neighbors. Then we can consider the type of pointed mere circles \(\mathrm{EM_{\bullet}}(\ensuremath{\mathbb{Z}},1)\stackrel{\mathrm{def}}{=}\sum_{Y:\mathrm{EM}(\ensuremath{\mathbb{Z}},1)}Y\) as well as the first projection that forgets the point. This is a univalent fibration (univalent fibrations are always equivalent to a projection of a type of pointed types to some connected component of the universe (Christensen, 2015)). If we form the pullback

image

then we have a bundle of mere circles, with total space given by the \(\sum_{}\)-type construction. We will show that this is not a principal bundle, i.e. a bundle of torsors. Torsors are types with the additional structure of a group action. But if \(\mathop{\mathrm{\mathsf{link}}}\) satisfies an additional property (amounting to an orientation) then the pullback is a principal fibration, i.e. \(\mathop{\mathrm{\mathsf{link}}}\) factors through a map \(\mathrm{K}(\ensuremath{\mathbb{Z}},2)\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\), where \(\mathrm{K}(\ensuremath{\mathbb{Z}},2)\) is an Eilenberg-Mac Lane space.

We will argue that extending \(\mathop{\mathrm{\mathsf{link}}}\) to a function \(T\) on paths can be thought of as constructing a connection, notably one that is not necessarily flat (trivial). Moreover, lifting \(T\) to \(T_\bullet:M\to\mathrm{EM_{\bullet}}(\ensuremath{\mathbb{Z}},1)\) can be thought of as a nonvanishing vector field. There will in general not be a total lift, just a partial function. The domain of \(T_\bullet\) will have a boundary of circles, and the degree (winding number) on the disjoint union of these can be thought of as the index of \(T_\bullet\). We can then examine the total curvature and the total index and prove that they are equal, and argue that they are equal to the usual Euler characteristic. This will simultaneously prove the Poincaré-Hopf theorem and Gauss-Bonnet theorem in 2 dimensions, for combinatorial manifolds. This is similar to the classical proof of Hopf (Hopf, 1983), presented in detail in Needham (Needham, 2021).

1.1 Future work

The results of this note can be extended in many directions. There are higher-dimensional generalizations of Gauss-Bonnet, including the theory of characteristic classes and Chern-Weil theory (which links characteristic classes to connections and curvature). These would involve working with nonabelian groups like \(SO(n)\) and sphere bundles. Results from gauge theory could be imported into HoTT, as well as results from surgery theory and other topological constructions that may be especially amenable to this discrete setting. Relationships with computer graphics and discrete differential geometry (Crane et al., 2013) (Crane, 2010) could be explored. Finally, a theory that reintroduces smoothness could allow more formal versions of the analogies explored here.

2 Torsors and principal bundles

The classical theory of principal bundles tells us to look for an appropriate classifying space of torsors to map into.

Definition 1. Let \(G\) be a group with identity element \(e\) (with the usual classical structure and properties). A \(G\)-set is a set \(X\) equipped with a homomorphism \(\phi:(G,e)\to\mathop{\mathrm{Aut}}(X)\). If in addition we have a term \[\mathsf{is\_torsor}:||X||_{-1}\times \prod_{x:X}\mathsf{is\_equiv}(\phi(-,x):(G,e)\to (X,x))\] then we call this data a \(G\)-torsor. Denote the type of \(G\)-torsors by \(BG\).

If \((X,\phi),(Y,\psi):BG\) then a \(G\)-equivariant map is a function \(f:X\to Y\) such that \(f(\phi(g,x))=\psi(g,f(x))\). Denote the type of \(G\)-equivariant maps by \(X\to_G Y\).

Lemma 1. There is a natural equivalence \((X=_{BG}Y) \simeq (X\to_G Y)\).

Denote by \(*\) the torsor given by \(G\) actions on its underlying set by left-translation. This serves as a basepoint for \(BG\) and we have a group isomorphism \(\Omega BG\simeq G\).

Lemma 2. A \(G\)-set \((X,\phi)\) is a \(G\)-torsor if and only if there merely exists a \(G\)-equivariant equivalence \(*\to_G X\).

Corollary 1. The pointed type \((BG,*)\) is a \(\mathrm{K}(G,1)\).

In particular, to classify principal \(S^1\)-bundles we map into the space \(\mathrm{K}(S^1, 1)\), a type of torsors of the circle. Since \(S^1\) is a \(\mathrm{K}(\ensuremath{\mathbb{Z}},1)\), we have \(\mathrm{K}(S^1,1)\simeq\mathrm{K}(\ensuremath{\mathbb{Z}},2)\).

2.1 Bundles of mere circles

We find it illuminating to look also at the slightly more general classifying space of \(\mathrm{K}(\ensuremath{\mathbb{Z}},1)\)-bundles, that is bundles whose fiber are equivalent to \(\mathrm{K}(\ensuremath{\mathbb{Z}},1)\). We can understand very well when these are in fact bundles of circle torsors, which will in turn shed light on orientation in this setting.

We will follow Scoccola (Scoccola, 2020). We will state the definitions and theorems for a general \(\mathrm{K}(G,n)\) but we will be focusing on \(n=1\) in this note.

Definition 2. Let \(\mathrm{EM}(G,n)\stackrel{\mathrm{def}}{=}\mathop{\mathrm{BAut}}(\mathrm{K}(G,n))\stackrel{\mathrm{def}}{=}\sum_{Y:\mathcal{U}}||Y\simeq \mathrm{K}(G,n)||_{-1}\). A \(\mathrm{K}(G,n)\)-bundle on a type \(M\) is the fiber of a map \(M\to\mathrm{EM}(G,n)\).

Scoccola uses two self-maps on the universe: suspension followed by \((n+1)\)-truncation \(||\Sigma||_{n+1}\) and forgetting a point \(F_\bullet\) to form the composition \[\mathrm{EM}(G,n)\xrightarrow[]{||\Sigma||_{n+1}} \mathrm{EM}_{\bullet\bullet}(G,n+1)\xrightarrow[]{F_\bullet}\mathrm{EM_{\bullet}}(G,n+1)\] from types to types with two points (north and south), to pointed types (by forgetting the south point).

Definition 3. Given \(f:M\to\mathrm{EM}(G,n)\), the associated action of \(M\) on \(G\), denoted by \(f_\bullet\) is defined to be \(f_\bullet=F_\bullet\circ||\Sigma||_{n+1}\circ f\).

Theorem 1. (Scoccola (Scoccola, 2020) Proposition 2.39). A \(\mathrm{K}(G,n)\) bundle \(f:M\to\mathrm{EM}(G,n)\) is equivalent to a map in \(M\to\mathrm{K}(G,n+1)\), and so is a principal fibration, if and only if the associated action \(f_\bullet\) is contractible.

Let’s relate this to orientation. Note that the obstruction in the theorem is about a map into \(\mathrm{EM_{\bullet}}(G,n+1)\) and further note that \(\mathrm{EM_{\bullet}}(G,n)\simeq \mathrm{K}(\mathop{\mathrm{Aut}}G,1)\) (independent of \(n\)). The theorem says that the data of a map into \(\mathrm{EM}(G,n)\) factors into data about a map into \(\mathrm{K}(G,n+1)\) and one into \(\mathrm{K}(\mathop{\mathrm{Aut}}G,1)\). Informally, \(\mathrm{EM}(G,n)\) is a little too large to be a \(K(G,n+1)\), as it includes data about automorphisms of \(G\).

In the special case of \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) the conditions of the theorem are met when \(f_\bullet:M\to\mathrm{K}(\mathop{\mathrm{Aut}}\ensuremath{\mathbb{Z}}, 1)\) is contractible. \(\mathop{\mathrm{Aut}}\ensuremath{\mathbb{Z}}\) consists of the \(\ensuremath{\mathbb{Z}}/2\ensuremath{\mathbb{Z}}\) worth of outer automorphisms given by multiplication by \(\pm 1\). If we look at the fiber sequence \[\mathrm{K}(S^1, 1)\to \mathop{\mathrm{BAut}}S^1\to \mathrm{K}(\mathop{\mathrm{Aut}}\ensuremath{\mathbb{Z}}, 1)\] we see the automorphisms of the circle as an extension of the group of automorphisms that are homotopic to the identity (which are the torsorial actions) by the group that sends the loop in \(S^1\) to its inverse. This is another way to see that a map \(f:M\to \mathop{\mathrm{BAut}}S^1\simeq \mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) factors through \(\mathrm{K}(S^1, 1)\simeq \mathrm{K}(\ensuremath{\mathbb{Z}},2)\) if and only if the composition to \(\mathrm{K}(\mathop{\mathrm{Aut}}\ensuremath{\mathbb{Z}},1)\) is trivial. This amounts to a choice of loop-direction for all the circles, and so deserves the name “\(f\) is oriented.” In addition the map \(\mathop{\mathrm{BAut}}S^1\to \mathrm{K}(\mathop{\mathrm{Aut}}\ensuremath{\mathbb{Z}}, 1)\) deserves to be called the first Stiefel-Whitney class of \(f\), and the requirement here is that it vanishes.

Note 1. Reinterpreting more of the theory of characteristic classes would be an enlightening future project. Defining a Chern class and Euler class in 2 dimensions is related to the goals of this note, but the full theory is about a family of invariants in different dimensions that have various relations between each other and satisfy other properties.

2.2 Pathovers in circle bundles

Suppose we have \(T:M\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) and \(P\stackrel{\mathrm{def}}{=}\sum_{x:M}T(x)\). We adopt a convention of naming objects in \(M\) with Latin letters, and the corresponding structures in \(P\) with Greek letters. Recall that if \(p:a=_M b\) then \(T\) acts on \(p\) with what’s called the action on paths, denoted \(\ensuremath{\mathsf{ap}}(T)(p):T(a)=T(b)\). This is a path in the codomain, which in this case is a type of types. Type theory also provides a function called transport, denoted \(\mathsf{tr}(p):T(a)\to T(b)\) which acts on the fibers of \(P\). \(\mathsf{tr}(p)\) is a function, acting on the terms of the types \(T(a)\) and \(T(b)\), and univalence tells us this is the isomorphism corresponding to \(\ensuremath{\mathsf{ap}}(T)(p)\).

Type theory also tells us that paths in \(P\) are given by pairs of paths: a path \(p:a=_M b\) in the base, and a pathover \(\pi:\mathsf{tr}(p)(\alpha)=_{T(b)}\beta\) between \(\alpha:T(a)\) and \(\beta:T(b)\) in the fibers. We can’t directly compare \(\alpha\) and \(\beta\) since they are of different types, so we apply transport to one of them. We say \(\pi\) lies over \(p\). See Figure 1.

A path \(\pi\) over the path \(p\) in the base involves the transport function.

Lastly we want to recall that in the presence of a section \(X:M\to P\) there is a dependent generalization of \(\ensuremath{\mathsf{ap}}\) called \(\mathsf{apd}\): \(\mathsf{apd}(X)(p):\mathsf{tr}(p)(X(a))=X(b)\) which is a pathover between the two values of the section over the basepoints of the path \(p\).

3 Polytopes and combinatorial manifolds

We will use two types of classical combinatorial structures: abstract polytopes and combinatorial manifolds. The latter is a subtype of the former. Abstract polytopes (or just “polytopes” in this note) encompass polygons, polyhedra, and higher-dimensional versions. They exclude certain undesirable shapes such as two triangles that meet at one vertex. But they aren’t necessarily simplicial either:

Minimal HITs:

def S1:
base: S1
loop: base=base

def S2:
N: S2
surf: refl_N = refl_N

def torus:
b:torus
p,q:b=b
donut:p.q=q.p


the map R (realization) R(S2):U lossy map

R(C_4) has an equivalence to R(S1)
perhaps this is R(the map C_4->S1, the strict one)
C_4->S1 is a strict map
S1->C_4 is non-strict, uses generated data, uses data from R(C_4)

def OO:
6 vertices
12 edges
8 faces

f:S2->OO 
T:OO->EM(Z,1)

def OO_w:
5 vertices
8 edges
5 faces: four bottom triangles, and a square refl_b=loop "brgob"

g:S2->OO_w

compose f and g^{-1} to give OO equiv OO_w

Tof(base) is (C_4, is_equiv_s1)
inside this is a twice rotation around C_4 and a homotopy to id(C_4)

"strict morphism of HITs": ctors to ctors

Imagine only having X:U, or X:*-> U

Claim: we cannot see the one-notch "90 degree" rotation of C_4 at the level of types.

-- Connections --
Type X w/ 1-skel X_1
HIT gives skeletal filtration
functions naturally given as per-skeleton steps
there are constraints/obstructions:
obstruction to extend map T from vertices a, b to path e:a=b is that T(a) and T(b) are in same connected component
say 2-cell F contracts a loop L: F:L=refl_v some vertex v
we have a choice of v for each face F
then T(F) must be in same component as refl_v (refl_v:\pi_1 X with basepoint v)
T(F) is merely refl, and holonomy is merely refl, and connection on this face F is merely flat
curvature is a function from 2-cells to \pi_1(X,v)
T(v):U
T(L):T(v)=T(v)

T(F):refl_{T(v)}=T(L)
the class ||T(L)||:\pi_1(U,T(v)) is an obstruction to having T(F), to extending T to F

The hierarchy of maps extending to higher skeletons, which we call connections of dimension 1, 2, etc.
This works for ANY HIT.
The combinatorial manifold structure is just one special case that gives me a specific map T.

3.1 Polytopes

Definition 4. A finite abstract polytope \(\mathcal{P}\) of dimension \(n\) is a finite poset \(P\) equipped with

  • two elements \(p_{\mathrm{min}}, p_{\mathrm{max}}:P\)

  • a rank function \(r:P\to \ensuremath{\mathbb{Z}}\)

and properties

  • a proof that \(a\leq b\to r(a)\leq r(b)\)

  • a proof that \(p_{\mathrm{min}}\) is minimal: \(\prod_{p:P}p\geq p_{\mathrm{min}}\)

  • a proof that \(p_{\mathrm{max}}\) is maximal: \(\prod_{p:P}p\leq p_{\mathrm{max}}\)

  • a proof that \(r(p_{\mathrm{min}}) = -1\) (so that non-minimal elements have rank at least 0)

  • a proof that \(r(p_{\mathrm{max}}) = n+1\) (so that non-maximal elements have rank at most \(n\))

  • a proof that rank “counts containment”: \(\prod_{a,b:P}(a\leq b)\times (\mathsf{is\_empty}\sum_{c:P}(a\leq c\leq b))\to b=a+1\)

  • a proof of strong connectedness (all intervals are connected via a chain of containment): \(\prod_{a,b:P\setminus\{p_{\mathrm{min}}, p_{\mathrm{max}}\}}\left(\sum_{x:P}a\leq x\leq b\text{ is connected}\right)\)

  • a proof of the diamond condition that between two elements that differ by two ranks lie exactly two elements: \(\prod_{a,b:P}(r(b)-r(a)=2)\to \#(\sum_{c:P}a\leq c\leq b)=4\) (of which \(a\) and \(b\) are two).

The diamond condition captures that two edges meet at a vertex, two faces meet at one edge, and so on. See the Hasse diagram (a graph of the poset with rank represented on the \(y\)-axis) of a tetrahedron in Figure 2 and the square pyramid (which will arise later as an octahedron minus its south pole) in Figure 3.

A finite abstract polytope representation of a tetrahedron, in the form of its “Hasse diagram” (from polytope.miraheze.org, public domain).
The Hasse diagram of a square pyramid (from wikimedia.org, public domain).

Next we will map abstract polytopes to higher inductive types. The poset structure will generate the paths, so the rank will correspond to the dimension. But as usual in a HIT we will need to make a choice of direction for each path constructor, which wasn’t necessary in the polytope setting. We will restrict to dimension at most 2.

Definition 5. A higher inductive polytope (HIP) of dimension at most 2 \(\mathscr{P}\) for a polytope \(\mathcal{P}\) of dimension at most 2 is a type with constructor data given by

  1. For each rank 0 element \(v\) a term \(V:\mathscr{P}\).

  2. For each rank 1 element \(e\) and rank 1 pair \(v_1,v_2\leq e\) (cardinality 2 by the diamond condition) a path \(E:V_1=V_2\).

  3. For each rank 2 element \(f\) containing edges \(e_1,\ldots,e_n\) containing a cycle of vertex pairs \(\{\{v_{11},v_{12}\},\ldots,\{v_{n1},v_{n2}=v_{11}\}\}\) a 2-path \(F:E_1\cdot\ldots\cdot E_n=\ensuremath{\mathsf{refl}}_{v_{11}}\).

Definition 6. Given a HIT of dimension at most 2 we have the skeleta \(\mathscr{P}_0,\mathscr{P}_1,\mathscr{P}_2\) where \(\mathscr{P}_i\) is the HIT generated by using the constructors up to dimension \(i\). The HIT also provides a chain of inclusions of skeleta \(\mathscr{P}_0\to\mathscr{P}_1\to\mathscr{P}_2\).

If \(Z:\mathcal{U}\) is a type then to define a map

3.2 Combinatorial manifolds

We will adapt to higher inductive types in a straightforward manner the classical construction of combinatorial manifolds. See for example the classic book by Kirby and Siebenmann (Kirby & Siebenmann, 1977). These are a subclass of simplicial complexes.

Definition 7. An abstract simplicial complex \(M\) of dimension \(n\) consists of a set \(M_0\) of vertices, and for each \(0<k\leq n\) a set \(M_k\) of subsets of \(M_0\) of cardinality \(k+1\), such that any \((j+1)\)-element subset of \(M_k\) is an element of \(M_j\). The elements of \(M_k\) are called \(k\)-faces. Denote by \(\mathsf{SimpCompSet_n}\) the type of abstract simplicial complexes of dimension \(n\) (where the suffix \(\mathsf{Set}\) reminds us that this is a type of sets).

Note that we don’t require all subsets of \(M_0\) to be included – that would make \(M\) an individual simplex. A simplicial complex is a family of simplices that are identified along various faces.

Definition 8. In an abstract simplicial complex \(M\) of dimension \(n\), the link of a vertex \(v\) is the \(n-1\)-face containing every face \(m\in M_{n-1}\) such that \(v\notin m\) and \(m\cup v\) is an \(n\)-face of \(M\).

The link is all the neighboring vertices of \(v\) and the codimension 1 faces joining those to each other. See for example Figure 4.

Definition 9. A combinatorial manifold (or combinatorial triangulation) of dimension \(n\) is a simplicial complex of dimension \(n\) such that the link of every vertex is a simplicial sphere of dimension \(n-1\) (i.e. its geometric realization is homeomorphic to an \(n-1\)-sphere). Denote by \(\mathsf{CombMfdSet_n}\) the type of combinatorial manifolds of dimension \(n\) (which the notation again reminds us are sets).

In a 2-dimensional combinatorial manifold the link is a polygon. See Figures 5, 6, and 7 for some examples of 2-dimensional combinatorial manifolds of genus 0, 1, and 3.

A classical 1940 result of Whitehead, building on Cairn, states that every smooth manifold admits a combinatorial triangulation (Whitehead, 1940). So it appears reasonably well motivated to study this class of objects.

A combinatorial triangulation of a sphere, created with the tool stripy.
A torus with an interesting triangulation, from Wikipedia. The links have various vertex counts from 5-7. Clearly a constant value of 6 would also work. (By Ag2gaeh - Own work, CC BY-SA 3.0.)
A 3-holes torus with triangulation, from Wikipedia. (By Ag2gaeh - Own work, CC BY-SA 3.0.)

3.3 Higher inductive combinatorial manifolds

We will convert a simplicial complex \(M\) of dimension at most 2 to a higher inductive type, in two steps.

Definition 10. Define \(\mathsf{CombMfd_2}\) to be the type of higher inductive constructors of combinatorial manifolds of dimension at most 2 and let \(\mathcal{H}:\mathsf{CombMfdSet_2}\to\mathsf{CombMfd_2}\) be a map from a combinatorial manifold to such a HIT following this method:

  1. vertices: a function \(\mathsf{v_0}:M_0\to \mathcal{H}(M)\) serving as the 0-dimensional constructors

  2. edges: a function \(\mathsf{v_1}\) on 1-faces, sending \(\{a, b\}\mapsto \mathsf{v_0}(a)=\mathsf{v_0}(b)\)

  3. 2-faces: a function \(\mathsf{v_2}\) on 2-faces, sending \(\{a, b, c\}\mapsto \ensuremath{\mathsf{refl}}_a = \mathsf{v_1}(\{a, b\})\cdot \mathsf{v_1}(\{b, c\})\cdot \mathsf{v_1}(\{a, c\})^{-1}\).

We will assume there is a formal theory of such HITs, and that at least up to dimension 2 there are no obstructions to simply copying over the combinatorial data to the HIT constructors. For recent work on HITs see for example David Wärn’s discussion of pushouts (Wärn, 2024).

Definition 11. Denote by \(\mathcal{R}:\mathsf{CombMfd_2}\to\mathsf{Type}\) the process of generating a type from the HIT data (which we refer to as realization). Note that \(\mathcal{R}(\mathcal{H}(M))\) is not in general a set, and may not even be 2-truncated for an arbitrary 2-dimensional combinatorial manifold \(M:\mathsf{CombMfdSet_2}\).

We’re making the distinction between \(\mathcal{H}\) and \(\mathcal{R}\) because we will mostly study functions and phenomena on \(\mathcal{H}(M)\) for some simplicial complex \(M\).

3.4 Polygons

We will now start looking at some examples, first by defining a type that is important both for the domain and the codomain of mere circles: a square.

Definition 12. The higher inductive type \(C_4\) (where C stands for “circle”). \[\begin{aligned} C_4 &: \mathsf{Type}\\ c_1, c_2, c_3, c_4 &: C_4 \\ c_1c_2 &: c_1 = c_2 \\ c_2c_3 &: c_2 = c_3 \\ c_3c_4 &: c_3 = c_4 \\ c_4c_1 &: c_4 = c_1 \\ \end{aligned}\]

The HIT \(C_4\).

The standard HoTT circle itself is a non-example of a combinatorial manifold since it lacks the second vertex of the edge:

Definition 13. The higher inductive type \(S^1\): \[\begin{aligned} S^1&:\mathsf{Type}\\ \mathsf{base}&:S^1\\ \mathsf{loop}&:\mathsf{base}=\mathsf{base} \end{aligned}\]

Nonetheless, all polygons are equivalent to each other and to \(S^1\).

Lemma 3. Define the function \(\ell:C_4\to S^1\) by \[\begin{aligned} \ell(c_i)&=\mathsf{base}, i=1, 2, 3, 4 \\ \ell(c_1c_2)&=\mathsf{loop} \\ \ell(c_2c_3)=\ell(c_3c_4)=\ell(c_4c_1)&=\ensuremath{\mathsf{refl}}_{\mathsf{base}} \end{aligned}\] and define the function \(s_1:S^1\to C_4\) by \(s_1(\mathsf{base})=c_1\) and \(s_1(\mathsf{loop})=c_1c_2\cdot c_2c_3\cdot c_3c_4\cdot c_4c_1\). (The subscript on \(s_1\) reminds us that we chose vertex \(c_1\) to map \(\mathsf{base}\) to.) Then \(\ell\) and \(s_1\) constitute an equivalence \(\mathsf{c4\_equiv}:\mathsf{is_equiv}(\ell,s_1)\).

Proof. First we need to construct a term \(4e:\prod_{x:C_4}s_1(\ell(x))=x\) by induction on \(C_4\), by defining terms

  1. \(4ei:s_1(\ell(c_i))=c_i\)

  2. \(4eij:\mathsf{apd}(c_ic_j)(4ei)=4ej\), i.e. \(4eij: s_1(\ell(c_ic_j))^{-1}\cdot 4ei\cdot c_ic_j=4ej\).

where in the second goal we used a result about \(\mathsf{apd}\) on transport (HoTT Book (Univalent Foundations Program, 2013) Theorem 2.11.3). These goals are fulfilled by

  • \(4e1=\ensuremath{\mathsf{refl}}_{c_1}\)

  • \(4e2={c_1c_2}\)

  • \(4e3={c_1c_2\cdot c_2c_3}\)

  • \(4e4={c_1c_2\cdot c_2c_3\cdot c_3c_4}\)

  • \(4e12=(c_1c_2\cdot c_2c_3\cdot c_3c_4\cdot c_4c_1)^{-1}\cdot(-)\)

  • \(4e23=\ensuremath{\mathsf{refl}}_{c_1c_2\cdot c_2c_3}\)

  • \(4e34=\ensuremath{\mathsf{refl}}_{c_1c_2\cdot c_2c_3\cdot c_3c_4}\)

  • \(4e41=4e12\).

Next we need a term \(e4:\prod_{y:S^1}\ell(s_1(y))=y\) by induction on \(S^1\), by defining.

  1. \(e4b:\ell(s_1(\mathsf{base}))=\mathsf{base}\)

  2. \(e4l:\mathsf{apd}(\mathsf{loop})(e4b)=e4b\), i.e. \(e4l:\ell(s_1(\mathsf{loop}))^{-1}\cdot e4b\cdot e4b\).

These goals are fulfilled by

  • \(e4b=\ensuremath{\mathsf{refl}}_{\mathsf{base}}\)

  • \(e4l=\ensuremath{\mathsf{refl}}_{\mathsf{loop}}\).

 ◻

A different approach might be to prove that \(C_n\simeq C_{n-1}\) by removing just one vertex, and seeing that the argument generates equivalences between any polygon, or a polygon and \(S^1\).

Recalling that terms of \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) are pairs: a type, and a mere equivalence with \(S^1\), we have:

Corollary 2. We have \((C_4,||\mathsf{c4\_equiv}||_{-1}):\mathrm{EM}(\ensuremath{\mathbb{Z}},1).\)

Given some other square \(abcd\) and an equivalence with \(C_4\), we get via univalence a path in \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\). This includes automorphisms of \(C_4\), for example \(R\). Furthermore there is a homotopy from \(R\) to the identity, which give a 2-path \(\ensuremath{\mathsf{refl}}_{C_4}=R\) in the universe.

Real-world triangulations of surfaces will often have links whose number of vertices varies across the surface. For example we can see hexagons and pentagons in Figure 5. This presumably introduces only a minor practical inconvenience and doesn’t materially affect the discussion to come.

3.5 The higher inductive type \(\ensuremath{\mathbb{O}}\)

We will create our first combinatorial surface, a 2-sphere. We will adopt the convention that a subscript indicates the dimension of a subskeleton of a complex. For instance, we have \(\mathsf{base}:S^1_0\).

Definition 14. The HIT \(\ensuremath{\mathbb{O}}_0\) is just 6 points, intended as the 0-skeleton of an octahedron, with vertices named after the colors on the faces of a famous Central European puzzle cube. \[w, y, b, r, g, o : \ensuremath{\mathbb{O}}_0\]

Definition 15. The HIT \(\ensuremath{\mathbb{O}}_1\) is the 1-skeleton of an octahedron. \[\begin{aligned} w, y, b, r, g, o &: \ensuremath{\mathbb{O}}_1 & yg &: y=g \\ wb &: w=b & yo &: y=o \\ wr &: w=r & br &: b=r \\ wg &: w=g & rg &: r=g \\ wo &: w=o & go &: g=o \\ yb &: y=b & ob &: o=b \\ yr &: y=r \end{aligned}\]

Definition 16. The HIT \(\ensuremath{\mathbb{O}}\) is an octahedron: \[\begin{aligned} w, y, b, r, g, o &: \ensuremath{\mathbb{O}}\\ wb &: w=b & br &: b=r & wbr &: wb\cdot br\cdot wr^{-1} = \ensuremath{\mathsf{refl}}_w \\ wr &: w=r & rg &: r=g & wrg &: wr\cdot rg\cdot wg^{-1} = \ensuremath{\mathsf{refl}}_w \\ wg &: w=g & go &: g=o & wgo &: wg\cdot go\cdot wo^{-1} = \ensuremath{\mathsf{refl}}_w \\ wo &: w=o & ob &: o=b & wob &: wo\cdot ob\cdot wb^{-1} = \ensuremath{\mathsf{refl}}_w \\ yb &: y=b & & & yrb &: yr\cdot rb\cdot yb^{-1} = \ensuremath{\mathsf{refl}}_y \\ yr &: y=r & & & ygr &: yg\cdot gr\cdot yr^{-1} = \ensuremath{\mathsf{refl}}_y \\ yg &: y=g & & & yog &: yo\cdot og\cdot yg^{-1} = \ensuremath{\mathsf{refl}}_y \\ yo &: y=o & & & ybo &: yb\cdot bo\cdot yo^{-1} = \ensuremath{\mathsf{refl}}_y \end{aligned}\]

The HIT \(\ensuremath{\mathbb{O}}\) which has 6 points, 12 1-paths, 8 2-paths.

We have obvious maps \(\ensuremath{\mathbb{O}}_0\xrightarrow[]{i_0} \ensuremath{\mathbb{O}}_1\xrightarrow[]{i_1} \ensuremath{\mathbb{O}}\) that include each skeleton into the next-higher-dimensional skeleton.

3.6 Groupoid operations on higher inductive combinatorial manifolds

Let \(M:\mathsf{SimpCompSet_2}\) be a combinatorial 2-manifold and \(\ensuremath{\mathbb{M}}\stackrel{\mathrm{def}}{=}\mathcal{H}(M):\mathsf{CombMfd_2}\) the corresponding higher inductive type. \(\ensuremath{\mathbb{M}}\) has triangular 2-faces just as \(M\) does, except they are 2-paths in the HoTT sense. If two faces \(bca\) and \(bdc\) share the edge \(bc\) (see Figure 8), then we can define an operation that combines the combinatorics of simplices with the higher groupoid operations generated by our HIT.

Consider Figure 8 and the 2-paths \(bac: ba\cdot ac=bc\) and \(bdc: bd\cdot dc = bc\). The 2-path concatenation \(bac\cdot bdc^{-1}\) is a path in \(ba\cdot ac = bd\cdot dc\). And from there we see we have a 4-gon \(abdc:\ensuremath{\mathsf{refl}}_b=\ensuremath{\mathsf{refl}}_b\). In this way we can concatenate faces across common boundaries once we choose a common vertex (in this case \(b\)).

Concatenating the triangles \(bac\) and \(bdc\) gives the 4-gon \(abdc\).

We will have two use cases for this operation. The first is to consider the concatenation of all the faces of \(\ensuremath{\mathbb{M}}\), i.e. a term \(f_\ensuremath{\mathbb{M}}:\ensuremath{\mathsf{refl}}_a=\ensuremath{\mathsf{refl}}_a\) corresponding to \(\ensuremath{\mathbb{M}}\) itself. This will play the role of the “fundamental homology class” from classical topology, which is an object on which 2-forms can be evaluated to compute their value on the whole manifold.

Definition 17. If we have a combinatorial manifold \(\ensuremath{\mathbb{M}}:\mathsf{CombMfd_2}\) (or a combinatorial manifold minus some isolated zeros \(\ensuremath{\mathbb{M}}\stackrel{\mathrm{def}}{=}\mathbb{N}\setminus Z\)) and \(a:\ensuremath{\mathbb{M}}_0\) is a vertex, a total face of \(\ensuremath{\mathbb{M}}\) is a term \(f_\ensuremath{\mathbb{M}}:\ensuremath{\mathsf{refl}}_a=\ensuremath{\mathsf{refl}}_a\) given by any choice of ordering of the faces \(\{f_i\}\), a vertex \(v_i\) in each face, and terms \(a=v_i\) for each face.

Of course there are many choices in this definition of total face!

The second use case for concatenating faces is to create a HIT related to \(\ensuremath{\mathbb{M}}\) but without some of the point constructors. Figure 9 illustrates the equivalence.

Concatenating the six triangles in the approrpiate way produces a 2-path in \(\ensuremath{\mathsf{refl}}_v=\ensuremath{\mathsf{refl}}_v\) and removes the vertex at the center.

Definition 18. If \(\ensuremath{\mathbb{M}}:\mathsf{CombMfd_2}\) is a combinatorial manifold and \(Z\subset \ensuremath{\mathbb{M}}_0\) is a set of vertices in \(\ensuremath{\mathbb{M}}\) with members \(Z=\{z_0,\ldots,z_n\}\), then denote by \(\ensuremath{\mathbb{M}}\setminus Z\) the type given by omitting the vertices in \(Z\) from the constructors in all dimensions where they appeared. Call the points of \(Z\) isolated if no two of them are neighbors, i.e. we have \(\prod_{z:Z}\mathop{\mathrm{\mathsf{link}}}(z)\cap Z=\emptyset\). In the isolated case \(\ensuremath{\mathbb{M}}\setminus Z\) has boundary circles where each vertex was removed.

Definition 19. If we have \(\ensuremath{\mathbb{M}}\setminus Z\) for some isolated set of verticies \(Z\), then for each \(z:Z\) we can compose all the faces which contain \(z\), forming a new face (see Figure 9). In this way we produce a HIT called \(\ensuremath{\mathbb{M}}_Z\), which is no longer combinatorial. We call \(\ensuremath{\mathbb{M}}_Z\) the replacement of \(\ensuremath{\mathbb{M}}\) without \(Z\).

Lemma 4. If \(Z\) are isolated points of \(\ensuremath{\mathbb{M}}\) then we have \(\mathcal{R}(\ensuremath{\mathbb{M}})=_\mathsf{Type}\mathcal{R}(\ensuremath{\mathbb{M}}_Z)\).

Proof. We will prove that concatenating two faces of \(\ensuremath{\mathbb{M}}\) as in Figure 8 produces an equivalent type. Let \(A\) be the constructor given on the left that includes the edge \(bc\), and \(B\) the constructor on the right. We will define functions on constructors. Let \(f:A\to B\) be

  • \(f(a:A)=a:B, f(b)=b, f(c)=c, f(d)=d\)

  • \(f(ab)=ab, f(bd)=bd, f(dc)=dc, f(ca)=ca\)

  • \(f(bc)=bdc\)

  • \(f(abc)=abcd\)

  • \(f(bdc)=\ensuremath{\mathsf{refl}}_{bd\cdot dc}\)

which “squishes the right face onto its right >-shaped boundary.” In the other direction let \(g:B\to A\) be the inclusion of all the constructors of dimension 1 and 2, and set \(g(abdc)=abc*bdc\), which denotes the concatenation operation across the shared edge.

We must provide a term \(gf:\prod_{x:A}g(f(x))=x\) which requires supplying four paths, five pathovers, and two faceovers. The four paths are \(\ensuremath{\mathsf{refl}}_a\), \(\ensuremath{\mathsf{refl}}_b\), \(\ensuremath{\mathsf{refl}}_c\) and \(\ensuremath{\mathsf{refl}}_c\). Four of the pathovers are \(\ensuremath{\mathsf{refl}}_{ab}\), \(\ensuremath{\mathsf{refl}}_{bd}\), \(\ensuremath{\mathsf{refl}}_{dc}\), \(\ensuremath{\mathsf{refl}}_{ca}\). It remains to find terms

  1. \(\mathit{gfbc}:\mathsf{apd}(bc)(\ensuremath{\mathsf{refl}}_b)=\ensuremath{\mathsf{refl}}_c\)

  2. \(\mathit{gfabc}:\mathsf{apd}(abc)(\ensuremath{\mathsf{refl}}_{ab}\cdot \mathit{gfbc}\cdot \ensuremath{\mathsf{refl}}_{ca})=\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_a}\), i.e. \(\mathit{gfabc}:g(f(abc))^{-1}\cdot (\ensuremath{\mathsf{refl}}_{ab}\cdot \mathit{gfbc}\cdot \ensuremath{\mathsf{refl}}_{ca})\cdot abc = \ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_a}\)

  3. \(\mathit{gfbdc}:\mathsf{apd}(bdc)(\ensuremath{\mathsf{refl}}_{bd}\cdot \ensuremath{\mathsf{refl}}_{dc}\cdot \mathit{gfbc}^{-1})=\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_b}\), i.e. \(\mathit{gfbdc}:g(f(bdc))^{-1}\cdot (\ensuremath{\mathsf{refl}}_{bd}\cdot \ensuremath{\mathsf{refl}}_{dc}\cdot \mathit{gfbc}^{-1})\cdot bdc\)

which are supplied by

  1. \(cbd:cb\cdot bd\cdot dc=\ensuremath{\mathsf{refl}}_c\)

  2. \(\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_a}}\)

  3. \(\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_{\ensuremath{\mathsf{refl}}_b}}\).

We must also provide a term \(\mathit{fg}:\prod_{x:B}f(g(x))=x\) which is \(\ensuremath{\mathsf{refl}}\) on all constructors. ◻

4 Connections and vector fields

4.1 The function \(T\)

We will build up a map \(T\) out of \(\ensuremath{\mathbb{O}}\) which is meant to be like the circle bundle of a tangent bundle. And so we will begin with the intrinsic data of the link at each point: taking the link of a vertex gives us a map from vertices to polygons.

Definition 20. \(T_0\stackrel{\mathrm{def}}{=}\mathop{\mathrm{\mathsf{link}}}:\ensuremath{\mathbb{O}}_0\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) is given by: \[\begin{aligned} \mathop{\mathrm{\mathsf{link}}}(w) &= brgo & \mathop{\mathrm{\mathsf{link}}}(r) &= wbyg \\ \mathop{\mathrm{\mathsf{link}}}(y) &= bogr & \mathop{\mathrm{\mathsf{link}}}(g) &= wryo \\ \mathop{\mathrm{\mathsf{link}}}(b) &= woyr & \mathop{\mathrm{\mathsf{link}}}(o) &= wgyb \end{aligned}\] We chose these orderings for the vertices in the link, by visualizing standing at the given vertex as if it were the north pole, then looking south and enumerating the link in clockwise order, starting from \(w\) if possible, else \(b\).

\(\mathop{\mathrm{\mathsf{link}}}\) for the vertices \(w, b\) and \(r\).

To extend \(T_0\) to a function \(T_1\) on the 1-skeleton we have complete freedom. Defining a map by induction makes clear that the action on paths is its own structure. Two functions on the octahedron could agree on points but differ on edges. We are going to identify this 1-dimensional freedom with a connection:

Definition 21. A connection on a higher combinatorial manifold is an extension of a circle bundle from the 0-skeleton to the 1-skeleton.

Continuing the example, we will do something “tangent bundley”, imagining how \(T_1\) changes as we slide from point to point in the embedding shown in the figures. Sliding from \(w\) to \(b\) and tipping the link as we go, we see \(r\mapsto r\) and \(o\mapsto o\) because those lie on the axis of rotation. Then \(g\mapsto w\) and \(b\mapsto y\).

Definition 22. Define \(T_1:\ensuremath{\mathbb{O}}_1\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) on just the 1-skeleton by extending \(T_0\) as follows: Transport away from \(w\):

  • \(T_1(wb):[b, r, g, o]\mapsto [y, r, w, o]\) (\(r, o\) fixed)

  • \(T_1(wr):[b, r, g, o]\mapsto [b, y, g, w]\) (\(b, g\) fixed)

  • \(T_1(wg):[b, r, g, o]\mapsto [w, r, y, o]\)

  • \(T_1(wo):[b, r, g, o]\mapsto [b, w, g, y]\)

Transport away from \(y\):

  • \(T_1(yb):[b, o, g, r]\mapsto [w, o, y, r]\)

  • \(T_1(yr):[b, o, g, r]\mapsto [b, y, g, w]\)

  • \(T_1(yg):[b, o, g, r]\mapsto [y, o, w, r]\)

  • \(T_1(yo):[b, o, g, r]\mapsto [b, w, g, y]\)

Transport along the equator:

  • \(T_1(br):[w, o, y, r]\mapsto [w, b, y, g]\)

  • \(T_1(rg):[w, b, y, g]\mapsto [w, r, y, o]\)

  • \(T_1(go):[w, r, y, o]\mapsto [w, g, y, b]\)

  • \(T_1(ob):[w, g, y, b]\mapsto [w, o, y, r]\)

It’s very important to be able to visualize what \(T_1\) does to triangular paths such as \(wb\cdot br\cdot rw\) (which circulates around the boundary of face \(wbr\)). You can see it if you imagine Figure 10 as the frames of a short movie. Or you can place your palm over the top of a cube and note where your fingers are pointing, then slide your hand to an equatorial face, then along the equator, then back to the top. The answer is: you come back rotated clockwise by a quarter-turn.

Definition 23. The map \(R:C_4\to C_4\) rotates by one quarter turn, one “click":

  • \(R(c_1) = c_2\)

  • \(R(c_2) = c_3\)

  • \(R(c_3) = c_4\)

  • \(R(c_4) = c_1\)

  • \(R(c_1c_2) = c_2c_3\)

  • \(R(c_2c_3) = c_3c_4\)

  • \(R(c_3c_4) = c_4c_1\)

  • \(R(c_4c_1) = c_1c_2\)

Note by univalence the equivalence \(R\) gives a loop in the universe, a term of \(C_4=_{\mathrm{EM}(\ensuremath{\mathbb{Z}},1)}C_4\).

Now let’s extend \(T_1\) to all of \(\ensuremath{\mathbb{O}}\) by providing values for the eight faces. The face \(wbr\) is a path from \(\ensuremath{\mathsf{refl}}_w\) to the concatenation \(wb\cdot br\cdot rw\), and so the image of \(wbr\) under the extended version of \(T_1\) must be a homotopy from \(\ensuremath{\mathsf{refl}}_{T_1(w)}\) to \(T_1(wb\cdot br\cdot rw)\). Here there is no additional freedom.

Definition 24. Define \(T_2:\ensuremath{\mathbb{O}}\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) by extending \(T_1\) to the faces as follows:

  • \(T_2(wbr)=H_R\)

  • \(T_2(wrg)=H_R\)

  • \(T_2(wgo)=H_R\)

  • \(T_2(ybo)=H_R\)

  • \(T_2(yrb)=H_R\)

  • \(T_2(ygr)=H_R\)

  • \(T_2(yog)=H_R\)

  • \(T_2(ybo)=H_R\)

where \(H_R:R=\ensuremath{\mathsf{refl}}_{C_4}\) is the obvious homotopy given by composition with \(R^-1\). Passing through univalence we get a 2-path between \(R\) and \(\ensuremath{\mathsf{refl}}\) in the loop space \(C_4=_{\mathrm{EM}(\ensuremath{\mathbb{Z}},1)}C_4\).

Definition 25. The curvature of a connection on a type family \(T:\ensuremath{\mathbb{M}}\to\mathcal{U}\) at a vertex \(v\) of a 2-face \(f\) with boundary path \(p_f\) of a higher combinatorial manifold \(\ensuremath{\mathbb{M}}\) is the automorphism \(\mathsf{tr}(p_f)(Tv)\) together with a homotopy to \(\ensuremath{\text{id}}_{Tv}\).

Note 2. We have defined a function on a cell by requiring it to correspond to the value on the boundary of that cell. This is familiar in classical differential topology, where it’s called the exterior derivative. The duality of \(d\) and \(\partial\) is recognizable in \(T_2\), and we might say “curvature is the derivative of the connection.”

4.2 \(T\) on concatenations of faces

Continuing with the classical analogies, we should seek a way to concatenate the curvature on two or more faces. This would correspond to integrating the curvature 2-form over a larger 2-cell, including integrating over a total face to compute total curvature. Look again at Figure 8 where we concatenated two faces that share an edge. HoTT maps respect groupoid operations, so we have \(T_2(abc\cdot bdc) = T_2(abdc)\). We can double-check this by comparing transport around a 4-gon like \(wbyr\) to a path that traverses each face.

Lemma 5. \[T_1(wb\cdot by\cdot yr\cdot rw) = T_1(wb\cdot br\cdot rw\cdot wb\cdot by\cdot yr\cdot rb\cdot bw)\]

Proof. Both are equal to \(R^2\) acting to permute \(\{b, r, g, o\}\) to \(\{g, o, b, r\}\). ◻

Similarly transport around the other vertical wedges \(wryg\), \(wgyo\) and \(woyb\) are each \(R^2\), and the four wedges can be composed to obtain \(R^8:\mathop{\mathrm{\mathsf{link}}}(w)=\mathop{\mathrm{\mathsf{link}}}(w)\). This implies that the total face given by concatenating all 8 faces (in this order) maps by \(T_2\) to \(R^8\) together with the homotopy that unwinds \(R^8\) to the identity.

What if we chose another strategy for concatenating the faces of \(\ensuremath{\mathbb{O}}\)? Suppose we concatenate all four triangles in the upper hemisphere with \(w\) as the basepoint, then move to \(y\) and compose the four southern triangles, then move back up to \(w\)?

Lemma 6. \[T_1(wb\cdot br\cdot rg\cdot go\cdot ow) = T_1(wb\cdot by\cdot (yr\cdot rb\cdot bo\cdot og\cdot gr\cdot ry)\cdot yb\cdot bw)\]

Proof. Both are equal to \(R^4\). ◻

And therefore by concatenating the path on the left with the path on the right we see that this different ordering of the faces gives the same value of \(T_2\) as before, namely \(R^8\).

4.3 The torus

We can define a combinatorial torus as a similar HIT. This time each vertex will have six neighbors. So all the links will be merely equal to \(C_6\) which is a hexagonal version of \(C_4\). See Figure 11.

To help parse this figure, imagine instead Figure 12. We take this simple alternating-triangle pattern, then glue the left and right edges, then bend into Figure 11. The fact that each column in Figure 12 has four dots corresponds to the torus in Figure 11 having a square in front, diamonds in the middle, and a square in back.

Torus embedded in 3-dimensional space. If you see color in your rendering then black lines trace four square-shaped paths, red ones connect the front square to the middle diamonds, and blue ones connect the back path to the middle ones.
An inspiration for the torus. Identify the sides and then the top, definitionally, to get the actual torus.

This somewhat arbitrary and unfamiliar model of a torus has the helpful property that it is a combinatorial manifold that is somewhat minimal while still being representable by a donut shape. But the donut-shaped version suggests a very different connection than the flat model! Starting with the flat model, we can easily see how to define \(T_1\) by sliding a link rigidly along the page to the link of some adjacent vertex. Then we can see that transport around any loop is the identity and so \(T_2\) is always the identity (together with the homotopy \(\ensuremath{\mathsf{refl}}_\ensuremath{\text{id}}\) from the identity to itself). So if we imagine a way to visit every face like we did for the octahedron, starting and ending at some basepoint \(v\), we expect to see no net rotation at all of \(Tv\). Later we will call this “total curvature 0.”

The donut-shaped torus suggests a different connection, one determined by the embedding in 3-space that we have represented. But the easiest way to think about that bundle and its connection and curvature is to wait until we have a proof of the Poincaré-Hopf theorem, so that we can instead compute with a vector field.

4.4 Vector fields

Definition 26. A partial function \(f:A\to B\) is a function \(f:A\to B+\star\), the disjoint union of \(B\) with the 1-element type.

If \(T:\ensuremath{\mathbb{M}}\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) is a bundle of mere circles, then a vector field should be a partial function \(T_\bullet:\ensuremath{\mathbb{M}}\to\mathrm{EM_{\bullet}}(\ensuremath{\mathbb{Z}},1)\) that lifts \(T\). In other words, a pointing of some of the fibers. This aligns with the classical picture of a choice of nonzero vector at each point, except for some points where the vector field vanishes. So instead of having a notion corresponding to the full tangent vector space (one candidate for which would be the disk at each point, i.e. \(\mathop{\mathrm{\mathsf{link}}}\) plus its spokes and filler triangles) we are mapping some vertices to their circular fibers, and others to \(\star\). This lets us continue to work with \(\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) instead of a type of tangent spaces.

Figure 13 illustrates what removing the preimage of \(\star\) looks like. The resulting type is no longer a combinatorial manifold, since it fails the condition about every point having a circular link.

The flat torus with one vertex removed. This also removes the edges and faces containing that vertex.

Definition 27. Let \(\ensuremath{\mathbb{M}}:\mathsf{CombMfd_2}\) be a combinatorial manifold and \(Z\) an isolated set of vertices. A vector field \(X\) on \(\ensuremath{\mathbb{M}}\) with zero set \(Z\) is a partial section of \(P\), i.e. a term \(X:\prod_{x:\ensuremath{\mathbb{M}}\setminus Z}T(x)\) (and eliding the unique term of \(Z\to\star\)). The exponential map \(\exp:P\to \ensuremath{\mathbb{M}}\) is the map sending points in a fiber to the corresponding point in the link of the base point: \(\exp(x, y:\mathop{\mathrm{\mathsf{link}}}(x))=y\). In commutative diagram form we have:

image

where \(T_\bullet=\overline{T}\circ X\). Note that \(\exp\) is different from \(\ensuremath{\mathrm{pr}}_1\) since it spreads a fiber out onto the manifold. The composition \(\exp\circ X\) is a map \(\ensuremath{\mathbb{M}}\setminus Z\to \ensuremath{\mathbb{M}}\), and can be thought of as the flow of the vector field.

Let’s see a few examples.

Definition 28. The spinning vector field \(X_{\mathrm{spin}}\) on \(\ensuremath{\mathbb{O}}\setminus\{w, y\}\) is given by the following data. We compose with \(\exp\) to keep the notation directly in \(\ensuremath{\mathbb{O}}\). See Figure 14 \[\begin{aligned} \exp\circ X_{\mathrm{spin}}(b) &=r \\ \exp\circ X_{\mathrm{spin}}(r) &=g \\ \exp\circ X_{\mathrm{spin}}(g) &=o \\ \exp\circ X_{\mathrm{spin}}(o) &=b \\ \end{aligned}\] We must also define pathovers and faceovers, i.e. \(\mathsf{apd}(X_{\mathrm{spin}}\). For example, \(X_{\mathrm{spin}}(b)\) is the point \(r\) in the link \(woyr\). Transport along \(br\) takes the link of \(b\) to the link of \(r\), mapping \(r:Tb\) to \(g:Tr\). This agrees with \(X_{\mathrm{spin}}(r)\) and so we will choose \(X_{\mathrm{spin}}(br)=\ensuremath{\mathsf{refl}}_g\) in \(Tr\). We similarly choose \(\ensuremath{\mathsf{refl}}\) pathovers for the other equatorial edges. And since we have deleted all the faces when removing the zeros, there are no faceovers.

The vector field \(X_{\mathrm{spin}}\) on \(\ensuremath{\mathbb{O}}\), which circulates around the equator. \(w\) and \(y\) are zeros.

Definition 29. The downward vector field \(X_{\mathrm{down}}\) on \(\ensuremath{\mathbb{O}}\setminus\{w, y\}\) is given by the following data, where again we compose with \(\exp\) to keep the notation directly in \(\ensuremath{\mathbb{O}}\). See Figure 15 \[\begin{aligned} \exp\circ X_{\mathrm{spin}}(b) &=y \\ \exp\circ X_{\mathrm{spin}}(r) &=y \\ \exp\circ X_{\mathrm{spin}}(g) &=y \\ \exp\circ X_{\mathrm{spin}}(o) &=y \\ \end{aligned}\] We also need to select a pathover for each edge on the equator. Transport on all these edges takes \(y\) in one fiber to \(y\) in the next, so we choose the path \(\ensuremath{\mathsf{refl}}_y\) in all four of these fibers. Again there are no faceovers to map.

The vector field \(X_{\mathrm{down}}\) on \(\ensuremath{\mathbb{O}}\), which flows downward. \(w\) and \(y\) are zeros.

4.5 Index of a vector field

Index should be an integer that computes a winding number “of the vector field” around a zero. We can compute an integer from a map by taking its degree, which is a construction we will assume that we have, for example using (Buchholtz & (Favonia), 2018), where they indeed require that degree agrees with winding number for maps \(S^1\to S^1\).

Definition 30. Let \(\ensuremath{\mathbb{M}}:\mathsf{CombMfd_2}\) and let \(T:\ensuremath{\mathbb{M}}\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) be a bundle of circles given on \(\ensuremath{\mathbb{M}}_0\) by \(\mathop{\mathrm{\mathsf{link}}}\). Let \(z:Z\) be an isolated zero and let \(\mathop{\mathrm{\mathsf{link}}}z\) be its polygonal link in \(\ensuremath{\mathbb{M}}\), with a clockwise orientation, say with ordered vertices \(\{l_{z1},\ldots,l_{zn}\}\). We call the degree of the map \(\mathsf{tr}(\mathop{\mathrm{\mathsf{link}}}z):Tl_{z1}=Tl_{z1}\) the index of \(X\) at \(z\). It does not depend on which vertex we use.

Lemma 7. The index of \(X_{\mathrm{spin}}\) at both \(y\) and at \(w\) is 1, and the same is true for \(X_{\mathrm{down}}\).

Proof. \(\mathsf{apd}(X_{\mathrm{spin}})(br) = \ensuremath{\mathsf{refl}}_{X_{\mathrm{spin}}(r)}\) and similarly for the other edges and for \(X_{\mathrm{down}}\). So \(\mathsf{apd}\) on the loop around the equator is the identity, which has index 1. ◻

If these vector fields both have index +1, what does index –1 look like? We can see an example on the torus with its downward vector field.

On the torus we can also consider both a spinning vector field and a downward vector field. Figure 16 shows one way to spin the torus, and in this case there are no zeros so the index is the degree of a map from the empty set, which is 0 (as it factors through a constant map).

Figure 17 shows a downward flow with four zeros. Although this is a picture of the flat torus, the vector field is derived from the shape of Figure 11 where we actually have a notion of up and down. We see at the position labeled (outer, top of diamonds), i.e. the top of the torus, an everywhere outward pointing vector field. At (outer, bottom of diamonds) we see an inward pointing vector field. But at (hole, top of diamonds), i.e. the top of the hole, we see something else. Imagine transport from the neighbor to the lower right to the neighbor below, then continuing clockwise around the link. If we assume that we define \(\mathsf{apd}\) on these edges to be counterclockwise rotation, then transport around the whole link has degree –1. Similarly for the zero at (hole, bottom of diamonds). Adding these four indexes we again get 0.

Summarizing what we’ve seen in our examples, vector fields with isolated zeros have an index, and this index tracks with the total curvature, and the Euler characteristic.

A vector field on the torus that spins and has no zeros.
A vector field on the torus that flows downward, when viewed as a donut. The zeros are represented as missing dots. Every dot has one outgoing vector.

4.6 Equality of total index and total curvature

Here we are inspired by the classical proof of Hopf (Hopf, 1983), presented in detail in Needham (Needham, 2021).

Definition 31. An enumeration of a principal bundle with connection and vector field on a higher combinatorial manifold consists of the following data:

  • a family \(T:\ensuremath{\mathbb{M}}\to\mathrm{K}(\ensuremath{\mathbb{Z}},2)\) on some higher combinatorial manifold

  • a nonvanishing vector field \(X:\ensuremath{\mathbb{M}}\setminus Z\to P\) with isolated zeros \(Z\)

  • a total face of the replacement \(\ensuremath{\mathbb{M}}_Z\) (Definition 17), that is

    • a basepoint \(a:\ensuremath{\mathbb{M}}_Z\)

    • a term \(f_{\ensuremath{\mathbb{M}}_Z}:\ensuremath{\mathsf{refl}}_a=\ensuremath{\mathsf{refl}}_a\) given by

      • an ordering of the face constructors \(\{f_i\}\), with the sub-list of faces denoted \(\{f_{zk}\}\) refers to the replacement faces at the zeros

      • a vertex \(v_i\) in each face

      • terms \(a=v_i\) for each face

Note 3. An enumeration let us work both with \(\ensuremath{\mathbb{M}}\setminus Z\) where the vector field is nonvanishing, while also having access to the disks that are missing from \(\ensuremath{\mathbb{M}}\setminus Z\).

Lemma 8. The sub-list of faces \(\{f_i\}-\{f_{zk}\}\) obtained by skipping the replacement faces at the zeros, is an ordering of face constructors for \(\ensuremath{\mathbb{M}}\setminus Z\).

Proof. The algorithm that visits each face in order always starts and ends at \(a\) and so we can skip any faces we wish, to obtain an ordering of face constructors for the remaining union of faces. ◻

Note that on \(\ensuremath{\mathbb{M}}\setminus Z\) the vector field \(X\) trivializes the bundle by mapping into the contractible type of pointed types over \(\mathrm{K}(\ensuremath{\mathbb{Z}},2)\). So \(X\simeq Y:\ensuremath{\mathbb{M}}\setminus Z\to (Ta,a)\), the fixed pointed circle in the fiber of the basepoint \(a\).

Lemma 9. The degree of \(Y\) is minus the total index of \(X\).

Proof. The ordering of faces \(\{f_i\}-\{f_{zk}\}\) provides an ordering of all the edges, say \(\{e_l\}\). Each edge appears an even number of times in this list, traversed in opposite directions, except those bounding a replacement face. These replacement-bounding edges are traversed an odd number of times and can be concatenated to traverse the boundary counterclockwise. Concatenation of paths in \(S^1\) is abelian, so \(Y(\{e_l\})\) cancels except on the boundary of the replacement faces, which gives a map from the disjoint union of boundary circles to \(Ta\), with each boundary circle traversed in the counterclockwise direction. The orientation gives the minus sign. ◻

Consider now the total face \(f_{\ensuremath{\mathbb{M}}_Z}\) of \(\ensuremath{\mathbb{M}}_Z\) and its ordering of faces \(\{f_i\}\). \(Y\) is only defined on some of these faces. We will define a new function on all the \(\{f_i\}\).

Definition 32. The coupling map \(C:\ensuremath{\mathbb{M}}_Z\to Ta\) is defined to be \(Y\) on \(\ensuremath{\mathbb{M}}\setminus Z\) and on the remaining faces it is defined by \(C(f_i)\stackrel{\mathrm{def}}{=}\mathsf{apd}(X)(\partial f_i)\) where \(\partial f_i:v_i=v_i\) is the clockwise path around the face starting from the vertex supplied by the data of the total face.

Because \(\mathsf{apd}\) uses both transport and the value of the vector field, it couples the connection with the vector field, hence the name. Of course in HoTT this coupling is built into the definition of \(\mathsf{apd}\), so that’s another reminder that we aren’t straying far from the foundations to find these geometrical concepts.

The fact that \(C\) is defined on all the faces, by using the value of the vector field only on the 1-skeleton of \(\ensuremath{\mathbb{M}}_Z\) where it was always defined, lets us make the final part of the argument.

Lemma 10. \(C:\cup_i\{f_i\}\to Ta\) is equal to a constant map.

Proof. The data of the total face provides an ordering of all the edges. Each edge appears an even number of times, traversed in opposite directions, including the edges in the replacement faces. Concatenation of paths in the polygon \(Ta\) is abelian, so the paths all cancel. ◻

\(C\) is similar to \(X\) and \(Y\) except that it is a total function. On any given edge it computes a path, that is, a homotopy from the function \(\mathsf{tr}\) to the function \(X\), which we can call “the difference between transport and the vector field on that edge.” We have found a way to add all these homotopies together to get 0. We can call this total “the difference between the total index and the total curvature.”

Recall now that we made some arbitrary choices in Definition 31 of an enumeration, and hence the function \(C\). But since \(C\) is unconditionally constant, the space of extra data is contractible.

Corollary 3. The total index of a vector field with isolated zeros is independent of the vector field.

Corollary 4. The total curvature is an integer.

The last step is to link this value to the Euler characteristic.

4.7 Identification with Euler characteristic

Here we only point the way. Combinatorial manifolds are intuitive objects that connect directly to the classical definition of Euler characteristic. We can argue using Morse theory, the study of smooth real-valued functions on smooth manifolds and their singularities. Classically the gradient of a Morse function is a vector field that can be used to decompose the manifold into its handlebody decomposition. This would be an excellent story to pursue in future work.

Imagine starting with a classical 2-manifold of genus \(g\) that has been triangulated. Stand it upright with the holes forming a vertical sequence. Now install a vector field that points downward whenever possible. This vector field will have a zero at the top and bottom, and one at the top and bottom of each hole. The top and bottom will have zeros of (classical) index 1, and zeros in the holes will have index –1. We include some sketches in the case of a torus (Figure 18). This illustrates how we obtain the formula for genus \(g\): \(\chi(M)=2-2g\). If we choose the triangulation so that the zeros are at vertices, we should be able to import that data into \(\mathsf{CombMfd_2}\) and reproduce the computation using the tools in this note.

Schematic of the zeros of the downward flow of a torus.

5 Why this works

The arguments in this note flowed from a simple hypothesis: that \(\ensuremath{\mathsf{ap}}\) is analogous to \(d\), the exterior derivative. For example:

  1. The derivative of a function is its action on tangent vectors, and this is an infinitesimal limit of its action on paths (though these classical “paths” consist of points, which is why \(df\) is entailed in the data of \(f\) on points).

  2. Connections are not entailed in the data of a classical principal bundle. But they do answer the question: what does the bundle do on paths, i.e. how do we transport along a path? In this sense a connection might be the derivative of a bundle (and curvature the derivative of the connection).

  3. In HoTT the transport function on fibers along a path is part of the type family. But of course if we are working inductively on a HIT, there is a moment after we define the family on points and before we define it on paths. In this sense connections are also extra structure.

  4. de Rham complexes and cohomology are graded by dimension, but in HoTT this data is unified into a higher groupoid. Is a complex an infinitesimal limit of a groupoid?

  5. The Leibniz rule (product rule) for real-valued smooth functions \(f,g:M\to\ensuremath{\mathbb{R}}\) is \(d(fg)=fdg + gdf\). In HoTT given functions \(f,g:M\to H\) for any type \(M\) and H-space \(H\) with multiplication \(*\), and path \(p:x=_M y\), we have \(f(p)* g(p) = (f(x)* g(p))\cdot (f(p)*g(y))\), where we say \(f(p)\) instead of \(\ensuremath{\mathsf{ap}}(p)(f)\). The Leibniz formula is so often treated as an axiom that it was surprising to the author to see this relationship with whiskering.

We will end with some discussion of classical connections and how to find more analogies with what we defined in previous sections.

5.1 Classical connections

Definition 33. A principal bundle is a smooth map \(\pi:P\to M\) between smooth manifolds such that

  1. All the fibers of \(\pi\) are equivalent as a smooth manifold to a fixed Lie group \(G\).

  2. There is a smooth \(G\)-action \(P\times G\to P\) on the right that acts on fibers, and does so freely and transitively.

  3. There exists an open cover \(\{U_i\}\) of \(M\) and equivariant diffeomorphisms \(\phi_i:P|_{U_i}\to U_i\times G\) (i.e. \(\phi_i(p\cdot g)= \phi_i(p)\cdot g\)).

Physicists call principal bundle automorphisms “gauge transformations”:

Definition 34. A gauge transformation is a map \(\Phi:P\to P\) commuting with the projection to \(M\) and which is \(G\)-equivariant, i.e. \(\Phi(p\cdot g) = \Phi(p)\cdot g\). Denote the group of gauge transformations by \(\mathop{\mathrm{Aut}}P\). In the literature it is sometimes denoted \(\mathscr{G}(P)\).

Definition 35. The vertical bundle \(VP\) of a principal bundle \(\pi:P\to M\) with Lie group \(G\) is the kernel of the derivative \(T\pi:TP\to TM\).

\(VP\) can be visualized as the collection of tangent vectors that point along the fibers. It should be clear that at each point of \(M\) the group \(G\) acts on \(VP\), sending vertical vectors to vertical vectors. In other words, \(\mathop{\mathrm{Aut}}P\) acts on \(VP\).

Definition 36. An Ehresmann connection on a principal bundle \(\pi:P\to M\) with Lie group \(G\) is a splitting \(TP=VP\oplus HP\) at every point of \(P\) into vertical and complementary “horizontal” subspaces, which is preserved by the action of \(G\).

Being preserved by the action of \(G\) implies that the complementary horizontal subspaces in a given fiber of \(\pi:P\to M\) are determined by the splitting at any single point in the fiber. The action of \(G\) on this fiber can then push the splitting around to all the other points.

The utility and parsimony of this definition relates to the solvability of ordinary differential equations. We now have an isomorphism \(T_p\pi:H_pP\simeq T_{\pi(p)}M\) between each horizontal space and the tangent space below it in \(M\). This means that given a tangent vector at \(x:M\) and a point \(p\) in \(\pi^{-1}(x)\) we can uniquely lift the tangent vector to a horizontal vector at \(p\). We can also lift vector fields and paths in this way. To lift a path \(\gamma:[0,1]\to M\) you must specify a lift for \(\gamma(0)\) and then lift the tangent vectors of \(\gamma\) and prove that you can integrate the lift of that vector field upstairs in \(HP\).

Armed with the lifting of paths one immediately obtains isomorphisms between the fibers of \(P\): given a path in \(M\) we can map the starting point of a lift to the ending point. So the three constructions: the Ehresmann connection, the lifting of paths, and transport isomorphisms between fibers are all recapitulations of the structure that the connection adds to the bundle.

Moving now to HoTT, fix a combinatorial manifold \(\ensuremath{\mathbb{M}}:\mathsf{CombMfd_2}\) and a principal bundle \(T:\ensuremath{\mathbb{M}}\to\mathrm{K}(\ensuremath{\mathbb{Z}},2)\) with pullback \(P\). HoTT immediately provides a transport isomorphism of fibers from a path in \(\ensuremath{\mathbb{M}}\). Recall the theory of pathovers from Section 2.2. Does HoTT provide a lifting of paths in \(\ensuremath{\mathbb{M}}\) to paths in \(P\)? Given a path \(p:a=_\ensuremath{\mathbb{M}}b\) and a point \(\alpha:Ta\) above \(a\), we obtain a slightly constrained type of paths over \(p\) that begin at \(\alpha\) and end at \(\mathsf{tr}(p)(\alpha\). This is the type \(\mathsf{tr}(p)(\alpha)=\mathsf{tr}(p)(\alpha)\) which has the canonical term \(\ensuremath{\mathsf{refl}}\). In this sense HoTT has split the type of paths over \(p\) into pairs given by \(p\) itself and loops in \(\mathsf{tr}(p)(\alpha)=\mathsf{tr}(p)(\alpha)\) in \(Tb\). The term \(\ensuremath{\mathsf{refl}}\) could be called the horizontal lift of the path.

5.1.1 Gauge theory

Classically, given a bundle \(\pi:P\to M\) there is a space of connections \(\mathscr{A}(P)\). The group \(\mathop{\mathrm{Aut}}P\) acts on this space. For example, a gauge transformation that is constant in the neighborhood of a point (i.e. is given by multiplication by a fixed \(g:G\)) will not change the splitting, it will just shift the splitting rigidly along the fiber. But at the other extreme, a gauge transformation that is changing rapidly near a point will tilt the horizontal subspaces. The field of gauge theory begins with a study of this action, and of the quotient space \(\mathscr{A}(P)/\mathop{\mathrm{Aut}}P\).

Note 4. Recall that torsors have a physical interpretation as a quantity without a specified unit, such as mass, length, or time. When we choose a base point in a torsor it becomes the standard torsor \(G\) acting on itself (for example, the additive real numbers). Physicists call a choice of units a “gauge,” and they look for laws that are independent of such a choice. In the 20th century physicists further wondered about choices of units that vary from point to point, and began searching for objects that are invariant under this much larger space of transformations. This led directly to the discovery of connections and curvature as useful fields that complement the matter fields. These days, matter fields are sections of vector bundles associated to a principal bundle by a group representation, and force fields such as photons are connections. They were then led to explore quotienting by the action of the group of gauge transformations, working “mod gauge.” In this scenario the base manifold \(M\) is spacetime, and a gauge transformation is a smoothly varying choice of gauge (units) at each point.

In HoTT the gauge transformations are the type \(T\sim T\stackrel{\mathrm{def}}{=}\prod_{a:\ensuremath{\mathbb{M}}}Ta=Ta\), and rather than taking a quotient we have this group already emergent as paths in the space \(\ensuremath{\mathbb{M}}\to\mathrm{K}(\ensuremath{\mathbb{Z}},2)\).

Atiyah and Bott ( (Atiyah & Bott, 1983) equation 3.4) noted that the horizontal lift of two vector fields may have a vertical component when taking their Lie bracket, and identified this vertical component with the curvature. This forms an obstruction to splitting the Atiyah sequence of Lie algebras \[\text{vertical vector fields on }P \hookrightarrow \text{vector fields on }P \xrightarrow[]{\mathrm{lift}\circ\pi} \text{horizontal vector fields on }P.\] despite the splitting at the level of vector spaces.

In HoTT the analogue of bracketing two vector fields is (presumably) composing two paths \(p,q:a=_\ensuremath{\mathbb{M}}b\) to form a loop \(p\cdot q^{-1}\). The curvature can be seen by noting that the transport automorphism around the loop can be nontrivial, as discussed earlier in the note.

In this century mathematicians in HoTT and HoTT-adjacent fields sought an integrated Atiyah sequence, including Urs Schreiber (nLab authors, 2024) (Schreiber, 2006). This would be a Lie groupoidal version of the Atiyah sequence of Lie algebras. If a groupoid extension could be examined, the thinking went, a link could be sought to Schreier theory. Tying everything together we see that the desired groupoid is just the type \(P\) itself! To tie this with Schreier theory, we’ll recall that David Jaz Myers showed that we have an equivalence between the type of extensions of a group \(G\) by a group \(F\) and the actions of \(G\) on a delooping \(BF\): \[\mathrm{Ext}(G; F) \simeq (BG \,\cdot\!\to\mathop{\mathrm{BAut}}(BF))\] (see (Myers, 2022) Theorem 2.5.7). Our type of classifying maps \(\ensuremath{\mathbb{M}}\to\mathrm{EM}(\ensuremath{\mathbb{Z}},1)\) can be seen as extensions of \(\pi_1(\ensuremath{\mathbb{M}})\) by the group \(\mathop{\mathrm{Aut}}S^1\). Such extensions that are furthermore principal fibrations are the oriented ones, as we showed before. What a lovely reframing of principal bundles.

Atiyah, M.F. & Bott, R. (1983) The yang-mills equations over riemann surfaces. Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences, 308, 523–615.
Buchholtz, U. & (Favonia), K.-B.H. (2018) Cellular cohomology in homotopy type theory. CoRR, abs/1802.02191.
Christensen, D. (2015) A characterization of univalent fibrations.
Crane, K. (2010) Discrete connections for geometry processing (Master’s thesis).
Crane, K., Goes, F. de, Desbrun, M., & Schröder, P. (2013) Digital geometry processing with discrete exterior calculus. ACM SIGGRAPH 2013 courses, SIGGRAPH ’13. New York, NY, USA: ACM.
Hopf, H. (1983) Differential geometry in the large: Seminar lectures, new york university, 1946 and stanford university, 1956.
Kirby, R.C. & Siebenmann, L.C. (1977) Foundational essays on topological manifolds, smoothings, and triangulations, Annals of mathematics studies. Princeton University Press.
Myers, D.J. (2022) Symmetry, geometry, modality (PhD thesis).
Needham, T. (2021) Visual differential geometry and forms: A mathematical drama in five acts. Princeton University Press.
nLab authors (2024) Atiyah Lie groupoid.
Schreiber, U. (2006) N-transport and higher schreier theory.
Scoccola, L. (2020) Nilpotent types and fracture squares in homotopy type theory. Mathematical Structures in Computer Science, 30, 511–544.
Shulman, M. (2017) Brouwer’s fixed-point theorem in real-cohesive homotopy type theory.
Talbott, S. (1995) The future does not compute: Transcending the machines in our midst. O’Reilly & Associates.
Univalent Foundations Program (2013) Homotopy type theory: Univalent foundations of mathematics. Institute for Advanced Study: https://homotopytypetheory.org/book.
Wärn, D. (2024) Path spaces of pushouts.
Whitehead, J.H.C. (1940) On \(C^1\)-complexes. Annals of Mathematics, 809–824.