skew_howe_duality_type_bd on_rfcs

# Quantum computing with anyons: an $F$-matrix and braid calculator

Willie Aboumrad  The Institute for Computational and Mathematical Engineering
(ICME) at Stanford University<EMAIL_ADDRESS>https://web.stanford.edu/
willieab

###### Abstract.

We introduce a pentagon equation solver, available as part of SageMath, and
use it to construct braid group representations associated to certain anyon
systems. We recall the category-theoretic framework for topological quantum
computation to explain how these representations describe the sets of logical
gates available to an anyonic quantum computer for information processing. In
doing so, we avoid venturing deep into topological or conformal quantum field
theory. Instead, we present anyons abstractly as sets of labels together with
a collection of data satisfying a number of axioms, including the pentagon and
hexagon equations, and explain how these data characterize ribbon fusion
categories (RFCs). In the language of RFCs, our solver can produce
$F$-matrices for anyon systems corresponding to multiplicity-free fusion rings
arising in connection with the representation theory of quantum groups
associated to simple Lie algebras with deformation parameter a root of unity.

###### Key words and phrases:

F-matrix, pentagon equations, anyons, quantum computing, fusion rings, fusion
categories

##  1\. Introduction

Two decades ago Freedman and Kitaev proposed a model for topological quantum
computation (TQC) featuring a major advantage over the mainstream qubit model.
Their model encodes information in global properties of topological phases of
matter that are invariant under local deformations. The encoded information is
intrinsically protected at the physical hardware level so the TQC model boasts
a much higher error threshold. The series of papers [FKW02, FLW02, FKLW02,
Kit03] introduced and advanced the TQC model; Section 2.2 recalls the basics
from an algebraic standpoint.

Topological quantum computers are built on anyons, which are point-like
quasiparticles believed to exist in certain $2$-dimensional materials. They
can be understood as primary fields in Wess-Zumino-Witten conformal field
theories [DFMS11, Chapters 15-17] and they can also be described in terms of
Chern-Simons theory [Ien92]. In experimental physics, anyons are expected to
appear in fractional quantum Hall liquids and other superconductors; [NSS+08]
surveys these and other approaches.

Unlike bosons or fermions, anyons support exotic particle statistics; in some
sense, anything can happen because anyons are constrained to two spatial
dimensions. In a $(2+1)$-dimensional spacetime, not all loops are
topologically equivalent: the fundamental group of the configuration space
over $\mathbb{R}^{2}$ is the Artin braid group. This means anyonic statistics
are described by (possibly high-dimensional) representations of the braid
group.

Understanding these representations is tantamount to understanding the
computational power of an anyonic quantum computer because anyon exchanges are
the physical process driving information processing in the TQC model. This
article explains how to obtain these representations and how to construct
their associated matrices explicitly using SageMath. In particular, Section 4
features explicit braid computations.

We begin by presenting anyon systems abstractly in 2.1 as sets of labels
together with complex numbers satisfying a number of axioms. The label set is
equipped with commutative associative addition and multiplication operations
with integral structure coefficients making it into a gadget known as a fusion
ring or Verlinde algebra. Fusion rings are well-known and well-studied, e.g.,
in [Fuc94, Fei04], and they arise in various areas of modern physics and
mathematics, where they describe the possible couplings amongst three objects
of some given class. For example, fusion rings describe:

  * •

The decomposition into irreducibles of tensor products of finite-dimensional
representations of semisimple complex Lie algebras, finite groups, or
associative bialgebras;

  * •

Truncated tensor products of unitary representations of quantum groups with
deformation parameter at a root of unity [AGGS90, CP94];

  * •

The composition of superselection sectors in the $C^{*}$-algebraic approach to
relativistic quantum field theory [FRS89];

  * •

The coupling of primary fields of $\mathcal{W}$-algebras in two-dimensional
conformal field theory [DVV88];

  * •

Operator products in topological quantum field theory [DFMS11, Chapter 6].

With the exception of the last one, the examples above appeared in [Fuc94].

In addition to a label set that defines a fusion ring, an anyon system
consists of three sets of complex numbers: a $6j$-system or $F$-matrix, a
$3j$-system or $R$-matrix, and a pivotal structure.

We stress this data-driven approach to anyons for two reasons: on one hand, it
allows us to readily develop a category-theoretic algebraic framework for TQC
without going deep into conformal or topological quantum field theory; on the
other, it allows us to leverage the FusionRing class in SageMath to perform
explicit computations in many interesting cases. The FusionRing class models
the data defining anyon systems that arise in connection with the finite-
dimensional representation theory of a quantum group associated to a simple
complex Lie algebra with deformation parameter a root of unity. The FusionRing
class can compute $R$-, and $S$-matrices, twists, quantum dimensions, and
invariants such as the Virasoro central charge and global topological order,
amongst others; detailed documentation may be found at
https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/root_system/fusion_ring.html.
Moreover, when the anyon system is multiplicity-free, the FusionRing class can
obtain an associated $F$-matrix. The class was implemented by the author
together with Daniel Bump and Travis Scrimshaw.

With the notion of anyon systems in hand, we argue in Section 2 that certain
ribbon fusion categories (RFCs) capture the dynamics of anyon systems. We have
supplied a companion article [Abo22a] covering the necessary background on
category theory. While this material is well-known and may be found in various
sources, e.g., [BK01, EGNO15], our companion article aims to be concise and
presents only the necessary notions.

Section 3 then computes the desired braid representations by leveraging the
categorical framework to obtain formulas expressing braid generators in terms
of $F$\- and $R$-matrices. 3.4 collects these formulas.

In practice, however, we do not have direct access to all the data specifying
an anyon system; instead, we typically deal with the corresponding RFC. In
particular, in this article we focus on RFCs arising in connection with the
representation theory of quantum groups. In this case, we may easily obtain
the $R$-matrix and the pivotal structure of the corresponding anyon system
using quantum group theory; for details, refer to the documentation of the
FusionRing.twist and FusionRing.r_matrix methods. Obtaining an $F$-matrix,
however, requires some work: we must solve the Pentagon Equations (2.2).

These polynomial relations enforce coherence for the monoidal structure of the
RFC. Ocneanu rigidity guarantees there are only finitely many solutions, so we
can always solve the system using Groebner basis methods, in principle
[Buc76].

In practice, however, these methods are prohibitively slow. The algorithms
scale at least exponentially, in both space and time, as a function of the
number of variables, equations, degrees of the equations, and the number of
solutions to the equations; in an anyon system of $N$ labels, the number of
variables in the pentagon system scales like $N^{6}$ while the number of
equations scales like $N^{9}$. Thus “solving the pentagons turns out to be a
difficult task (even with the help of computers)” [TTWL08, Section 2.4].

In some sense completing this task is more of an art than a science and
engineering takes a leading role. For this we implemented a solver in SageMath
capable of obtaining an $F$-matrix associated to a given multiplicity-free
FusionRing object. In fact there are two solvers available, but here we focus
on the orthogonal solver. The solver is managed by the FMatrix class, and its
open-source implementation is currently available in the Trac server at
https://trac.sagemath.org/ticket/30423. The code may be used upon building the
SageMath development branch, as explained here:
https://doc.sagemath.org/html/en/developer/walk_through.html. The FMatrix
class is currently set to merge into the stable SageMath $9.8$ release.

Although our solver ultimately relies on Groebner basis computations, it
implements a variety of techniques to ensure the calculation remains
manageable in many interesting cases. In particular, the solver is at least
capable of producing an $F$-matrix associated with any multiplicity-free
FusionRing with a dozen generators using the computational resources of a
laptop. Since the solver relies on parallel computations, it would likely
benefit from access to more processing cores.

An important feature is that we exploit the Hexagon Equations (2.3), which
enforce consistency between the associator and the braiding on an RFC. The
hexagons are much more localized than the pentagons: the equations graph they
induce consists of many relatively small connected components that may be
processed independently and in parallel. In addition, the hexagons help
determine a field containing the $F$-matrix as they feature $3j$-symbols in
the form of cyclotomic coefficients. Section 5 discusses this and other
features of our implementation in further detail, including our custom Cython
arithmetic engine for sparse polynomials, the concurrent programming involved,
and the shared data structures needed to support it.

We note that some attempts at solving the pentagon system have appeared in the
literature and some solutions exist for various special cases. For example,
see [Hag07, RSW09, TTWL08, BSS08, CW15, OSW19]. However, to the best of our
knowledge, including the hexagons is a novelty of our solver. In addition, our
solver implementation seems to be the first open-source one available, and the
first one that can handle a variety of fusion rings in a unified framework.

### Acknowledgements

The author is greatly indebted to Daniel Bump and Travis Scrimshaw for their
collaboration, hard work, patience, and feedback in developing the FusionRing
code. The author would also like to thank Eric Rowell for useful discussions
and guidance, especially regarding a formula for computing certain
$R$-symbols. In addition, the author thanks David Roe and Julian Ruth, amongst
others, for useful discussions about SageMath implementation details during
the SageMath Days Conference in May 2021.

##  2\. ABCs of TQC: Anyons, Braids, and Categories for Topological Quantum
Computing

In this section we define anyons systems and explain how to realize anyonic
quantum computation using braiding operators acting on fusion spaces. We show
that anyons can be interpreted as simple objects in certain RFCs, in the sense
of [Abo22a, LABEL:rfc_defn]. Technically, anyon systems define unitary modular
tensor categories (UMTCs), which are RFCs equipped with a collection of
Hermitian forms on hom-sets that is compatible with the associator and whose
braiding satisfies a non-degeneracy condition. We attempt to avoid venturing
too far into the weeds of category theory and instead focus on the structure
that is necessary for the anyonic quantum computation model. In addition, we
only consider multiplicity-free anyon systems.

Without further ado, we begin with a definition.

######  Definition 2.1.

An anyon system is a finite set $\mathcal{C}$ of labels together with the
following data.

  1. (i)

The set $\mathcal{C}$ is equipped with the structure of a fusion ring, which
means there is a commutative associative fusion rule $\times$ and integral
structure constants $N^{ab}_{c}\geq 0$ such that for every
$(a,b)\in\mathcal{C}^{2}$,

$a\times b=\sum_{c\in\mathcal{C}}N^{ab}_{c}c.$ (2.1)

In this work, we only consider multiplicity-free fusion rules: every
$N^{ab}_{c}\in\\{0,1\\}$.

A triple $(a,b,c)\in\mathcal{C}^{3}$ is admissible if $N^{ab}_{c}\neq 0$. We
will sometimes write $c\in\\{a\times b\\}$ to mean $(a,b,c)$ is admissible. A
sextuple $(a,b,c,d,e,f)$ is admissible if $e\in\\{a\times b\\}$,
$d\in\\{e\times c\\}$, and $f\in\\{b\times c\\}$.

  2. (ii)

