nLab Globular



Higher category theory

higher category theory

Basic concepts

Basic theorems





Universal constructions

Extra properties and structure

1-categorical presentations

The initial release of Globular works best in the Chrome browser. For discussion, go to the nForum thread.

Globular may have been superceded by its successor tool, see there for more.


Globular screenshot



Globular is a web-based proof assistant for finitely-presented semistrict globular higher categories (“associative n n -categories”). It allows one to formalize higher-categorical proofs in finitely-presented n-categories, visualize them as string diagrams, and share them with collaborators, or with the world. It is available at this address:

We recommend the Chrome browser.

Globular currently operates up to the level of 4-categories. By the yoga of k-tuply monoidal n-categories, this also allows one to construct proofs in the following settings:

  • Monoidal 3-category
  • Monoidal 2-category, optionally with a braiding
  • Monoidal category, optionally with a braiding or symmetry

The model of semistrict higher categories that Globular uses puts all the weak structure in the interchangers, and higher associated structures. At the level of 3-categories, Globular implements the axioms of a Gray category; since every tricategory is known to be equivalent to a semistrict 3-category, this means that any algebraic proof in a finitely-presented tricategory can be formalized. At the level of 4-categories, this is an implementation of a new definition of semistrict 4-category which is not yet published, and for which it is conjectured that every weak 4-category is equivalent to a semistrict 4-category.

Globular is free to use, and open-source. There is a lot to be done, on both a theoretical and practical level, and anybody can get involved with development. If you are interested, please get in touch with Jamie Vicary. Globular has been developed in the Quantum Group of the Department of Computer Science at the University of Oxford, by Krzysztof Bar, Katherine Casey, Aleks Kissinger, Jamie Vicary and Caspar Wylie.

If you’ve never used Globular before, the tutorial video is a good place to start. To report a bug, please use the issue tracker.

We are extremely grateful to John Baez, Manuel Bärenz, Bruce Bartlett, Eugenia Cheng, Chris Douglas, Eric Finster, Nick Gurski, André Henriques, Samuel Mimram and Dominic Verdon for useful discussions.

If you would like to cite Globular, you can use the BiBTeX entry

  author={Krzysztof Bar and Aleks Kissinger and Jamie Vicary}, 
  title={Globular: an online proof assistant for higher-dimensional rewriting}, 
  booktitle={Leibniz International Proceedings in Informatics}}

Example proofs