There is a unique trivial or vacuum label $\mathbf{1}\in\mathcal{C}$ such that
for every $a\in\mathcal{C}$,

$a\times\mathbf{1}=a=\mathbf{1}\times a.$

  3. (iii)

The set $\mathcal{C}$ is equipped with an involutive (ring) automorphism
$*\colon\mathcal{C}\to\mathcal{C}$, called a conjugation or duality operator,
such that for every $a\in\mathcal{C}$,

$\mathbf{1}\in\\{a\times b\\}\quad\text{if and only if}\quad b=a^{*}.$

  4. (iv)

There is an $F$-matrix or $6j$-system $F\colon\mathcal{C}^{6}\to\mathbb{C}$
satisfying the following conditions. Write
$F^{abc}_{d;\,ef}=\big{[}F^{abc}_{d}\big{]}_{ef}$ for $F(a,b,c,d,e,f)$ and let
$F^{abc}_{d}$ denote the matrix with $(e,f)$-entry $F^{abc}_{d;\,ef}$.

    1. (a)

(Admissibility.) If $(a,b,c,d,e,f)$ is not admissible, then
$F^{abc}_{d;\,ef}=0$.

    2. (b)

(Pentagon Axiom.) For every nonuple
$(a,b,c,d,e,f,g,k,\ell)\in\mathcal{C}^{9}$,

$\displaystyle\big{[}F^{fcd}_{e}\big{]}_{g\ell}\big{[}F^{ab\ell}_{d}\big{]}_{fk}$
$\displaystyle=\sum_{h}\big{[}F^{abc}_{g}\big{]}_{fh}\big{[}F^{ahd}_{e}\big{]}_{gk}\big{[}F^{bcd}_{k}\big{]}_{h\ell}.$
(2.2)

    3. (c)

(Triangle Axiom.) For every quadruple $(a,b,c,d)\in\mathcal{C}^{4}$ with
$\mathbf{1}\in\\{a,b,c\\}$,

$F^{abc}_{d}=I.$

    4. (d)

(Rigidity.) For any $a\in\mathcal{C}$,
$\big{[}F^{a,a^{*},a}_{a}\big{]}_{\mathbf{1}\mathbf{1}}=\big{[}\big{(}F^{a^{*},a,a^{*}}_{a^{*}}\big{)}^{-1}\big{]}_{\mathbf{1}\mathbf{1}}$.

  5. (v)

There is a braiding, $3j$-system, or collection of $R$-symbols
$R\colon\mathcal{C}^{3}\to\mathbb{C}$ written as $R(a,b,c)=R^{ab}_{c}$
satisfying the following conditions.

    1. (a)

If $(a,b,c)\in\mathcal{C}^{3}$ is admissible, then $R^{ab}_{c}\neq 0$.

    2. (b)

(Hexagon Axiom.) For every sextuple $(a,b,c,d,e,g)\in\mathcal{C}^{6}$,

$\left(R^{ac}_{e}\right)^{\pm
1}\big{[}F^{acb}_{d}\big{]}_{eg}\left(R^{bc}_{g}\right)^{\pm
1}=\sum_{f}\big{[}F^{cab}_{d}\big{]}_{ef}\,\left(R^{fc}_{d}\right)^{\pm
1}\,\big{[}F^{abc}_{d}\big{]}_{fg}.$ (2.3)

  6. (vi)

There is a compatible pivotal structure $t\colon\mathcal{C}\to\\{\pm 1\\}$
such that $t_{\mathbf{1}}=1$ and for every admissible triple
$(a,b,c)\in\mathcal{C}^{3}$,

$t_{a}t_{b}t_{c}=\big{[}F^{a,b,c^{*}}_{\mathbf{1}}\big{]}_{a^{*},c}\big{[}F^{b,c^{*},a}_{\mathbf{1}}\big{]}_{a^{*},a}\big{[}F^{c^{*},a,b}_{\mathbf{1}}\big{]}_{b^{*},b}$

######  Remark 2.2.

The multiplicity-free assumption is widely adopted in the literature. An
important implication of this hypothesis is that all braiding operators are
semi-simple. Fortuitously, many anyon systems that are physically relevant or
universal for computation are indeed multiplicity-free. For instance, the
multiplicity-free $SO(n)_{2}$ system considered in [CW15] is physically
relevant; the Fibonacci anyon system studied in [TTWL08] is universal for
computation. The so-called metaplectic anyons in $SO(n)_{2}$ are related to
the representation theory discussed in [Abo22c] and [Abo22b]; in particular,
[Abo22b, LABEL:uqodn_uqprime_duality] describes the fusion of the spin object
$S\in SO(n)_{2}$. No explicit $6j$-system is known for a non-multiplicity-free
theory,111Private communication with Eric Rowell. so not much can be said
about such anyons with regards to the quantum computing application.

A few remarks are in order. Observe that a fusion rule expresses the fusion of
two anyons as some sort of super-position over all possible particle types.
Commutativity is equivalent to the identity

$N^{ab}_{c}=N^{ba}_{c},$

while associativity is expressed by

$\sum_{d\in\mathcal{C}}N^{ab}_{d}N^{dc}_{e}=\sum_{d\in\mathcal{C}}N^{bc}_{d}N^{ad}_{e}.$

The conjugation axioms imply that $C_{ab}=N^{ab}_{\mathbf{1}}$ is an order $2$
permutation matrix. They are equivalent to

$N^{ab}_{\mathbf{1}}=\delta_{a^{*},b}=N^{ba}_{\mathbf{1}}.$

Of course a fusion ring isomorphism is a bijective set function
$\varphi\colon\mathcal{C}\to\mathcal{C}^{\prime}$ preserving the fusion rules:

$N^{\varphi(a),\varphi(b)}_{\varphi(c)}=N^{ab}_{c},\qquad
a,b,c\in\mathcal{C}.$

###  2.1. Anyon systems are RFCs

In this work we take an algebraic point of view: up to equivalence, anyon
systems are in one-to-one correspondence with RFCs.

To begin, we construct an RFC using the data defining a given anyon system
$\mathcal{C}$. By slight abuse of notation, we denote this RFC also by
$\mathcal{C}$. The simple objects in $\mathcal{C}$ are the labels in the anyon
system. The semisimple structure is supplied by the fusion rules: the category
$\mathcal{C}$ is a strict tensor category whose Grothendieck ring matches the
fusion ring exactly. The Pentagon Axiom (2.2) enforces a compatibility that is
equivalent to the MacLane coherence axiom, illustrated in Figure 4, required
to hold in any monoidal category. The $R$-symbols furnish the braiding on
$\mathcal{C}$ and the pivotal structure is used to define a family of twists.
Much like the Pentagon Axiom, the Hexagon Axiom (2.3) enforces a compatibility
equivalent to the Hexagon [Abo22a, LABEL:hexagon1 and LABEL:hexagon2] that
must hold in any braided cateogry. To see this, we must understand the hom-
sets of $\mathcal{C}$.

The category $\mathcal{C}$ is enriched over $\mathbb{C}$ and the morphism
spaces are spanned by oriented framed tangle diagrams that allow for trivalent
vertices to account for fusion. We construct the hom-spaces inductively as
follows. To each fusion product $a\times b$ we assign fusion spaces
$\operatorname{Hom}(a\times b,c)=V^{ab}_{c}$ of dimension $N^{ab}_{c}$ for
every $c\in\mathcal{C}$. Since we assume our anyon system is multiplicity-
free, each fusion space $V^{ab}_{c}$ is at most one-dimensional. The splitting
space $\operatorname{Hom}(c,a\times b)=V^{c}_{ab}$ is the dual of
$V^{ab}_{c}$. For each admissible triple $(a,b,c)\in\mathcal{C}$, we choose a
basis of $V^{ab}_{c}$ and label its single non-zero vector by the following
fusion tree, with all strands oriented downwards:

$b$$a$$a$$c$$a$$b$$\in V^{ab}_{c}=\operatorname{Hom}(a\times b,c)$

Whenever $(a,b,c)$ is admissible we label the basis of the dual space
$\operatorname{Hom}(c,a\times b)$ using the same fusion tree but with all
strands pointing upwards.

To the fusion of $m$ anyons $a_{1}\times\cdots\times a_{m}$, we assign fusion
spaces $\operatorname{Hom}(a_{1}\times\cdots\times
a_{m},c)=V^{a_{1},\ldots,a_{m}}_{c}$ that decompose into tensor products of
fusion spaces of two anyons by matching intermediate indices:

$V^{a_{1},\ldots,a_{m}}_{c}\cong\bigoplus_{e_{1},\ldots,e_{m-2}}V^{a_{1}a_{2}}_{e_{1}}\otimes
V^{e_{1}a_{3}}_{e_{2}}\otimes\cdots\otimes
V^{e_{m-3},a_{m-1}}_{e_{m-2}}\otimes V^{e_{m-2},a_{m}}_{c}.$ (2.4)

This means there is a basis of $\operatorname{Hom}(a_{1}\times\cdots\times
a_{m},b)$ enumerated by admissible fusion trees: those whose every trivalent
vertex is admissible. Figure 1 illustrates the standard basis of
$\operatorname{Hom}(a_{1}\times\cdots\times a_{m},b)$.

$a_{1}$$c$$a_{2}$$e_{1}$$a_{3}$$e_{2}$$a_{4}$$e_{3}$$a_{5}$ Figure 1. The
standard basis of $\operatorname{Hom}(a_{1}\times\cdots\times
a_{m},b)=V^{a_{1},\ldots,a_{m}}_{b}$ is labeled by fusion trees as above. Here
$m=5$.

Since the fusion rule is associative, many decompositions as in Equation 2.4
are possible. For instance, if $m=3$, then

$V^{abc}_{d}\cong\bigoplus_{e}V^{ab}_{e}\otimes
V^{ec}_{d}\cong\bigoplus_{f}V^{af}_{d}\otimes V^{bc}_{f}.$ (2.5)

The Pentagon Axiom (2.2) ensures all possible decompositions of
$\operatorname{Hom}(a_{1}\times\cdots\times a_{m},b)$ into tensor products are
equivalent. This can be seen by using the $F$-matrix to define a family of
isomorphisms between the two decompositions of $V^{abc}_{d}$ for every
quadruple $(a,b,c,d)\in\mathcal{C}^{4}$. In particular, the $F$-matrix
determines the change of basis isomorphism
$\big{[}F^{abc}_{d}\big{]}\colon\operatorname{Hom}\left((a\times b)\times
c,d\right)\rightarrow\operatorname{Hom}\left(a\times(b\times c),d\right)$
between the decompositions in Equation 2.5. This change of basis is known as
an $F$-move and it is depicted in Figure 2; in bra-ket notation, it is written
as

$\ket{a,b;e}\ket{e,c;d}=\sum_{f}\big{[}F^{abc}_{d}\big{]}_{ef}\ket{a,f;d}\ket{b,c;f}.$

$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$e$$\displaystyle\sum_{f}F^{abc}_{d;\,ef}$
$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$f$ Figure 2. The $F$-move is an isomorphism
$\bigoplus_{e}V^{ab}_{e}\otimes V^{ec}_{d}\cong\operatorname{Hom}\left(a\times
b\times c,d\right)\cong\bigoplus_{f}V^{af}_{d}\otimes V^{bc}_{f}$.

The Pentagon Axiom (2.2) enforces a consistency that ensures any two sequences
of $F$-moves starting and ending in the same decomposition yield the same
result; explicitly, Equation 2.2 requires the equivalence of the two sequences
illustrated in Figure 3. The diagram in Figure 3 is the image of that in
Figure 4 under the contravariant functor $\operatorname{Hom}(\cdot,e)$. Thus
the MacLane Coherence Theorem [Lan78, Section VII.2] implies the equivalence
of all sequences of $F$-moves starting and ending in the same decomposition:
for every diagram at the fusion space level, there is a corresponding diagram
at the level of $\mathrm{Ob}(\mathcal{C})$ whose commutativity is guaranteed
by a pentagon like the one in Figure 4. Note the MacLane Coherence Theorem
applies to $\mathcal{C}$ automatically because it is a strict monoidal
category.

$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$e$$a$$b$$c$$d$$f$$\ell$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$e$$a$$b$$c$$d$$f$$g$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$e$$a$$b$$c$$d$$g$$h$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$e$$a$$b$$c$$d$$h$$k$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$e$$a$$b$$c$$d$$\ell$$k$$F^{fcd}_{e}$$F^{abc}_{g}$$F^{abc}_{g}$$F^{bcd}_{k}$$F^{ab\ell}_{e}$
Figure 3. The Pentagon Relations guarantee that different sequences of
$F$-moves starting and ending in the same fusion basis give the same result.
The Pentagon Axiom (2.2) are equivalent to the commutativity of this diagram.

$(a\times b)\times(c\times d)$$\big{(}(a\times b)\times c\big{)}\times
d$$\big{(}a\times(b\times c)\big{)}\times d\quad\quad$$\quad\quad
a\times\big{(}(b\times c)\times d\big{)}$$a\times\big{(}b\times(c\times
d)\big{)}$

Figure 4. The Pentagon Axiom (2.2) is equivalent to the commutativity of the
image of this diagram under $\operatorname{Hom}(\cdot,e)$.

Since the morphism spaces are spanned by certain tangles, we may construct a
braiding on $\mathcal{C}$ using the $3j$-system as follows. For starters, we
define the $R$-move on $\operatorname{Hom}(a\times b,c)$, for any admissible
triple $(a,b,c)\in\mathcal{C}^{3}$, by identifying the following tangles:

$b$$a$$a$$a$$a$$c$$b$$=$$R^{ab}_{c}$$b$$a$$a$$c$$a$$b$,
$b$$a$$a$$a$$a$$c$$b$$=$$\left(R^{ab}_{c}\right)^{-1}$$b$$a$$a$$c$$a$$b$.

Note that these diagrams distinguish between a positive crossing and its
inverse. Using these identifications, we define a natural isomorphism
$R_{ab}\in\operatorname{Hom}(a\times b,b\times
a)=\bigoplus_{c\in\mathcal{C}}\operatorname{Hom}(a\times b,c)$ satisfying

$R_{ab}=\sum_{c}N_{ab}^{c}R^{ab}_{c}\ket{ab;c}$ (2.6)

for each every pair $(a,b)$ of simple objects in $\mathcal{C}$.

Now we extend the map $(a,b)\to R_{ab}$ to generic objects of $\mathcal{C}$
using its tensor category structure: the Hexagon Axiom (2.3) allows us to
decompose terms of the form $R_{a,b\times c}$ and $R_{a\times b,c}$, for
simple objects $a,b,c$, in a consistent manner using an appropriate sequence
of $F$-moves. In particular, the Hexagon Axiom (2.3) guarantees the
commutativity of the hexagon in Figure 5, which is needed in any tensor
category, because it explicitly enforces equivalence between the two sequences
of $F$\- and $R$-moves illustrated in Figure 6. Thus, much like the Pentagon
Axiom (2.2) enforces the coherence for the tensor product required to make
$\mathcal{C}$ a monoidal category, the Hexagon Axiom (2.3) imposes the
compatibility on the braiding needed to make $\mathcal{C}$ a braided category,
in the sense of [Abo22a, LABEL:braided_tensor_category].

${(a\times c)\times b}$${a\times(c\times b)}$${(c\times a)\times
b}$${a\times(b\times c)}$${c\times(a\times b)}$${(a\times b)\times
c}$$\scriptstyle{\mathrm{id}_{a}\otimes
R_{c,b}}$$\scriptstyle{R_{c,a}\otimes\mathrm{id}_{b}}$$\scriptstyle{R_{c,a\times
b}}$ Figure 5. The Hexagon Axiom (2.3) guarantees the commutativity of this
diagram, which is required in any braided category.
$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$g$$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$g$$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$e$$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$e$$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$f$$b$$a$$t_{1}$$a$$a$$d$$a$$b$$c$$f$$R^{cb}_{g}$$F^{acb}_{d}$$R^{ca}_{e}$$F^{cab}_{d}$$R^{cf}_{d}$$F^{abc}_{d}$
Figure 6. Enforcing the Hexagon Axiom Equation 2.3, which is equivalent to the
commutativity of this diagram, ensures that the braiding on $\mathcal{C}$ is
compatible with its monoidal structure.

With compatible braiding and monoidal structures in hand, it remains to define
a twist. To do this, we must first construct a left rigidity on $\mathcal{C}$,
in the sense of [Abo22a, LABEL:left_duality]. The conjugation map
$\ast\colon\mathcal{C}\to\mathcal{C}$ on the anyon system supplies the dual
objects; concretely, for each $a\in\mathrm{Ob}(\mathcal{C})$ we let
$a^{*}\in\mathrm{Ob}(\mathcal{C})$ denote its dual. In addition, we define the
birth and death duality maps $b_{a}\in\operatorname{Hom}(\mathbb{C},a\times
a^{*})$ and $d_{a}\in\operatorname{Hom}(a^{*}\times a,\mathbb{C})$ as the
tangles

$b_{a}=$$a^{\phantom{*}}$$a^{*}$and$d_{a}=$$a^{*}$$a^{\phantom{*}}$

The rigidity axioms [Abo22a, LABEL:left_rigidity] follow immediately from the
so-called arms-bending Moves 5-8 in [Abo22a, LABEL:ribbon_category_relations].

We may now define a family of twists on $\mathcal{C}$ using the left duality
and the pivotal structure $t_{a}$. First, for each $a\in\mathcal{C}$, define
the isomorphism $\psi_{a}\colon a^{**}\to a$ as the composition
$\psi_{a}=(\mathrm{id}_{a}\otimes
d_{a^{*}})(c_{a,a^{**}}\otimes\mathrm{id}_{a^{*}})(\mathrm{id}_{a^{**}}\otimes
b_{a})$ corresponding to the following tangle:

$\psi_{a}=$

Since the conjugation map is an involution, we have $a^{**}=a$ in the tensor
category $\mathcal{C}$. Now set $\theta_{a}=t_{a}\psi_{a}$ for each
$a\in\mathcal{C}$. Theorem 4.17 in [Wan10] guarantees that
$\theta\colon\mathcal{C}\to\mathcal{C}$ extends to a functor defining a family
of twists in the sense of [Abo22a, LABEL:ribbon_cat]. Alternatively, see Lemma
2.2.2 in [BK01]. Notice that the tangle defining $\psi_{a}$ motivates the RFC
terminology: multiplying by $\theta_{a}$ introduces a twist in the framed
strand, or ribbon, labeled by $a$.

Since we may construct a category equipped with compatible monoidal, braiding,
and ribbon structures using the data in 2.1 characterizing an anyon system, it
follows that each anyon system determines an RFC.

In fact this RFC is characterized uniquely by the corresponding anyon system
up to equivalence of its $6j$-system [Yam02, Proposition 1.1].

######  Definition 2.3.

[Wan10, Definition 4.10] Two $6j$-systems $F$ and $\widetilde{F}$ on a label
set $\mathcal{C}$ are gauge equivalent if there exists a map
$f\colon\mathcal{C}^{3}\to\mathbb{C}$, written as $f(a,b,c)=f^{ab}_{c}$ and
known as a gauge transformation, satisfying the following axioms.

  1. (1)

$f^{ab}_{c}\neq 0$ if and only if $(a,b,c)$ is admissible.

  2. (2)

$f^{\mathbf{1}a}_{a}=f^{a\mathbf{1}}_{a}=1$ for every $a\in\mathcal{C}$.

  3. (3)

(Rectangle Axiom.) For every sextuple $(a,b,c,d,x,y)\in\mathcal{C}^{6}$,

$f^{bc}_{y}f^{ay}_{d}F^{abc}_{d;xy}=\widetilde{F}^{abc}_{d;xy}f^{ab}_{x}f^{xc}_{d}.$
(2.7)

Then $F$ and $\widetilde{F}$ are equivalent if they are gauge equivalent up to
fusion ring automorphism.

We may interpret the gauge transformation $\\{f^{ab}_{c}\\}$ as a family of
change-of-basis maps on $\\{V^{ab}_{c}\\}$ that is compatible with the
$F$-matrix. Scalars suffice because we only consider multiplicity-free anyon
systems, which means each fusion space $\operatorname{Hom}(a\times
b,c)=V^{ab}_{c}$ is at most one-dimensional. Thus Equation 2.7 expresses the
commutativity of the following diagram.

${\bigoplus_{x}V^{ab}_{x}\otimes V^{xc}_{d}}$${\operatorname{Hom}\left(a\times
b\times c,d\right)}$${\bigoplus_{y}V^{ay}_{d}\otimes
V^{bc}_{y}}$${\bigoplus_{x}V^{ab}_{x}\otimes
V^{xc}_{d}}$${\operatorname{Hom}\left(a\times b\times
c,d\right)}$${\bigoplus_{y}V^{ay}_{d}\otimes
V^{bc}_{y}}$$\scriptstyle{=}$$\scriptstyle{f^{ab}_{x}\otimes
f^{xc}_{d}\quad}$$\scriptstyle{F^{abc}_{d}}$$\scriptstyle{\quad
f^{ay}_{d}\otimes
f^{bc}_{y}}$$\scriptstyle{\widetilde{F}^{abc}_{d}}$$\scriptstyle{=}$

Since there is a one-to-one correspondence between anyon systems, up to gauge
equivalence, and RFCs, up to categorical equivalence, from now on we do not
distinguish between an anyon system and the RFC it characterizes.