To see what can be done with Globular, look at these example proofs. To navigate through them, use the Project and Slice controls in the top-right of the main diagram (see Changing the view.)

  • Frobenius implies associative ( In a monoidal category, if multiplication and comultiplication morphisms are unital, counital and Frobenius, then they are associative and coassociative.
  • Strengthening an equivalence ( In a 2-category, an equivalence gives rise to an adjoint equivalence, satisfying the snake equations.
  • Pentagon and triangle implies λ I=ρ I\lambda_I = \rho_I ( In a monoidal 2-category, if a pseudomonoid object satisfies pentagon and triangle equations, then it satisfies λ I=ρ I\lambda_I = \rho_I.
  • The antipode is an algebra homomorphism ( For a Hopf algebra structure in a braided monoidal category, the antipode is an algebra anti-homomorphism. (Thanks to Dominic Verdon for formalizing this.)
  • The Perko knots are isotopic ( The Perko knots are a pair of 10-crossing knots stated by Little in 1899 to be distinct, but proven by Perko in 1974 to be isotopic. Here we give the isotopy proof. A nice feature is that the second and third Reidemeister moves do not have to be entered, since they are already implied by the 3-category axioms.
  • The pants bordism is commutative ( For an oriented dualizable object in a monoidal 2-category, the associated pants bordism is commutative. (Based on unpublished notes by Scott Carter.)
  • K=P#P ( As knotted spheres in 4 dimensions, the Klein bottle is isotopic to the connect sum of two cross caps. (Based on the movie move proof in Section 2.3 of Knotted Surfaces and their Diagrams by Scott Carter and Masahico Saito.)
  • The 1-twist spun trefoil is unknotted. ( For every classical (1,1)-knot, the knotted surface in 4\mathbb{R}^4 given by its 1-twist spin is unknotted. Here we give the explicit unknotting isotopy for the trefoil. (Based on the movie move proof in Carter and Saito. Formalization by Scott Carter.)
  • Swallowtail coherence ( In a 3-category, an adjunction of 1-morphisms gives rise to a coherent adjunction satisfying the swallowtail equations.
  • Butterfly coherence ( In a 4-category, an adjunction of 1-morphisms gives rise to a coherent adjunction satisfying the butterfly equations. (Developed by Krzysztof Bar and Jamie Vicary.)
  • Kirby calculus and 4-manifolds ( It’s well-known that the braid groups are 3-endomorphism spaces in the free 3-category over a single object and a single (nontrivial) 2-morphism. In Kirby calculus (using the “dotted circle convention” by Akbulut), smooth 4-manifolds are specified by links. By adding a few more generators and relations (for handle slides and handle cancellations, a.k.a. Kirby moves), Kirby diagrams are the endomorphisms of the 2-identity in the previously mentioned 3-category. Some example manifolds are defined and some example diffeomorphisms are formalised. (By Manuel Bärenz)

Basic functionality


Signatures and diagrams. Using Globular involves two main techniques: building the signature, and building a diagram over the signature. The signature is the list of cells that are available, and the diagram is a particular composite of those cells. A diagram can be thought of as a composite cell in the free semistrict \infty-category generated by the signature.

The signature can be enlarged by building diagrams SS and TT, and assigning them in turn as the source and target of a new cell, using the ‘Source’ and ‘Target’ buttons in the menu on the right of the interface. Any pair of diagrams can be chosen which satisfy the globularity conditions s(S)=s(T)s(S) = s(T) and t(S)=t(T)t(S) = t(T). The new cell can then be given a name and a colour, to make it easy to identify.

Diagrams are built by clicking on cells of the signature, and by clicking and dragging on the diagram itself. Signature cells of dimension n+1n+1 act on nn-diagrams by rewriting, replacing a subdiagram of shape SS and replacing it with a subdiagram of shape TT.

The only things that Globular understands are kk-cells, for some value of kk. So if you want to build an nn-category where an equation f=gf=g holds between nn-cells, you have to do it by adding (n+1)(n+1)-cells a:fga:f \to g and b:gfb:g \to f. If you then build some composite C[f]C[f] involving ff, you can apply the cell aa to obtain C[g]C[g], and we interpret this as the equation C[f]=C[g]C[f]=C[g]. In a slogan, this is equality via rewriting. This is consistent with the basic premise of homotopy type theory: treat your proofs as first-order structures, which can themselves be reasoned about directly.

Accounts. If you create an account on the site, you can save workspaces to your private account, and resume work on them when you log back in to your account from any computer. You can also click ‘Share’, which shares a workspace privately with another user, and ‘Publish’, which creates a permanent public version of your workspace that can be linked to from a research paper, or from elsewhere on the web.

Export and import. Use the ‘Export’ feature to download a copy of your workspace to your local machine, and ‘Import’ to upload a previously-download workspace. This functionality only involves your browser, not the server, so you do not need to log in or even create an account to use these features. If you import a workspace, log in, and click ‘Save’, then a copy of the imported workspace will be saved to the server.

Security and privacy. The plain text of your password is not stored on the server. However, your private workspaces are saved in plain text, and as such should not be considered highly secure, as they could be accessed by someone with site administrator credentials. The administrators pledge not to access any user data, except from the registered email address, without the permission of that individual user. In other words: your private work is private! User data is backed up nightly to a secure server.

Manipulating diagrams

A diagram is a composite of the cells in the current signature, and basic diagram manipulation can be performed by clicking on the signature, as follows, where we suppose our diagram DD is kk-dimensional.

  • Creation. If the current diagram is empty, clicking the icon of a cell in the signature constructs a diagram which consists solely of the selected generator.
  • Rewriting. Selecting a (k+1)(k+1)-cell GG from the signature displays a list of all the ways that its source s(G)s(G) can be identified as a subdiagram of DD. Choosing element of this list will then modify DD, deleting the part of it which was chosen as matching the source s(G)s(G), and replacing it with the target t(G)t(G).
  • Attaching. Selecting a pp-cell GG for pkp \leq k displays a list of all the ways that GG can be attached to DD along one of its boundaries. Choosing an element of this list performs the attachment.

The menu on the right-hand side of the screen gives further commands. Each of these commands has a shortcut key, which is also given.

  • Clear c. Deletes the current diagram.
  • Identity i. Builds the identity (k+1)(k+1)-diagram on the current kk-diagram.
  • Source s. Saves the current diagram as the source of a new generator.
  • Target t. Saves the current diagram as the target of a new generator.
  • Restrict r. Replaces the current diagram with the subdiagram currently being viewed (see Changing the view.)
  • Theorem h. Creates a new theorem witnessing the current diagram (see Invertibility.)
  • Graphic g. Downloads a PNG representation of the current diagram.

Also, the user can click and click-and-drag on the diagram to produce various effects. When a command is ambiguous, a menu will be presented to allow the user to choose their preferred action.

  • Click. This attempts to attach or rewrite, as appropriate for the location of the click, with an element of the signature. If an element of the signature is marked as invertible, then the higher structure this implies will also be considered for attachment.
  • Click-and-drag. This attempts to attach or rewrite using an interchanger, or naturality for the interchanger, or invertibility of some cell. This is sensitive to both the click location and the direction of the drag, in a way which should be intuitive. This also allows cells to be cancelled from the top or bottom of a diagram.

Clicking and dragging is designed to work as if you were really ‘touching’ the strings. So if you want to braid one strand over another, click the strand to ‘grab’ it, and ‘pull’ it to one side. If you want to pull a vertex through a braiding, click the vertex to ‘grab’ it, and ‘pull’ it up or down through its adjacent braiding. Of course, Globular will only carry out the command if the move you are attempting to make is actually valid in that location.

The most common move to perform is a basic interchanger, where two unrelated critical points with adjacent heights have their heights exchanged. Holding the Shift button while clicking-and-dragging tells Globular to only look for basic interchanger moves. This speeds up the processing, and is particularly useful for applying long chains of interchangers.

In order to undo any change then click the back button in your browser. This feels very counter-intuitive but trust me it works!

Changing the view

Globular can currently present string-diagram visualizations of 0-, 1- and 2-dimensional diagrams. Viewing a kk-dimensional diagram for k>2k \gt 2 is made possible by projection and slicing, controlled by number scrollers which appear in the top-right of a diagram.

  • Project. This determines the number of dimensions to be projected; it can take any value pp in the range 0pk0 \leq p \leq k. Projecting a dimension causes it to be effectively ignored by Globular; it is as if you are looking at a shadow of the true image. The resulting diagrams are exactly the singularity graphics which are a common tool in higher Morse theory.
  • Slice. Having decided to project out pp dimensions, and supposing the image being displayed is vv-dimensional (for v{0,1,2}v \in \{0,1,2\}), that leaves kpvk - p - v dimensions still to be handled. If this sum is positive, coordinates must be chosen using the slice controls to position the view within an appropriate vv-dimensional subdiagram.

You can also zoom the main diagram using the scroll wheel of your mouse, and scroll around by clicking-and-dragging with the right mouse button (on a Mac trackpad, this is a two-fingered press-hard-and-drag. Yes, this really is a thing. If it doesn’t seem to work, you’re not pressing hard enough—the trackpad should ‘click’ under your fingers.)

Technical implementation details

Globular is written in Javascript, and performs all its computations client-side, in the browser. Most of the computations it has to perform are linear in the size of the diagram, so this is quite computationally feasible, even for large proofs. The back-end is a Node.js server that allows the saving, sharing and publishing of workspaces. Graphics are implemented in SVG. Project data is compressed using the LZ4 algorithm.



In a 2-category, a 1-cell and a 2-cell can be composed in one direction (horizontal composition), and two 2-cell can be composed in two directions (horizontal and vertical composition.) In general, in a traditional globular nn-category, a pp-cell and an qq-cell can be composed in min(p,q)\text{min}(p,q) different directions: along a common boundary 0-cell, or 1-cell, and so on, up to a common boundary (min(p,q)1)(\text{min}(p,q)-1)-cell.

In Globular, composition works differently: a pp-cell and a qq-cell can be composed in just one way: along a common boundary (min(p,q)1)(\text{min}(p,q)-1)-cell. The reason for this design decision is that in terms of the graphical calculus, of all the different composites that an ordinary globular nn-category allows, this is the only composition that results in a diagram in generic position. Nothing is lost by this restriction, since (conjecturally) the other composites can be recovered up to isomorphism by whiskering, in just the same way that horizontal composition of 2-cells in a 2-category can be expressed in terms of vertical composites and whiskering of 2-cell by identity 1-cell.

For every way that Globular doesn’t let you compose cells—that is, for every p,qp,q and every 0n<min(p,q)0 \leq n \lt \text{min}(p,q)—there exists a (p+qn1)(p+q-n-1)-cell, which resolves the singularity that would be created if this composite were actually formed. These singularity resolutions manifest in Globular as higher-dimensional cells, which allow parts of a diagram to move around each other; using them effectively is a key part of formalizing higher-dimensional proofs. The main difficulty in the definition of semistrict nn-categories is describing these structures.

In this section we list the singularities which Globular recognizes. We organize them by categorical dimension, because to formalize a proof in an nn-category, you may need to make use of every type of kk-category singularity for knk \leq n. Also, you can add any fixed natural number to the dimensions involved to get higher-dimensional versions of the same singularities; for example, interchangers arise as the composite of two nn-cells along a common boundary (n2)(n-2)-cell.

2-category singularities


  • Composite: two 22-cells composed along a common boundary 0-cell, forming a 3-cell resolution.
  • Interface: When unprojected, click the vertex to be interchanged and drag it up or down; if the interchanger is ambiguous because the source or target is the identity, then make your drag slightly to the left or right. When projected, grab the wire to be interchanged, and drag in the desired direction.

Interchanger source \mathraisebox{1.8cm}{\to} Interchanger target \qquad\qquad Interchanger projection

3-category singularities

Naturality of the interchanger in one variable

  • Composite: a 22-cell and a 33-cell composed along a common boundary 0-cell, forming a 4-cell resolution.
  • Interface:

4-category singularities

Naturality of naturality of the interchanger in one variable

  • Composite: a 2-cell and a 4-cell composed along a common boundary 0-cell, forming a 5-cell resolution.
  • Interface:

Naturality of the interchanger in two variables

  • Composite: two 3-cells composed along a common boundary 0-cell, forming a 5-cell resolution.
  • Interface:

Naturality of invertibility of the interchanger

  • Composite:
  • Interface:

Contractible 3rd Reidemeisterators

  • Composite:
  • Interface:

Other features


A kk-cell f:ABf:A \to B in an \infty-category is invertible when there is an inverse cell f 1:BAf ^{-1} : B \to A, and invertible (k+1)(k+1)-cells μ:id Af 1f\mu: \mathrm{id}_A \to f ^{-1} \circ f and ν:id Bff 1\nu: \mathrm{id}_B \to f \circ f ^{-1}. This is a co-inductive definition, giving rise to an infinite amount of higher-dimensional structure.

In Globular, selecting the ‘Invertible’ option for a cell in the signature allows this higher structure to be used in diagrams, by clicking or clicking-and-dragging at a point of a diagram or its boundary. If more than one piece of higher invertible structure could be inserted at the location of the click, a menu is presented and the user can choose which is intended.

When you move your pointer over a diagram, a little label will pop up telling you what’s underneath the pointer. Doing this near a vertex, you will see that Globular isn’t really aware that the lines curve, so you will need to take care when clicking or clicking-and-dragging that Globular is correctly identifying the structure you are trying to interact with.

The labels are written using the following syntax, where ‘X’ is some arbitrary label denoting a kk-cell, and where ‘.’ is forward composition of kk-cells. Note that every comma increases the dimension by 1.

  • ‘X inverse’ describes the kk-cell which is the inverse of XX
  • ‘X, insert’ describes the canonical (k+1)(k+1)-cell of type id s(X)X.X 1\text{id} _{s(X)} \to X . X^{-1}
  • ‘X, cancel’ describes the canonical (k+1)(k+1)-cell of type X.X 1id s(X)X . X^{-1} \to \text{id} _{s(X)}
  • ‘Interchanger’ describes the height-exchange cell
  • ‘Pull-through interchanger above’, ‘Pull-through interchanger underneath’, ‘Pull-through inverse interchanger above’ and ‘Pull-through inverse interchanger underneath’ describe the 4 different ways that a cell can be pulled through an interchanger

Note that interchangers are of dimension at least 3, and pull-throughs are of dimension at least 4.


The theorem command allows a diagram to be stored, in a such way that it can be reused as a component in subsequent diagrams. The idea is that the diagram is a ‘theorem’ proving that its source can be rewritten into its target. The ‘proof’ is the diagram itself.

Concretely, let DD be the current diagram, which is kk-dimensional, and let s(D)s(D) and t(D)t(D) be its source and target (k1)(k-1)-diagrams. Then the theorem command command creates two new generators:

  • A kk-generator TT with source s(D)s(D) and target t(D)t(D)
  • An invertible (k+1)(k+1)-generator PP with source TT and with target DD

The generator TT can be used in future proofs to ‘stand in’ for the diagram DD. At any point, the generator PP can be used to replace TT with the content of diagram DD. Since PP is invertible, it could also be used to identify DD as a subdiagram of a larger proof, and replace it with TT, making the larger proof easier to understand.


Composites produced by Globular are in generic position; for example, no two vertices ever appear at the same height. As a result, there is a simple coordinate system that can be used to refer to elements of a diagram. For a kk-dimensional cell in an nn-dimensional diagram, (nk+1)(n-k+1) coordinates must be provided; that is, the number of coordinates is the codimension of the cell, plus 1. Moving the mouse cursor over a diagram in the screen shows the coordinate of the element underneath the cursor.

The coordinate system for an nn-diagram is defined in the following way. An nn-cell at height yy has coordinate [y][y]. A kk-cell for k<nk \lt n has leading coordinate given by its height zz in the diagram, and subsequent coordinates given by its coordinates in the slice diagram at that height.

proof assistants:

based on plain type theory/set theory:

based on dependent type theory/homotopy type theory:

based on cubical type theory:

based on modal type theory:

based on simplicial type theory:

For monoidal category theory:

For higher category theory:

projects for formalization of mathematics with proof assistants:

Other proof assistants

Historical projects that died out:


category: software

Last revised on October 18, 2023 at 20:11:18. See the history of this page for a list of all contributions to it.