To conclude, we remark that the fusion rule alone is almost sufficient to pin
down the corresponding RFC: Ocneanu rigidity states that there are only
finitely many equivalence classes of RFCs with a given fusion rule. Ocneanu
himself never published a proof but there are various secondary sources; see,
e.g., [ENO05, Theorem 2.28], [Kit06, Section E.6], and [Hag07, Theorem 4.1].

###  2.2. RFC framework for TQC

Now we explain how to leverage the RFC framework to simulate anyonic quantum
computers. The key is to look at the braid representations induced by the RFC
corresponding to a given anyon system under the right light.

These representations arise as follows. For concreteness, let $\mathcal{C}$
denote an anyon system, let $a$ denote any label in $\mathcal{C}$, and
consider the map $R_{aa}$ defined by Equation 2.6. Then for any $m$ we obtain
a braid group representation
$B_{m}\to\operatorname{End}_{\mathcal{C}}(a^{\times m})$ satisfying

$\sigma_{j}\to\mathrm{id}_{a^{\times(j-1)}}\otimes
R_{aa}\otimes\mathrm{id}_{a^{\times(m-j-1)}},$ (2.8)

with $\sigma_{j}$ denoting the $j$th braid generator of $B_{m}$. For details,
recall [Abo22a, LABEL:braid_repn_induced_by_braiding].

Equation 2.8 may be understood as an action of $B_{m}$ on the fusion spaces
$\operatorname{Hom}(a^{\times m},b)$, for $b\in\mathcal{C}$. This follows from
the semisimplicity of $\mathcal{C}$: if we write $a^{\times
m}=\bigoplus_{b\in\mathcal{C}}N_{b}\,b$ for some multiplicities $N_{b}$, we
see that

$\operatorname{End}(a^{\times
m})=\bigoplus_{b\in\mathcal{C}}N_{b}\operatorname{Hom}(a^{\times m},b).$ (2.9)

This action is essential: it explains the quantum computing application. To
see this, we must borrow two facts from theoretical physics. The first is that
anyon configurations are constrained to two spatial dimensions. This means the
world-lines tracking the dynamics of point-like anyons in their
$(2+1)$-dimensional spacetime are described by braids, since the fundamental
group of the configuration space associated to $m$ well-separated anyons in a
plane is the braid group $B_{m}$. The second fact is that anyon configurations
in certain topological phases of matter are expected to support degenerate
ground states protected by a positive energy gap [NSS+08, Section 2]; these
anyons are said to be non-abelian. This means we can assign a full
$n$-dimensional Hilbert space, with $n>1$, to a fixed anyon configuration, and
that it is possible to exchange anyons adiabatically while preserving this
state space.

The most remarkable feature is that, while preserving the state space, each
exchange induces a state transformation that is non-trivial in general. Since
the world-lines describing anyon exchanges in the corresponding
$(2+1)$-dimensional spacetime determine (topological) equivalence classes of
braids, there is a correspondence between exchanges and unitary operators on
the state space that factors through the braid group. In particular, each
operator exchanging anyons with adjacent labels corresponds to a braid
generator.

${B_{m}}$${\\{\text{unitary operators on state space}\\}}$${\\{\text{adiabatic
pairwise anyon exchanges}\\}}$

This gives the endomorphism spaces of $\mathcal{C}$ a nice physical
interpretation: each tangle in $\operatorname{End}(a^{m})$ models (a
topological equivalence class of) world-lines in a $(2+1)$-dimensional
spacetime describing the time evolution of a certain anyon configuration.

Fusion spaces enter the story as follows. Following a sequence of anyon
exchanges, which transforms a given state in the associated state space
according to a representation of $B_{m}$, the anyons may be fused together as
a kind of measurement operation. The fusion, which we denote by $a^{\times
m}$, results in a superposition $\bigoplus_{b\in\mathcal{C}}N_{b}\,b$ over all
possible anyon types. The probability of observing any particular outcome is
proportional to the multiplicity $N_{b}$. Therefore the state space associated
to our given anyon configuration decomposes into a sum of fusion spaces
according to the possible measurement outcomes.

Thus the braid group action induced by $\mathcal{C}$ on the fusion space
$\operatorname{Hom}(a^{\times m},b)$ models the physical process of adiabatic
anyon exchange followed by fusing $a^{\times m}$ to obtain $b$.

This physical process results in computation once we identify a distinguished
computational basis $\ket{0},\ldots,\ket{d-1}$ in
$\operatorname{Hom}(a^{\times m},b)$ and keep track of anyon exchanges using
the braid group representation described explicitly in terms of our
distinguished basis. The representation $\rho^{a}_{m}\colon
B_{m}\to\operatorname{End}_{\mathcal{C}}(a^{\times m})$ is a bookkeeping
device: the image of each generator tracks how a given vector in the chosen
qudit computational basis $\ket{0},\ldots,\ket{d-1}$ transforms under the
effect of an anyon exchange. In other words, the representation provides a
dictionary between braid generators and unitary transformations on the
degenerate ground state. Figure 7 illustrates this process.

$\sigma_{2}\ket{0}=$$a_{1}$$c$$a_{2}$$e_{1}$$a_{3}$$e_{2}$$a_{4}$$a$$a$$b$$a$$a$$\displaystyle\sum_{f}[\sigma_{2}]_{\ket{e_{1}e_{2}},\;\ket{fe_{2}}}$
$a_{1}$$c$$a_{2}$$e_{1}$$a_{3}$$e_{2}$$a_{4}$$f$$e_{2}$$a$$a$$a$$a$$b$ Figure
7. The action of $\sigma_{2}\in B_{m}$ on a chosen standard basis state
$\ket{0}\in\operatorname{Hom}(a^{\times m},b)$, with $m=4$.

Thus depending on $\mathcal{C}$, $a$, and $m$, it may be possible to identify
traditional quantum circuit gates, like the CNOT and single qubit rotations,
as certain braid words in the image of $\rho^{a}_{m}$. Section 4 illustrates
some explicit identifications.

In general, the image of $\rho^{a}_{m}$ describes the set of possible logic
gates available to an anyonic quantum computer processing information encoded
in the fusion spaces $\operatorname{Hom}(a^{\times m},b)$ by braiding anyons
of type $a$. In this way, certain RFCs provide a means for modeling anyonic
quantum computers.

Constructing these braid representations is therefore essential for
understanding the computational power of a given anyon system. The following
section obtains formulas for these representations in terms of $F$\- and
$R$-matrices.

##  3\. Braiding via $F$\- and $R$-matrices

Let $\mathcal{C}$ be an anyon system in the sense of 2.1. In this section we
describe the braid group representations
$B_{m}\to\operatorname{End}_{\mathcal{C}}(a^{\times m})$ induced by
$\mathcal{C}$ via Equation 2.8. We decompose $\operatorname{End}(a^{\times
m})$ as in Equation 2.9 and describe the representations explicitly with
respect to the computational bases defined in 3.1. Then we obtain the
necessary matrix coefficients using the $F$\- and $R$-matrices defining
$\mathcal{C}$ in 3.4.

SageMath can compute the explicit representations described below, for those
anyon systems described by its FusionRing class; precisely, these are the
anyon systems whose corresponding RFC is a semisimple quotient of the category
of finite dimensional representations of a quantum group associated to a
complex simple Lie algebra with deformation parameter a root of unity.

As noted in see Section 2, these representations are critical to the quantum
computing application because they describe the sets of possible logic gates
that an anyonic quantum computer can use to process information encoded in
associated fusion spaces.

To begin, we define a preferred computational basis $\mathcal{T}_{m}$ for each
fusion space $\operatorname{Hom}(a^{\times m},b)$. Our basis corresponds to
the decomposition of $\operatorname{Hom}(a^{\times m},b)$ obtained by fusing
the anyons in pairs; for instance, if $m=2r+1$ we have

$\operatorname{Hom}(a^{\times
m},b)\cong\bigoplus_{\begin{subarray}{c}t_{1},\ldots,t_{r}\\\
\ell_{1},\ldots,\ell_{r-1}\end{subarray}}V^{aa}_{t_{1}}\otimes\cdots\otimes
V^{aa}_{t_{r}}\otimes V^{t_{1}t_{2}}_{\ell_{1}}\otimes
V^{\ell_{1}t_{3}}_{\ell_{2}}\otimes\cdots\otimes V^{\ell_{r-1},a}_{b}$

This basis is parametrized by the $m-2$ labels $\ket{t\ell}$. For
concreteness, Figure 8 depicts basis elements of $\operatorname{Hom}(a^{7},b)$
and $\operatorname{Hom}(a^{8},b)$ respectively labeled by

$\ket{t_{1}t_{2}t_{3}\ell_{1}\ell_{2}}\quad\text{and}\quad\ket{t_{1}t_{2}t_{3}t_{4}\ell_{1}\ell_{2}}.$

$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$\ell_{2}$$a$$t_{3}$$a$$a$$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$\ell_{2}$$a$$t_{3}$$a$$a$$t_{4}$$a$
Figure 8. A fusion tree basis $\ket{t\ell}$ for $\operatorname{Hom}(a^{\otimes
m},b)$. On the left, $m=7$ is odd. On the right, $m=8$ is even.

The next proposition enumerates $\mathcal{T}_{m}$ recursively. The bases
differ slightly depending on the parity of $m$, so we treat the two cases
separately. Our implementation in SageMath mimics this construction.

######  Proposition 3.1.

If $m=2r$, let

$\mathcal{T}_{m}=\bigcup_{t\in\\{a\times
a\\}^{r}}\\{\ket{t\ell}\mid\ell_{1}\in\\{t_{1}\times
t_{2}\\},\;\ell_{j+1}\in\\{\ell_{j}\times
t_{j+2}\\},\;j=1,\ldots,r-3,\;b\in\\{\ell_{r-2}\times t_{r}\\}\\}.$

If $m=2r+1$, replace the condition $b\in\\{\ell_{r-2}\times t_{r}\\}$ defining
$\mathcal{T}_{m}$ by $b\in\\{\ell_{r-1}\times a\\}$. For any $m\geq 1$,
$\mathcal{T}_{m}$ defines a basis of $\operatorname{Hom}(a^{\otimes m},b)$.

######  Remark 3.2.

When $m=2r+1$ is odd, there is an “unpaired” $a$ that fuses with $\ell_{r-1}$
to produce the root $b$, so the tree labeled by $\ket{t\ell}$ is admissible
only if $b\in\ell_{r-1}\times a$.

###### Proof.

The proof follows from a quick induction: notice that

$\displaystyle\\{(\ell_{1},\ell_{2},$
$\displaystyle\ldots,\ell_{r-1})\mid\ell_{1}\in t_{1}\times
t_{2},\;\ell_{j+1}\in\ell_{j}\times
t_{j+2},\;j=1,\ldots,r-3,\;b\in\ell_{r-2}\times t_{r}\\}$
$\displaystyle=\bigcup_{\ell_{1}\in t_{1}\times
t_{2}}\\{(\ell_{1},\ell_{2},\ldots,\ell_{r-1})\mid\ell_{j+1}\in\ell_{j}\times
t_{j+2},\;j=1,\ldots,r-3,\;b\in\ell_{r-2}\times t_{r}\\}.\qed$

The next theorem obtains formulas for the action of braid generators on
$\operatorname{Hom}(a^{\times m},b)$ with respect to $\mathcal{T}_{m}$. We
consider odd- and even-indexed generators separately. Figure 9 shows each odd-
indexed generator acts diagonally on $\mathcal{T}_{m}$; our computational
basis diagonalizes at least half the braid generators. The action of even-
indexed generators is more complicated but it boils down to a calculation in
either $\operatorname{Hom}(a^{3},b)$ or $\operatorname{Hom}(a^{4},b)$,
depending on the parity of $m$, so we single out these important special cases
in the next lemma.

######  Lemma 3.3.

With respect to $\mathcal{T}_{m}$, the braid generator $\sigma_{2}\in B_{3}$
acts on $\operatorname{Hom}(a^{\otimes 3},b)$ as the matrix

$(\sigma_{2})_{\ket{x},\ket{y}}=\sum_{z\in\mathcal{C}}\left[F^{aaa}_{b;\,zy}\right]^{-1}R^{aa}_{y}F^{aaa}_{b;\,yx}.$

Similarly, $\sigma_{2}\in B_{4}$ acts on $\operatorname{Hom}(a^{\otimes 4},b)$
as the matrix

$(\sigma_{2})_{\ket{xx^{\prime}},\ket{yy^{\prime}}}=\sum_{c,d}F^{aay^{\prime}}_{b;\,yc}\left[F^{aaa}_{c;\,y^{\prime}d}\right]^{-1}R^{aa}_{d}F^{aaa}_{c;\,dx^{\prime}}\left[F^{aax^{\prime}}_{b;\,cx}\right]^{-1}.$

###### Proof.

Our proof is diagrammatic. Figures 10 and 11 compute the action of
$\sigma_{2}$ on $\operatorname{Hom}(a^{3},b)$ and
$\operatorname{Hom}(a^{4},b)$ with respect to $\mathcal{T}_{m}$ using a
sequence of $F$\- and $R$-moves. In both cases the sums range over all
admissible trees. ∎

With 3.3 in hand, we may easily compute the action of every braid generator.

######  Theorem 3.4.

For any $m$ and any $j=1,\ldots,r$, the braid generator $\sigma_{2j-1}$ in
$B_{m}$ acts on $\mathcal{T}_{m}$ as the matrix

$\left(\sigma_{2j-1}\right)_{\ket{t\ell},\ket{t^{\prime}\ell^{\prime}}}=R^{aa}_{t_{j}}\delta_{\ket{t\ell},\ket{t^{\prime}\ell^{\prime}}}.$
(3.1)

Now suppose $m=2r+1$ and consider $\sigma_{2}^{(3)}\in B_{3}$. Then
$\sigma_{2r}$ in $B_{m}$ acts on $\mathcal{T}_{m}$ as the matrix

$\left(\sigma_{2j}\right)_{\ket{t^{\prime}\ell^{\prime}},\ket{t\ell}}=\sum_{c}F^{\ell_{r-1}t_{r}a}_{b;\,\ell_{r-2}c}\left(\sigma_{2}^{(3)}\right)_{\ket{t_{r}^{\prime}},\,\ket{t_{r}}}\left[F^{\ell_{r-1}t_{r}^{\prime}a}_{b;\,cf}\right]^{-1}$

Conversely, suppose that $m=2r$, or that $m=2r+1$ and $j<r$, and consider
$\sigma_{2}^{(4)}\in B_{4}$. Then, $\sigma_{2j}$ in $B_{m}$ acts on
$\mathcal{T}_{m}$ as the matrix

$\left(\sigma_{2j}\right)_{\ket{t^{\prime}\ell^{\prime}},\ket{t\ell}}=\sum_{c}F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,\ell_{j-1}c}\left(\sigma_{2}^{(4)}\right)_{\ket{t_{j}^{\prime}t_{j+1}^{\prime}},\,\ket{t_{j}t_{j+1}}}\left[F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,cf}\right]^{-1}$

Here $\ell^{*}=\ell_{j-2}$ if $j\geq 2$, $\ell^{*}=t_{1}$ if $j=1$,
$b^{*}=\ell_{j}$ if $j<r-2$, and $b^{*}=b$ if $j=r-2$.

###### Proof.

Again, our proof is diagrammatic. Figure 12 computes the action $\sigma_{2j}$
on $\operatorname{Hom}(a^{m},b)$ using a sequence of $F$\- and $R$-moves. The
second equality uses 3.3 to apply $\sigma_{2}^{(4)}$ to a subspace of
$\operatorname{Hom}(a^{m},b)$ isomorphic to $\operatorname{Hom}(a^{4},c)$.
Figure 13 illustrates the slight modification necessary when $m=2r+1$ and
$j=r$: in this case we apply $\sigma_{2}^{(3)}$ to a subspace of
$\operatorname{Hom}(a^{m},b)$ isomorphic to $\operatorname{Hom}(a^{3},c)$. ∎

##  4\. Numerical computations

In this section we illustrate a few explicit computations performed using the
FusionRing class implemented in SageMath. In particular, we explicitly
identify a few traditional quantum circuit gates in the image of the braid
representations induced by the so-called metaplectic and Fibonacci anyons
[HNW13, TTWL08].

For instance, we may easily reproduce the calculations in Section 3.2 of
[CW15] using a few lines of code. To begin, we construct a FusionRing modeling
the anyon system $SU(2)_{4}$, with objects labeled by the $\mathfrak{su}(2)$
weights $j/2$ for $0\leq 0\leq 4$. We use the fusion_labels

$0\leftrightarrow\mathbf{1},\qquad 1/2\leftrightarrow X_{\epsilon},\qquad
1\leftrightarrow Y,\qquad 3/2\leftrightarrow X_{\epsilon}^{\prime},\qquad
2\leftrightarrow Z$

specified in [CW15, Section 3.2] for notational consistency.

⬇

su24.fusion_labels([’one’, ’X_e’, ’Y’, ’X_ep’, ’Z’], inject_variables=True)

Injecting variables allows us to verify that indeed X_e**2 == one + Y.

Next we construct explicit matrices describing the representation
$\rho^{X_{\epsilon}}_{4}\colon B_{4}\to\operatorname{Hom}(X_{\epsilon},Y)$
with respect to the computational basis described in 3.1.

We may verify that indeed comp_basis == [(Y, Y), (Y, one), (one, Y)]. Section
3.2 in [CW15] considers the ordered basis
$\\{\ket{YY},\ket{\mathbf{1}Y},\ket{Y\mathbf{1}}\\}$ so we re-order our basis
here for consistency.

⬇

sig = [T * ss * T.inverse() for ss in sig]

Finally we may verify the matrices printed in [CW15]. For instance,

⬇

gamma = su24.root_of_unity(1/12)

sig[0] / gamma, sig[2] / gamma

results in the matrices

$\left[\begin{array}[]{rrr}1&0&0\\\ 0&\zeta_{48}^{8}-1&0\\\
0&0&1\end{array}\right]\quad\text{and}\quad\left[\begin{array}[]{rrr}1&0&0\\\
0&1&0\\\ 0&0&\zeta_{48}^{8}-1\end{array}\right].$

Here $\zeta_{48}=e^{{2\pi i\over 48}}$ denotes the cyclotomic field generator
su24.field().gen(). Of course $\texttt{omega}==\zeta_{48}^{8}-1$. Similarly,
we may verify Cui and Wang’s construction of the Hadamard gate, up to a phase:
the code

⬇

q = sig[2] * sig[1] * sig[2] / gamma**3

H = q**2 * p * q**2

sqrtd = su24.field()(sqrt(3))

su24.root_of_unity(1/2) * sqrtd * H

prints

$\left[\begin{array}[]{rrr}1&1&1\\\ 1&\zeta_{48}^{8}-1&-\zeta_{48}^{8}\\\
1&-\zeta_{48}^{8}&\zeta_{48}^{8}-1\end{array}\right].$

Equivalently, we could define the Hadamard gate as a matrix H, cast it as an
element of the MatrixGroup generated by sig, and then using the word_problem
method to obtain an expression for H as a word in the elements of the list
sig.

In addition, we may ask for the structure of the group generated by the braid
generators, modulo the global phase $\gamma=e^{{2\pi i\over 12}}$.

⬇

G.structure_description()

Indeed, we may verify that G.cardinality() == 648 as claimed.

Notice we may just as easily deal with metaplectic anyons belonging to larger
fusion rings. In particular, the following code computes the braid
representations induced by metaplectic anyons in $SO(2r+1)_{2}$. The
metaplectic anyon $X_{\epsilon}$ is labeled by the half-integral weight in
$\mathfrak{so}_{2r+1}$ and $Y_{1}$ corresponds to the first fundamental weight
$(1,0,\ldots,0)$.

⬇

sor = FusionRing([’B’, r], 2)

Y1 = sor([1] + [0]*(r-1))

X_e = sor([1/2]*r)

comp_basis, sig = sor.get_braid_generators(X_e, Y1, 4)

G = MatrixGroup(sig)

G.structure_description()

The result of this calculation explains the metaplectic anyon terminology: the
image of the induced representation is a metaplectic group [GJ89].

Similarly, we may just as easily explore braid representations on more
strands.

⬇

comp_basis, sig = sor.get_braid_generators(X_e, Y1, n_strands)

As another example, we consider building Pauli gates $X,Y,Z$ as words in the
image of a braid representation induced by the Fibonacci anyon, which we label
by $\tau$ as usual. In particular, we consider the representation
$\rho^{\tau}_{3}\colon B_{3}\to\operatorname{Hom}(\tau^{\times 3},\tau)$.

⬇

fr.fusion_labels((’one’, ’tau’), inject_variables=True)

comp_basis, sig = fib.get_braid_generators(tau, tau, 3)

The image of $\rho^{\tau}_{3}$ is dense in $SU(2)$, so in principle we could
approximate any single-qubit gate, to arbitrary accuracy, using an appropriate
word in $B_{3}$. To illustrate the approximation process, we follow Section
V.B in [HZBS07] and construct so-called weaves approximating the gate $iX$. We
note that in this case, SageMath cannot simply solve the word problem in the
image of $\rho^{\tau}_{3}$ because the generating matrices contain non-
cyclotomic entries.

⬇

target = CCmat([0, I, I, 0])

pattern = weave_searcher(target, max_len=11, tol=1e-2)

weave = sig[0].parent().one()

for j in range(len(pattern)):

weave = sig[j%2]**pattern[j] * weave

A naive implementation of the brute-force weave_searcher is available at
https://github.com/willieab/weave_searcher.

##  5\. $F$-matrix solver implementation

In this section we discuss our implementation of the orthogonal $F$-matrix
solver in some detail. The solver is available as the SageMath method
FMatrix.find_orthogonal_solution. Currently, the code is available on the
SageMath development branch at https://trac.sagemath.org/ticket/30423; it is
set to merge into the stable SageMath $9.8$ release. In a nutshell, the solver
computes a solution to the Pentagon Equations (2.2) associated to a given
FusionRing object using Groebner basis methods; essentially, the solver
implements various techniques to ensure that the calculation, which typically
scales exponentially with the number of variables and equations and their
degrees, remains tractable [Buc76].

The main novelties are that we exploit the Hexagon Equations (2.3), enforce
orthogonality, and partition the system at crucial moments in the computation
according to the equations graph defined in 5.1. We learned that: the Hexagon
equations alone determine a significant fraction of the unknowns, and they
help determine a field containing the $F$-matrix as they feature $3j$-symbols
in the form of cyclotomic coefficients; that including the orthogonality
constraints shrinks the solution variety so it makes the search for a Groebner
basis more efficient; and that partitioning allows the solver to consider
relatively small subsets of equations independently and in parallel.

######  Definition 5.1.

Given a set $P$ of polynomials in $\mathbb{C}[x_{1},\ldots,x_{n}]$, let
$\mathcal{G}(P)$ denote the associated undirected equations graph with
vertices labeled by $x_{1},\ldots,x_{n}$ and an edge $x_{i}\to x_{j}$ if and
only if there is a polynomial in $P$ with a non-zero term divisible by
$x_{i}x_{j}$. That is, nodes in $\mathcal{G}(P)$ correspond to variables and
two nodes are connected whenever the corresponding variables appear together
in an element of $P$.

The solution algorithm consists of three main steps:

  1. (1)

find the $F$-symbols determined by the Hexagon Equations (2.3) together with
the orthogonality constraints

$\big{[}F^{abc}_{d}\big{]}^{T}\big{[}F^{abc}_{d}\big{]}=I,\quad\text{for every
}(a,b,c,d)\in\mathcal{C}^{4}\text{ such that }F^{abc}_{d}\neq 0;$

  2. (2)

substitute into the Pentagon Equations (2.2) and eliminate variables
iteratively using various reduction heuristics; and finally

  3. (3)

obtain a numerical solution by solving the few remaining relations amongst the
few remaining unknowns.

We note that requiring orthogonality instead of unitarity avoids duplicating
the number of variables: unitarity necessitates complex conjugates for each
unknown $F^{abc}_{d;\,ef}$. This choice seems to have no practical bearing,
since all the $6j$-systems we have obtained turn out to be real, which means
each matrix $F^{abc}_{d}$ is real orthogonal and therefore unitary.

Each of the three main steps involves a Groebner basis calculation that
nevertheless remains tractable in many interesting cases for the following
reasons. First, the graph defined by the Hexagon Equations together with the
orthogonality constraints consists of many relatively small connected
components that are processed independently and in parallel. Regardless of the
graph structure, the solver ignores large connected components: those with
more nodes than allowed by the optional max_component_size=45 parameter. In
all cases studied, the solver obtains over $50\%$ of the $F$-symbols in this
step, without even setting up the Pentagon Equations.

Second, the reduction heuristics turn out to be rather powerful as they
significantly decrease the number of equations and variables in the pentagon
system through repeated back substitution. In any case, most pentagons vanish
already because many $F$-symbols are obtained in Step $(1)$.

Third, the equations graph of the reduced system consists of isolated points
and a few small connected components, if any. In particular, typically less
than $0.25\%$ of the Pentagon Equations remain at this stage, and most of them
are univariate quadratics. This usually obviates the need for a Groebner basis
calculation in Step $(3)$.

The following concrete example illustrates the typical flow of the solution
algorithm. In the Type $B$ fusion ring $SO(21)_{2}=\texttt{FusionRing('B10',
2)}$, there are over $1.5$ million Pentagon Equations in $17,437$ variables.
Step $(1)$ determines $11,540$ $F$-symbols. At the start of Step $(2)$, the
solver sets up only $651,173$ Pentagon Equations in the remaining $5,897$
variables. The elimination loop obtains an equivalent system of $193$
relations amongst $193$ unknowns. Every relation in the reduced system is of
the form $x_{j}^{2}-\alpha$, for some constant $\alpha$, so in Step $(3)$ the
solver obtains a solution using simple root finding methods. We note that the
fusion rings $SO(n)_{2}$ arise in connection to the duality results discussed
in [Abo22c] and [Abo22b].

At the end of a successful calculation, the $F$-symbols may be retrieved using
the FMatrix.get_fvars method. They are reported as elements of a common number
field. Mathematically, this field is the compositum of the associated
FusionRing’s field and the extension of $\mathbb{Q}$ defined by the product of
all terms remaining in Step $(3)$. Computing a defining polynomial for this
compositum turns out to be intractable sometimes, so in certain cases the
$F$-symbols are returned as elements of SageMath’s generic AlgebraicField.
These cases were determined using experimental data collected in March $2021$.

We note that the elimination loop of Step $(2)$ typically accounts for over
$80\%$ of the processing time. Each iteration consists of two steps: first
find new $F$-symbols (possibly in terms of others that come later in the
lexicographical order) and then update the remaining polynomials with the new
expressions. Following [BSS08, Section 2.5], a triangular solver extracts
$F$-symbols from the ideal basis elements resulting from the Groebner basis
calculation at the end of Step $(1)$. In fact we solve only easy equations:
those defined by a polynomial $p$ with at most two terms, one of which is
univariate and linear in the largest variable that appears in $p$. This simple
reduction step turns out to be rather powerful; there is no need to solve for
higher-order terms, which typically have multiple solutions and require
sophisticated branching methods to keep track of all possibilities, or for
linear terms in longer polynomials, which result in solutions whose repeated
back-substitution quickly places a heavy burden on system memory.

Solving easy equations is fast, so the update step in fact accounts for the
vast majority of the processing time. During this update step, the solver also
reduces each polynomial in the ideal basis modulo its leading coefficient, its
greatest common factor known to be non-zero, and modulo every quadratic of the
form $x_{j}^{2}-\alpha$, for some constant $\alpha$. This reduction step
typically produces new two-term equations so the elimination loop continues
until no new easy equations are found. Even though our custom arithmetic
engine provides the fast update_reduce method that operates on the
polynomial’s sparse exponent vector directly at the C level, updating and
reducing polynomials remains a bottleneck.

To accelerate this and other lengthy calculations, our implementation relies
on concurrent programming to distribute tasks amongst several worker
processes.

###  5.1. Parallel computations

The solver leverages the parent-child paradigm and our own bare-bones
implementation of the MapReduce protocol introduced in [DG16] to split up
embarrassingly parallel tasks: those whose dependency graph is trivial so they
can be completed independently without requiring synchronization amongst
workers.

Python’s Global Interpreter Lock (GIL) makes it so that only a single thread
may be active at any one time, so we use multiple processes, instead of
multiple threads, to achieve true concurrency. Each process owns its own
memory space, and no process may access any other’s memory blocks. This means
that any piece of solver state required by a worker must be pickled and
communicated over pipes. In practice, however, the Inter-Processor
Communication (IPC) overhead proved prohibitively slow, so the solver works
hard to keep the communication costs at a minimum.

For instance, the solver avoids piping self, the FMatrix object managing the
whole calculation, by leveraging the fact that forking produces identical
copies of the parent’s virtual memory in each child process. This means we may
reference the copy of self in each child process using the virtual address
id(self) computed in the parent process. Thus we need only pass method names
and the address id(self) to worker processes: each process can then bind the
corresponding method to its own copy self, located at id(self).

As another example, the solver avoids passing long lists of label tuples when
instructing worker processes to set up the Hexagon and Pentagon Equations;
instead, it passes each of the n_proc workers a unique index
$0\leq\texttt{child\\_id}<\texttt{n\\_proc}$ and instructs each worker to
enumerate all possible tuples but to process only the ones with index child_id
modulo n_proc.

In the spirit of reducing IPC further, we implemented various pieces of solver
state using shared memory-backed data structures. The following subsection
describes these in detail.

A notable exception is the ideal_basis. This Python list keeps track of the
relations amongst the unknowns that remain at each step of the calculation.
The parent process owns the ideal_basis. At each elimination round, it pipes
the ideal_basis to child processes in chunks for updating using the MapReduce
protocol: the update_reduce method is the mapper and the reducer simply
collects all polynomials and discards duplicates. Experimental evidence
suggests the optimal chunk size is
$\lfloor\texttt{len(ideal\\_basis)}/\texttt{n\\_proc}^{2}\rfloor+1$: when
there are too many chunks the IPC overhead dominates and when there are too
few some workers idle.

###  5.2. Shared solver state

We describe the state variables maintained by our solver, as summarized in
Table 1. Most crucial data structures reside in shared memory because the
solver performs parallel computations and IPC is rather costly in practice.

Name | Class | Updated by
---|---|---
fvars | FvarsHandler | Parent
ks | KSHandler | Parent
solved | list | Parent
var_degs | list | Parent
Table 1. Shared memory-backed variables maintained by the orthogonal
$F$-matrix solver.

First we describe our polynomial representation. We treat each $6j$-symbol
$F^{abc}_{d;\,ef}$ as an unknown and assign a unique linear index to each
admissible sextuple $(a,b,c,d,e,f)$. The idx_to_sextuple dictionary manages
this map. This means we view every polynomial equation as an identity of the
form $f(x)=0$, for some $f\in\mathbf{k}[x_{1},\ldots,x_{n}]$, with
$\mathbf{k}$ denoting the associated FusionRing’s cyclotomic field and with
$n=\texttt{len(idx\\_to\\_sextuple)}$. The polynomial ring
$\mathcal{P}\coloneqq\mathbf{k}[x_{1},\ldots,x_{n}]$ plays an important role
in this section. Unless otherwise stated, we consider $\mathcal{P}$ equipped
with the partial order induced by the degree reverse lexicographical
(degrevlex) monomial ordering.

Internally, the solver represents each element of $\mathcal{P}$ as a
degrevlex-ordered tuple of exponent-coefficient pairs. In turn, each exponent
is implemented as a SageMath ETuple while its corresponding cyclotomic
coefficient as a Python tuple. We use ETuples for exponents because they can
efficiently handle sparse vectors: the monomials we encounter tend to be very
sparse and an ETuple stores the sparse exponent vector $(p_{1},\ldots,p_{n})$
on $x_{1}^{p_{1}}\cdots x_{n}^{p_{n}}$ compactly as the C int array
$(i_{1},p_{i_{1}},\ldots,i_{k},p_{i_{k}})$, with $i_{j}$ denoting the subset
of indices with $p_{i_{j}}\neq 0$. Conversely, we use a fixed-length dense
representation for the coefficients for speed considerations: we store each
cyclotomic coefficient as a tuple of $d$ SageMath Rationals, with $d$ denoting
the degree of $\mathbf{k}$. Thus, for instance, if
$\mathbf{k}=\mathbb{Q}[\zeta_{6}]$ with $\zeta_{6}=e^{i\pi/3}$ and $n=25$, we
implement the polynomial

$\displaystyle p(x)$ $\displaystyle={2^{65}\over
2^{127}+1}x_{1}^{3}x_{9}x_{13}^{2}-\left({19\over
7}\zeta_{6}-2^{129}\right)x_{21}^{7}\in\mathcal{P}$ (5.1) as the Python tuple
$\displaystyle\Big{(}\big{(}(1,3,9,1,$ $\displaystyle
13,2),\,\left(2^{65}/(2^{127}+1),\,0\right)\big{)},\,\,\big{(}\left(21,7\right),\,\left(2^{129},\,-19/7\right)\big{)}\Big{)}.$
(5.2)

Although SageMath offers various implementations for multivariate polynomials,
we developed our own for two main reasons. First, controlling the internal
implementation allowed for the development of a custom arithmetic engine in
Cython that exploits sparsity and provides fast implementations for several
core manipulations. In a large calculation, the solver calls the arithmetic
engine methods millions of times, so it is important that these methods are
fast and that they exploit fast Cython dispatch protocols. Second, our
internal implementation circumvents an issue we encountered when SageMath’s
multi-threaded CyPari2 attempts to pipe the built-in polynomial classes from
single-threaded child processes back to the main parent process.

The fvars structure records the current state of each unknown. The associated
solved attribute maintains a list of $n$ booleans indicating which $F$-symbols
are known, potentially as a polynomial in variables that are smaller with
respect to the degrevlex ordering. Initially, fvars implements a dictionary
mapping an admissible sextuple to a corresponding generator of $\mathcal{P}$.
As the calculation progresses and the solver determines certain $F$-symbols in
terms of smaller ones, the parent process performs back-substitution to update
entries in fvars and solved. Thus, in general, fvars maintains a polynomial in
$\mathcal{P}$ for each admissible sextuple.

The mapping represented by fvars could easily be implemented using a Python
dictionary, but there is no good means of sharing such complex Python objects
amongst processes without incurring significant IPC overhead; for this reason,
we implemented the FvarsHandler class. This class emulates a Python dictionary
syntactically, supporting special Python methods like __getitem__ and
__setitem__ using the familiar bracket assignment syntax, while allowing
several processes to read from the same piece of contiguous C-level memory
simultaneously.

The FvarsHandler class is implemented as a raw C-style shared memory block
provided by the multiprocessing.shared_memory module. The shared memory block
must be pre-allocated and later populated by entries of a fixed data type
expressible as a collection of C types. However, it can be accessed via
NumPy’s buffer interface.

Thus we view the shared memory block as a NumPy record array storing elements
of the structured data type fvars_t, which decomposes the internal polynomial
representation illustrated in (5.2) into collections of NumPy integers as
follows. We consider the monomials and the cyclotomic coefficients separately.
On one hand, we store the exponent data contiguously in a single one-
dimensional array under the exp_data field. The associated ticks field manages
an array indicating the number of non-zero exponents in each term: this array
indicates when the data in exp_data “jumps” from term to term. The ticks array
has length max_terms, a parameter with default value $20$, which specifies the
maximum number of terms in any representable polynomial. The length of
exp_data is k*max_terms, for some fixed k. By default, k=30. For example, if
$\texttt{max\\_terms}=4$ and $\texttt{k}=3$, the exp_data and ticks arrays
representing the polynomial $p$ of (5.2) are given by

exp_data
$\displaystyle=\setcounter{MaxMatrixCols}{12}\begin{bmatrix}1&3&9&1&13&2&21&7&0&0&0&0\end{bmatrix}$
ticks $\displaystyle=\begin{bmatrix}3&1&0&0\end{bmatrix}.$

On the other hand, we store the cyclotomic coefficient data using two three-
dimensional arrays: the coeff_nums and coeff_denoms arrays store $d$
numerators and denominators for each term. It would seem that two-dimensional
arrays of shape (max_terms, d) would suffice; however, native Python integers
can be arbitrarily large so to avoid overflowing $64$-bit NumPy integers we
store the digits of each signed numerator in base $2^{63}$ and of each
unsigned denominator in base $2^{64}$. The n_bytes parameter, with default
value $32$, specifies the number of bytes pre-allocated to the numerator and
denominator of each rational coefficient in (5.2). Thus each cyclotomic
coefficient becomes an array with shape (d, n_bytes//8). For instance, if
$\texttt{n\\_bytes}=24$, we store the coefficient data of the polynomial $p$
in (5.1) as

coeff_nums[0, :, :] $\displaystyle=\begin{bmatrix}0&4&0\\\ 0&0&0\end{bmatrix}$
coeff_nums[1, :, :] $\displaystyle=\begin{bmatrix}0&0&8\\\
-19&0&0\end{bmatrix}$ coeff_denoms[0, :, :]
$\displaystyle=\begin{bmatrix}1&2^{63}&0\\\ 1&0&0\end{bmatrix}$
coeff_denoms[1, :, :] $\displaystyle=\begin{bmatrix}1&0&0\\\
7&0&0\end{bmatrix}$

Since we store only a collection of integers, retrieving a record involves
costly Python object instantiation. To mitigate this cost, the FvarsHandler
implements a caching mechanism that reduces the number of times the solver
constructs polynomial objects from the data stored in shared memory. Each
processor must build its own object cache, so fvars_t contains a modified
field with shape (n, n_proc) indicating to each processor which entries were
modified by the parent process since they were last retrieved.

Thus, all things considered, the data type fvars_t contains the following
fields:

  * •

ticks, with shape (max_terms,), stores unsigned $8$-bit integers indicating
the number of non-zero exponents on each monomial;

  * •

exp_data, with shape (30*max_terms,), stores $16$-bit integers representing
the non-zero exponents for all monomials in the corresponding polynomial;

  * •

coeff_nums, with shape (max_terms, d, n_bytes//8), stores $64$-bit integers
representing all numerators of the cyclotomic coefficients in base $2^{63}$;

  * •

coeff_denoms, with shape (max_terms, d, n_bytes//8), stores unsigned $64$-bit
integers representing all denominators of the cyclotomic coefficients in base
$2^{64}$; and

  * •

modified, with shape (n_proc,), stores $8$-bit integers indicating to each
child process which entries have been modified by the parent process.

The default values for the parameters and data types for each field within the
structured array were determined using experimental observations. For context,
we note SageMath’s PolynomialRing class can model polynomial rings with at
most $2^{15}$ generators.

Similar to the FvarsHandler, the KSHandler implements a shared mapping that
manages $F$-symbols with known squares: those determined up to a sign by a
quadratic of the form $x_{j}^{2}-\alpha$, for some $\alpha\in\mathbf{k}$. The
known squares play an important role in the elimination loop, where they allow
for substantial simplification when updating ideal basis elements. Like the
FvarsHandler, the KSHandler also emulates a Python dictionary syntactically
and it serves multiple processes simultaneously. Moreover, the KSHandler uses
the same memory layout as the FvarsHandler except but its structured data type
only contains the coeff_nums and coeff_denoms fields.

Both the FvarsHandler and the KSHandler class are implemented in Cython for
performance reasons: they use typed Cython memoryviews to avoid Python
overhead in manipulating indices and accessing buffer entries so they enjoy
access to the shared memory blocks directly at the C level. In addition, the
KSHandler class offers an API consisting entirely of cdef methods. Thus, while
only accessible to Cython code, KSHandler methods do not incur any Python
calling overhead.

Finally, we note that shared var_degs attribute maintains a list recording the
highest power of each known variable appearing in the ideal_basis at any given
time. Using it, each child process can pre-compute all the necessary powers of
each $F$-symbol expression at the start of an elimination step; this
significantly reduces the total arithmetic performed.

##  6\. Appendix: diagrammatic proof of braid generator formulas

This appendix supplies a diagrammatic proof of 3.4.

$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$$a$$a$$R^{aa}_{t_{2}}$$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$
Figure 9. The odd-indexed braid generators $\sigma_{2j-1}\in B_{m}$ act
diagonally with respect to our computational basis $\mathcal{T}_{m}$. Here
$j=2$ and $m=6$.
$b$$a$$t_{1}$$a$$a$$a$$a$$y$$\displaystyle\sum_{c}F^{aaa}_{b;\,yc}$
$b$$a$$t_{1}$$a$$a$$a$$a$$c$$\displaystyle\sum_{c}F^{aaa}_{b;\,yc}\,R^{aa}_{c}$
$b$$a$$t_{1}$$a$$a$$c$$\displaystyle\sum_{f}\left[\sum_{c}F^{aaa}_{b;\,yc}\,R^{aa}_{c}\left[F^{aaa}_{b;\,cx}\right]^{-1}\right]$
$b$$a$$t_{1}$$a$$a$$x\;$ Figure 10. The action of $\sigma_{2}\in B_{3}$ on
$\operatorname{Hom}(a^{3},b)$ with respect to our fusion tree basis.
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$a$$a$$y$$y^{\prime}$$\displaystyle\sum_{c}F^{aay^{\prime}}_{b;\,yc}$
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$a$$a$$y^{\prime}$$c$$\displaystyle\sum_{c,d}F^{aay^{\prime}}_{b;\,yc}\left[F^{aaa}_{c;\,y^{\prime}d}\right]^{-1}$
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$a$$a$$c$$d$$\displaystyle\sum_{c,d}F^{aay^{\prime}}_{b;\,yc}\left[F^{aaa}_{c;\,y^{\prime}d}\right]^{-1}R^{aa}_{d}$
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$c$$d$$\displaystyle\sum_{c,d,x^{\prime}}F^{aay^{\prime}}_{b;\,yc}\left[F^{aaa}_{c;\,y^{\prime}d}\right]^{-1}R^{aa}_{d}F^{aaa}_{c;\,dx^{\prime}}$
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$x^{\prime}$$c$$\displaystyle\sum_{x,x^{\prime}}\left[F^{aay^{\prime}}_{b;\,yc}\left[F^{aaa}_{c;\,y^{\prime}d}\right]^{-1}\,R^{aa}_{d}\,F^{aaa}_{c;\,dx^{\prime}}\left[F^{aax^{\prime}}_{b;\,cx}\right]^{-1}\right]$
$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$x$$x^{\prime}$ Figure 11. The action of
$\sigma_{2}\in B_{4}$ on $\operatorname{Hom}(a^{4},b)$ with respect to our
computational basis.
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$$a$$a$$\ell^{*}$$t_{j}$$t_{j+1}$$\ell_{j-1}$$\displaystyle\sum_{c}F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,\ell_{j-1}c}$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$$a$$a$$\ell^{*}$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$a$$a$$t_{j}$$c$$t_{j+1}$$\displaystyle\sum_{c,t_{j}^{\prime},t_{j+1}^{\prime}}F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,\ell_{j-1}c}\color[rgb]{0.4,0.4,1}\definecolor[named]{pgfstrokecolor}{rgb}{0.4,0.4,1}\left(\sigma_{2}^{(4)}\right)_{\ket{t_{j}^{\prime}t_{j+1}^{\prime}},\,\ket{t_{j}t_{j+1}}}$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$$\ell^{*}$$b$$a$$t_{1}$$a$$a$$t_{2}$$a$$a$$a$$t_{j}^{\prime}$$c$$t_{j+1}^{\prime}$$\displaystyle\sum_{t_{j}^{\prime},t_{j+1}^{\prime},\ell_{j-1}^{\prime}}\left[\sum_{c}F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,\ell_{j-1}c}\left(\sigma_{2}^{(4)}\right)_{\ket{t_{j}^{\prime}t_{j+1}^{\prime}},\,\ket{t_{j}t_{j+1}}}\left[F^{\ell^{*}t_{j}t_{j+1}}_{b^{*};\,cf}\right]^{-1}\right]$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{3}$$a$$\ell^{*}$$t_{j}^{\prime}$$t_{j+1}^{\prime}$$\ell_{j-1}^{\prime}$
Figure 12. The action of an even-indexed braid group generator $\sigma_{2j}$
on $\operatorname{Hom}(a^{m},b)$ with respect to our computational basis.
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$a$$a$$t_{r}$$\ell_{r-1}$$\ell_{r-2}$$\displaystyle\sum_{c}F^{t_{r}a}_{b;\,\ell_{r-2}c}$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$a$$a$$b$$a$$t_{1}$$a$$a$$a$$a$$t_{j}$$c$$\ell_{r-1}$$\displaystyle\sum_{c,t_{r}^{\prime}}F^{\ell_{r-1}t_{r}a}_{b;\,\ell_{r-2}c}\color[rgb]{0.4,0.4,1}\definecolor[named]{pgfstrokecolor}{rgb}{0.4,0.4,1}\left(\sigma_{2}^{(3)}\right)_{\ket{t_{r}^{\prime}},\,\ket{t_{r}}}$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$b$$a$$t_{1}$$a$$a$$a$$a$$t_{j}^{\prime}$$c$$\ell_{r-1}$$\displaystyle\sum_{t_{r}^{\prime},\ell_{r-2}^{\prime}}\left[\sum_{c}F^{\ell_{r-1}t_{r}a}_{b;\,\ell_{r-2}c}\left(\sigma_{2}^{(3)}\right)_{\ket{t_{r}^{\prime}},\,\ket{t_{r}}}\left[F^{\ell_{r-1}t_{r}^{\prime}a}_{b;\,cf}\right]^{-1}\right]$
$b$$a$$t_{1}$$a$$\ell_{1}$$a$$t_{2}$$a$$a$$t_{r}^{\prime}$$\ell_{r-1}$$\ell_{r-2}^{\prime}$
Figure 13. The action of $\sigma_{2r}$ in $B_{2r+1}$ on
$\operatorname{Hom}(a^{m},b)$ when $m=2r+1$.

## References

  * [Abo22a] Willie Aboumrad.  Ribbon fusion categories for topological quantum computation, 2022.
  * [Abo22b] Willie Aboumrad.  Skew howe duality for types $\mathbf{BD}$ via $q$-clifford algebras, 2022\.  URL: https://arxiv.org/abs/2208.09773, doi:10.48550/ARXIV.2208.09773.
  * [Abo22c] Willie Aboumrad.  Skew howe duality for ${U}_{q}(\mathfrak{gl}_{n})$ via quantized clifford algebras, 2022.  URL: https://arxiv.org/abs/2208.08979, doi:10.48550/ARXIV.2208.08979.
  * [AGGS90] L. Alvarez-Gaumé, C. Gomez, and G. Sierra.  Duality and quantum groups.  Nuclear Physics B, 330(2-3):347–398, 1990.  doi:10.1016/0550-3213(90)90116-u.
  * [BK01] Bojko Bakalov and Alexander A. Kirillov.  Lectures on tensor categories and modular functors.  American Mathematical Society, 2001.
  * [BSS08] Parsa Bonderson, Kirill Shtengel, and J.K. Slingerland.  Interferometry of non-abelian anyons.  Annals of Physics, 323(11):2709–2755, 2008.  doi:10.1016/j.aop.2008.01.012.
  * [Buc76] B. Buchberger.  A theoretical basis for the reduction of polynomials to canonical forms.  ACM SIGSAM Bulletin, 10(3):19–29, 1976.  doi:10.1145/1088216.1088219.
  * [CP94] Vyjayanthi Chari and Andrew Pressley.  A guide to quantum groups.  Cambridge University Press, 1994.  doi:10.1007/BF00750760.
  * [CW15] Shawn X. Cui and Zhenghan Wang.  Universal quantum computation with metaplectic anyons.  Journal of Mathematical Physics, 56(3):032202, 2015.  doi:10.1063/1.4914941.
  * [DFMS11] Philippe Di Francesco, Pierre Mathieu, and David Senechal.  Conformal Field Theory.  Springer, 2011.
  * [DG16] Jerry Dean and Sanjay Ghemawat.  A study on MAPREDUCE for simplified processing of big data.  International Journal of Modern Trends in Engineering and Research, 3(10):185–189, 2016.  doi:10.21884/ijmter.2016.3101.7dr3l.
  * [DVV88] Robbert Dijkgraaf, Erik Verlinde, and Herman Verlinde.  $c=1$ Conformal field theories on Riemann surfaces.  Communications in Mathematical Physics, 115(4):649–690, 1988.  doi:10.1007/bf01224132.
  * [EGNO15] P. I. Etingof, Shlomo Gelaki, Dmitri Nikshych, and Victor Ostrik.  Tensor categories.  American Mathematical Society, 2015.
  * [ENO05] Pavel Etingof, Dmitri Nikshych, and Viktor Ostrik.  On fusion categories.  Annals of Mathematics, 162(2):581–642, 2005.  doi:10.4007/annals.2005.162.581.
  * [Fei04] Alex J. Feingold.  Fusion rules for affine kac-moody algebras.  Kac-Moody Lie Algebras and Related Topics, pages 53–96, 2004.  doi:10.1090/conm/343/06184.
  * [FKLW02] Michael Freedman, Alexei Kitaev, Michael Larsen, and Zhenghan Wang.  Topological quantum computation, Mathematical challenges of the 21st century.  Bulletin of the American Mathematical Society, 40(1):31–38, 2002\.  doi:10.1090/s0273-0979-02-00964-3.
  * [FKW02] Michael H. Freedman, Alexei Kitaev, and Zhenghan Wang.  Simulation of topological field theories by quantum computers.  Communications in Mathematical Physics, 227(3):587–603, 2002.  doi:10.1007/s002200200635.
  * [FLW02] Michael H. Freedman, Michael J. Larsen, and Zhenghan Wang.  The two-eigenvalue problem and density¶of jones representation of braid groups.  Communications in Mathematical Physics, 228(1):177–199, 2002.  doi:10.1007/s002200200636.
  * [FRS89] K. Fredenhagen, K. H. Rehren, and B. Schroer.  Superselection sectors with braid group statistics and exchange algebras.  Communications In Mathematical Physics, 125(2):201–226, 1989.  doi:10.1007/bf01217906.
  * [Fuc94] Jürgen Fuchs.  Fusion rules in conformal field theory.  Fortschritte der Physik/Progress of Physics, 42(1):1–48, 1994.  doi:10.1002/prop.2190420102.
  * [GJ89] David M. Goldschmidt and V. F. R. Jones.  Metaplectic link invariants.  Geometriae Dedicata, 31(2):165–191, 1989.  doi:10.1007/BF00147477.
  * [Hag07] Tobbias Hagge.  Graphical calculus for fusion categories and quantum invariants for $3$-manifolds.  PhD thesis, Indiana University, 2007.
  * [HNW13] Matthew B. Hastings, Chetan Nayak, and Zhenghan Wang.  Metaplectic anyons, Majorana zero modes, and their computational power.  Physical Review B, 87(16), 2013.  doi:10.1103/physrevb.87.165421.
  * [HZBS07] L. Hormozi, G. Zikos, N. E. Bonesteel, and S. H. Simon.  Topological quantum compiling.  Physical Review B, 75(16), 2007.  doi:10.1103/physrevb.75.165310.
  * [Ien92] R Iengo.  Anyon quantum mechanics and Chern-Simons theory.  Physics Reports, 213(4):179–269, 1992.  doi:10.1016/0370-1573(92)90039-3.
  * [Kit03] A.Yu. Kitaev.  Fault-tolerant quantum computation by anyons.  Annals of Physics, 303(1):2–30, 2003.  doi:10.1016/s0003-4916(02)00018-0.
  * [Kit06] Alexei Kitaev.  Anyons in an exactly solved model and beyond.  Annals of Physics, 321(1):2–111, 2006.  doi:10.1016/j.aop.2005.10.005.
  * [Lan78] Saunders Mac Lane.  Categories for the working mathematician.  Springer, 1978.  doi:10.1007/978-1-4757-4721-8.
  * [NSS+08] Chetan Nayak, Steven H. Simon, Ady Stern, Michael Freedman, and Sankar Das Sarma.  Non-abelian anyons and topological quantum computation.  Reviews of Modern Physics, 80(3):1083–1159, 2008.  doi:10.1103/revmodphys.80.1083.
  * [OSW19] Tobias J. Osborne, Deniz E. Stiegemann, and Ramona Wolf.  The F-symbols for the h3 fusion category, 2019.  URL: https://arxiv.org/abs/1906.01322, doi:10.48550/ARXIV.1906.01322.
  * [RSW09] Eric Rowell, Richard Stong, and Zhenghan Wang.  On classification of modular tensor categories.  Communications in Mathematical Physics, 292(2):343–389, 2009.  doi:10.1007/s00220-009-0908-z.
  * [TTWL08] Simon Trebst, Matthias Troyer, Zhenghan Wang, and Andreas W. Ludwig.  A short introduction to fibonacci anyon models.  Progress of Theoretical Physics Supplement, 176:384–407, 2008.  doi:10.1143/ptps.176.384.
  * [Wan10] Zhenghan Wang.  Topological Quantum Computation.  Published for the Conference Board of the Mathematical Sciences by the American Mathematical Society, 2010.
  * [Yam02] Shigeru Yamagami.  Polygonal presentations of semisimple tensor categories.  Journal of the Mathematical Society of Japan, 54(1), 2002.  doi:10.2969/jmsj/1191593955.