††thanks: Current affiliation is IBM T.J. Watson Research Center, Yorktown
Heights, NY 10598.

# Universal logical gates with constant overhead: instantaneous Dehn twists
for hyperbolic quantum codes

Ali Lavasani  Guanyu Zhu  Maissam Barkeshli  Department of Physics, Condensed
Matter Theory Center, University of Maryland, College Park, Maryland 20742,
USA and Joint Quantum Institute, University of Maryland, College Park,
Maryland 20742, USA

###### Abstract

A basic question in the theory of fault-tolerant quantum computation is to
understand the fundamental resource costs for performing a universal logical
set of gates on encoded qubits to arbitrary accuracy. Here we consider qubits
encoded with constant space overhead (i.e. finite encoding rate) in the limit
of arbitrarily large code distance $d$ through the use of topological codes
associated to triangulations of hyperbolic surfaces. We introduce explicit
protocols to demonstrate how Dehn twists of the hyperbolic surface can be
implemented on the code through constant depth unitary circuits, without
increasing the space overhead. The circuit for a given Dehn twist consists of
a permutation of physical qubits, followed by a constant depth local unitary
circuit, where locality here is defined with respect to a hyperbolic metric
that defines the code. Applying our results to the hyperbolic Fibonacci
Turaev-Viro code implies the possibility of applying universal logical gate
sets on encoded qubits through constant depth unitary circuits and with
constant space overhead. Our circuits are inherently protected from errors as
they map local operators to local operators while changing the size of their
support by at most a constant factor; in the presence of noisy syndrome
measurements, our results suggest the possibility of universal fault tolerant
quantum computation with constant space overhead and time overhead of
$\mathcal{O}(d/\log d)$. For quantum circuits that allow parallel gate
operations, this yields the optimal scaling of space-time overhead known to
date.

##  1 Introduction

The significant effects of decoherence on quantum systems require that a
fault-tolerant quantum computer appropriately encode logical quantum
information and furthermore apply logical gates directly on the encoded qubits
[47, 51]. However it is currently an open question to understand the ultimate
asymptotic resource costs required for performing quantum error correction and
fault-tolerant quantum computation. In this work we improve upon the known
optimal asymptotic space-time resource costs by proposing constant depth
topologically protected unitary circuits that implement a universal set of
logical gates for the Tuarev-Viro codes[34] defined on hyperbolic surfaces.
Our protocols demonstrate that protected universal gate sets can be applied in
parallel and with constant space overhead using constant depth unitary
circuits.

A quantum error correcting code (QECC) encodes $k$ logical qubits using $n$
physical qubits, such that a logical error occurs if and only if errors occur
on at least $d/2$ distinct physical qubits, where $d$ is referred to as the
code distance. The ratio $k/n$ is called the encoding rate. If a family of
$[[n,k,d]]$ QECCs possess a finite error threshold $p_{\text{th}}$ and errors
on physical qubits are independent and occur with probability $p$, then a
logical error will occur with probability $p_{L}\propto(p/p_{th})^{d/2}$.
Therefore as long as $p<p_{th}$, the logical error rate can be made
exponentially small as $d$ is increased. In order to achieve fault-tolerant
quantum computation, it must further be possible to implement an accurate
universal set of logical gates on the encoded qubits.

The fault-tolerant storage and processing of quantum information come at
significant resource costs in both space overhead, $n/k$, and the time
overhead for implementing logical gates. Families of QECCs that are known to
possess a finite error threshold, code distance $d$ growing with $n$, and
constant space overhead, where $n/k$ is a constant independent of code
distance $d$, have been proposed through two basic constructions. The first is
in terms of topological codes defined on the cellulation of hyperbolic space
[26, 29]. The second is the hypergraph product code construction[52,
40]111Many other QECCs with constant space overhead are also known (see e.g.
Ref. [17, 10]), however it is not clear whether they possess a finite error
threshold, as they are not low density parity check (LDPC) codes. The LDPC
property guarantees that a stabilizer code with $d\sim n^{\alpha}$ for
$\alpha>0$ will have finite error threshold.[36]. On the other hand, many
quantum LDPC codes with bounded $d$ in the limit of $n\rightarrow\infty$ are
also known..

While constant space overhead is known to be possible, it is unclear what the
fundamental time overhead must be for performing a universal set of logical
gates. Universal logical gate sets on encoded qubits can in general be
implemented through three known methods: (1) state distillation and gate
implementation through measurements [11, 47], (2) code switching [48], and (3)
braiding or Dehn twist operations in appropriate classes of topological codes
[25, 33, 41, 54, 34, 8, 2].

The methods (1) - (3) necessarily require either (a) measurements, which are
non-trivial to take fault-tolerantly, together with follow-up operations that
depend on the results of those measurements, or (b) unitary circuits whose
depth grows linearly with the code distance. An exception is the class of
protocols recently introduced in Ref. [57, 58], which demonstrate how
universal gate sets can be applied through constant depth unitary circuits
(with the depth independent of $n$ and $d$).

To date, it has not been demonstrated how methods (2) or (3) can be combined
with QECCs that have constant space overhead. Moreover, to our knowledge the
optimal space-time overhead achieved using method (1) is due to a proposal of
Gottesman [28], who showed that constant space and time overhead are
simultaneously achievable for sequential quantum circuits. This means that a
generic quantum circuit of depth $D$, which can be implemented in
$\mathcal{O}(D)$ time using parallel gate operations, could take up to time
$\mathcal{O}(kD)$ if implemented sequentially. Note that for quantum codes
with constant encoding rate, $k$ is proportional to $n$ and as such, the
circuit depth of the sequential implementation could grow linearly with the
system size.

In this paper we consider the most general class of topological codes, which
we refer to as Turaev-Viro codes. These are based on Turaev-Viro-Barrett-
Westbury topological quantum field theories (TQFTs) [53, 3] and are stabilized
by the Levin-Wen string-net Hamiltonians [41]. This class of TQFTs include, as
special cases, the theories that describe the Kitaev surface code and quantum
double models [33]. The use of these TQFTs and the associated Levin-Wen
Hamiltonians as quantum codes was discussed explicitly in Ref. [34].

Here we consider Turaev-Viro codes defined on triangulations of hyperbolic
surfaces. As we review below, the constant negative curvature of the
hyperbolic surface allows for a finite encoding rate and thus constant space
overhead for the associated topological code [26]. Such hyperbolic codes can
be implemented in a flat two-dimensional layout of physical qubits by allowing
long-range couplings between the physical qubits – a possibility allowed by a
variety of quantum computing architectures (e.g. ion traps [42, 39], modular
architectures of superconducting cavity networks [18, 37, 1, 19], Rydberg
atoms [50, 20, 43, 49] and silicon photonics [30]), and a necessary
requirement for any QECC with constant space overhead. In particular, a recent
experimental realization of hyperbolic circuit QED lattices [35] is achieved
by utilizing the feature that the cavity quantum bus (used to connect
superconducting qubits) can have a wide range of length scales.

The main result of our paper is an explicit protocol for implementing Dehn
twist operations in hyperbolic Turaev-Viro codes through constant depth
unitary circuits. Here constant depth refers to the fact that the depth of the
circuit is independent of $n$ and $d$. We note that throughout this paper, by
constant depth unitary circuit, we assume implicitly that every gate in the
circuit also acts on a constant number (independent of $d$ and $n$) of
physical qubits. In contrast to the proposal of Ref.[28] which implements
logical gates sequentially via gate teleportation, our approach allows
parallel gate operations on encoded qubits via unitary circuits. Our circuit
takes the form of a permutation on qubits, followed by a constant depth
circuit which is local with respect to the hyperbolic metric that abstractly
defines the code. The permutation can be implemented with a depth-two circuit
by applying long-range SWAP operations in parallel throughout the code. These
results generalize our earlier work [57, 58, 56] demonstrating that braids and
Dehn twists in general topological codes associated with triangulations of
Euclidean space can be implemented by similar constant depth unitary circuits.
The extension to hyperbolic space described here implies that these protocols
are also compatible with having constant space overhead. Our results
demonstrate explicitly an advantage in terms of space complexity for
implementing the mapping class group of closed manifolds in topological codes,
as compared with the more well-studied braid group of punctures[4, 45, 33].

Our protocols are inherently protected from errors in the sense that all error
strings that are introduced to the system by faulty physical operations have
$\mathcal{O}(1)$ length; moreover, all pre-existing error strings grow by at
most an $\mathcal{O}(1)$ factor. Stated differently, our circuits map local
operators to local operators: an operator with support in a local region
$\mathcal{R}$ is mapped to an operator with support in a local region
$\mathcal{R}^{\prime}$, such that the area of $\mathcal{R}$ and
$\mathcal{R}^{\prime}$ are related by a constant factor independent of $d$.
However, since this constant factor is greater than unity, our circuits may
grow error strings by a constant factor that is larger than unity. In the
presence of syndrome measurement errors we thus require $\mathcal{O}(d)$
rounds of error correction for every $\mathcal{O}(\log d)$ logical gates that
are applied.

Our protocols demonstrate how to apply logical gate operations in hyperbolic
codes without increasing the space overhead. For non-Abelian topological
codes, this is the first example of such protocols. For Abelian topological
codes, such as the $\mathbb{Z}_{2}$ hyperbolic surface code (the extension of
the Kitaev $\mathbb{Z}_{2}$ toric code to hyperbolic space [14, 15]), a
measurement-based approach using twist defect ancillas was described in Ref.
[38]. The constant depth logical gates developed here for the general
hyperbolic Turaev-Viro code also be applied to the hyperbolic surface code as
a specific case, where a subset of Clifford logical gates [56] can be
implemented through constant depth unitary circuits. We note that Ref. [15]
also discussed Dehn twists in hyperbolic stabilizer codes, however constant
depth protocols that can preserve the constant space overhead were not
presented.

As we discuss, our protocols have important implications for improving the
asymptotic scaling of the space-time overhead required for fault-tolerant
universal quantum computation. In particular, they suggest that universal
fault-tolerant quantum computation with constant space overhead and a time
cost of $\mathcal{O}(dD/\log d)$ is possible for a logical quantum circuit of
depth $D$. For certain highly parallel logical quantum circuits, this yields
the best asymptotic scaling known to date.

This paper is organized as follows. In Sec. 2, we review the construction of
hyperbolic Turaev-Viro codes. In Sec. 3, we sketch the two key steps for how
to implement logical operations corresponding to Dehn twists in hyperbolic
Turaev-Viro codes. The first step requires explicit maps representing Dehn
twists on hyperbolic surfaces, which we present in Sec. 4. The second step,
explained in Sec. 5 demonstrates how Turaev-Viro codes associated with
different triangulations of hyperbolic space can be related to each other
through local constant depth circuits. In Sec. 6 we discuss the fault-
tolerance of these protocols and and their implications for asymptotic space-
time resource costs for universal fault-tolerant quantum computation. We
conclude with a discussion in Sec. 7.

##  2 Hyperbolic Turaev-Viro code

The Turaev Viro code [41, 34] is a quantum error correcting code which is
defined based on a given unitary fusion category $\mathcal{C}$ and is
constructed using qudits that reside on the edges of a triangulation $\Lambda$
of a surface $\Sigma$. Below we briefly review the construction of such codes.

Consider a unitary fusion category [54] $\mathcal{C}$ with $N$ simple objects.
We associate a vector space $V_{ab}^{c}$ to any triplet of simple objects
$(a,b,c)$, whose dimension corresponds to the fusion rules:

$N_{ab}^{c}=\text{dim }V_{ab}^{c}.$ (1)

We may write fusion rules formally as:

$a\times b=\sum_{c}N_{ab}^{c}~{}c.$ (2)

Associativity of the fusion rules gives a constraint on the fusion
coefficients $N_{ab}^{c}$. In particular, the vector spaces
$\bigoplus_{e}V^{e}_{ab}\otimes V^{d}_{ec}$ and
$\bigoplus_{f}V^{f}_{bc}\otimes V^{d}_{af}$ are isomorphic. The unitary map
between these two vector spaces are the $F$-symbols of the theory,

$F^{abc}_{d}:\bigoplus_{e}V^{e}_{ab}\otimes
V^{d}_{ec}\mapsto\bigoplus_{f}V^{f}_{bc}\otimes V^{d}_{af}$ (3)

Figure 1: A triangulation $\Lambda$ drawn by light gray solid lines and its
dual trivalent graph $\hat{\Lambda}$ drawn by dark blue lines. The arrows on
the edges define the branching structure. Black dots represent the physical
qubits. Examples of vertex operators $Q_{v}$ and flux operators $B_{p}$ and
their support are also illustrated.

Consider a surface $\Sigma$ together with a triangulation $\Lambda$ (see Fig.
1) of $\Sigma$. The triangulation is also equipped with a branching structure
(i.e. a local ordering of vertices). To each edge of the triangulation we
assign an $N$-state qudit with states labeled $\ket{a_{i}}$, where $a_{i}$ are
the simple objects in $\mathcal{C}$. For simplicity of the construction we
assume that the fusion rules $N_{ab}^{c}$ are $0$ or $1$, although this can be
easily generalized by including additional degrees of freedom at the vertices.

To define the code, it is simpler to work with the cellulation dual to
$\Lambda$, which we denote by $\hat{\Lambda}$. Note that since $\Lambda$ is a
triangulation of the surface, $\hat{\Lambda}$ is a trivalent graph. If a qudit
is in state $\ket{a}$, we say a type $a$ string is passing through the
corresponding edge on $\hat{\Lambda}$ and label the edge by $a$. The wave
functions of the code space then can be seen as superpositions of string-net
configurations that are consistent with certain string branching rules[41].

The code space $\mathcal{H}_{\Lambda}(\Sigma)$ is a subspace of the full
Hilbert space of the physical qudits. The topological nature of the code
guarantees that different choices of triangulations $\Lambda$ and branching
structures yield isomorphic code subspaces.

In particular $\mathcal{H}_{\Lambda}(\Sigma)$ corresponds to the ground state
subspace of a local Levin-Wen Hamiltonian [41]:

$H_{\hat{\Lambda}}=-\sum_{v}Q_{v}-\sum_{p}B_{p},$ (4)

where $\sum_{v}$ and $\sum_{p}$ sum over all vertices and plaquettes of
$\hat{\Lambda}$ respectively (see Fig. 1). All $Q_{v}$ and $B_{p}$ operators
commute with each other. One can think of this model as a generalization from
the abelian surface code to arbitrary (abelian and non-abelian) non-chiral
topological orders in 2D. We note that the Levin-Wen Hamiltonian as defined in
Ref. [41] requires a certain tetrahedral symmetry for the $F$-symbols, which
makes the branching structure of the triangulation unnecessary, although the
construction can be generalized to relax this condition.

The vertex operator $Q_{v}$ is a local projection operator which ensures that
the ground state wave function is consistent with the branching rules of the
theory. The action of $Q_{v}$ on a state $\ket{\psi}$ depends only on the
states of qudits that reside on the edges which are incident to $v$ and is
defined as:

$\displaystyle Q_{v}\leavevmode\hbox to57.71pt{\vbox
to37.9pt{\pgfpicture\makeatletter\hbox{\hskip 23.16228pt\lower-18.28943pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-22.76228pt}{-14.22638pt}\pgfsys@lineto{-22.76228pt}{14.22638pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{22.76228pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}} {{{ {\pgfsys@beginscope{{}}{} {}
{} {}
\pgfsys@moveto{-2.59995pt}{0.0pt}\pgfsys@lineto{1.55997pt}{2.07996pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@lineto{1.55997pt}{-2.07996pt}\pgfsys@fill\pgfsys@endscope}}
}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{12.09738pt}{0.0pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{}} } \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{-8.5359pt}{14.22638pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}}
{{}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{-0.5145}{0.85748}{-0.85748}{-0.5145}{-4.31898pt}{7.19823pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{{}}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{{}}} }
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-8.5359pt}{-14.22638pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}}
{{}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{0.5145}{0.85748}{-0.85748}{0.5145}{-4.21692pt}{-7.02815pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{{}}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{{}}} }
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}
\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{14.22638pt}{4.26773pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{11.58344pt}{2.11496pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-12.80365pt}{12.80365pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.94948pt}{9.33144pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-12.80365pt}{-12.80365pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.96742pt}{-14.95642pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{2.84544pt}{-5.69046pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.24245pt}{-7.84323pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$v$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}} {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{28.45276pt}{-14.22638pt}\pgfsys@lineto{34.14322pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{28.45276pt}{14.22638pt}\pgfsys@lineto{34.14322pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}=N_{ab}^{c}\leavevmode\hbox
to57.71pt{\vbox to37.9pt{\pgfpicture\makeatletter\hbox{\hskip
23.16228pt\lower-18.28943pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-22.76228pt}{-14.22638pt}\pgfsys@lineto{-22.76228pt}{14.22638pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{22.76228pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}}
{{}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{12.09738pt}{0.0pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{}} } \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{-8.5359pt}{14.22638pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}}
{{}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{-0.5145}{0.85748}{-0.85748}{-0.5145}{-4.31898pt}{7.19823pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{{}}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{{}}} }
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-8.5359pt}{-14.22638pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
}{\pgfsys@beginscope\pgfsys@invoke{ }
{}{{}{}}{}{}{}{{}}{{}}{{}{}}{{}{}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}}
}}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}\pgfsys@beginscope\pgfsys@invoke{
} {\pgfsys@beginscope\pgfsys@invoke{ } {{}}
{{}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{0.5145}{0.85748}{-0.85748}{0.5145}{-4.21692pt}{-7.02815pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}}{{{{}{}{{}} }}{{}}
{{{}}} }{{}{}}{{}{}}{{{{}{}{{}} }}{{}} {{{}}} }
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}
\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{14.22638pt}{4.26773pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{11.58344pt}{2.11496pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-12.80365pt}{12.80365pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.94948pt}{9.33144pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-12.80365pt}{-12.80365pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.96742pt}{-14.95642pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{2.84544pt}{-5.69046pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.24245pt}{-7.84323pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$v$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}} {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{28.45276pt}{-14.22638pt}\pgfsys@lineto{34.14322pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{28.45276pt}{14.22638pt}\pgfsys@lineto{34.14322pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$ (5)

The action of the flux operator $B_{p}$ on a wave function depends only on the
edges which are incident on the vertices of $p$ and is defined using the
$F$-symbols. It can be thought of as the generalization of the local plaquette
operators in $\mathbb{Z}_{2}$ surface codes. Its exact form is rather
complicated and we refer the interested reader to References [41, 34] for a
complete and through review of the Turaev-Viro codes.

Just like the surface code, the eigenstates of the Hamiltonian (4) can be
realized in an active error correction approach by repeated measurement of all
$Q_{v}$ and $B_{p}$ operators, each of which can be performed by a local
constant depth circuit together with an ancilla. The measurement results are
then used to detect and correct possible errors. Designing explicit quantum
circuits for syndrome measurements and finding fault tolerant error correction
schemes for specific variants of Turaev-Viro codes are subjects of ongoing
research [9, 24, 16].

A hyperbolic Turaev-Viro code is a Turaev-Viro code which is defined on a
triangulation of a closed hyperbolic surface $\Sigma$. A closed hyperbolic
surface is a closed surface endowed with a Riemannian metric of constant
curvature $-1$. Due to the Gauss-Bonnet theorem, the area of such a surface
can be found from its genus $g$:

$A_{\Sigma}=4\pi(g-1).$ (6)

The number of logical qubits (i.e. $\log[\text{dim
}\mathcal{H}_{\Lambda}(\Sigma)]$) for a topological quantum code on a closed
genus $g$ surface is proportional to $g$. On the other hand, for a fine
triangulation with bounded geometry, where by bounded geometry we mean that
the edge lengths and angles are bounded from above and below, the number of
physical qubits $n$ is proportional to the surface area $A_{\Sigma}$ and the
code distance $d$ scales as $\log(n)$ [26]. Therefore, according to (6), by
using hyperbolic surfaces of increasing genus we can construct a family of
hyperbolic Turaev-Viro codes with constant encoding rate and increasing code
distance. Note that the encoding rate for a quantum code defined on a
Euclidean surface is $\mathcal{O}(1/d^{2})$ and goes to $0$ as one goes to
large distances [13].

We further note that the existence of a lower bound on the angles in the fine
triangulation also ensures that the associated error-correcting code is in
essence a low-density parity check (LDPC) code, which has a low-weight (upper-
bounded) plaquette syndrome $B_{p}$ on the dual trivalent graph
$\hat{\Lambda}$ (the vertex operator $Q_{v}$ is always weight-3 due to the
definition of a triangulation or equivalently the trivalent structure of its
dual graph). As is the case with stabilizer codes [36], the LDPC property is
important for the possibility of an error threshold in the presence of noise
during the syndrome measurements. A particular type of triangulation
satisfying this property is the Delaunay triangulation, which is a unique
triangulation for a given set of vertices that maximizes the smallest angle
among all possible triangulations [31]. The hyperbolic Delaunay triangulation
can be constructed numerically starting from a randomly picked distribution of
vertices with a given average density in hyperbolic space. Then standard
classical computer algorithms generating a Delaunay triangulation, such as the
radial-sweep algorithm, can be applied [31]. Some detailed studies of
hyperbolic Delaunay triangulations can also be found in Ref. [6, 5].

We note that numerical evidence for a finite error threshold in hyperbolic
surface (stabilizer) codes was established in Ref. [14, 15].

##  3 Geometric gate sets for hyperbolic Turaev-Viro codes

Consider a Turaev-Viro code defined using a unitary fusion category
$\mathcal{C}$ on a triangulation $\Lambda$ of a closed surface $\Sigma$ with
genus $g$. It is well-known that the code space
$\mathcal{H}_{\Lambda}(\Sigma)$ forms a non-trivial representation of the
mapping class group (MCG) of the surface $\Sigma$. In other words, elements of
the MCG implement certain non-trivial operations on the code space. Recall
that the MCG is the group of homeomorphisms of the surface modulo those
homeomorphisms that are continuously connected to the identity 222The MCG can
also be defined using diffeomorphisms; both definitions are equivalent [23]..
We call the set of such operations the geometric gate set. Gates corresponding
to MCG operations are naturally topologically protected (and thus can be made
fault-tolerant) and can be implemented through a variety of methods [45, 54,
34, 2, 56, 57]. For certain codes, such as the Fibonacci Turaev-Viro code, the
geometric gate set forms a universal gate set [25].

Here we consider a way of implementing MCG elements in terms of constant depth
unitary circuits that is closely related to the method proposed in [57],
although our presentation below is somewhat different and more general. This
method can then be applied to the case of hyperbolic codes which yield
constant space overhead.

Let $U$ be a mapping class group element of the surface $\Sigma$. We denote
its representation on the code space $\mathcal{H}_{\Lambda}(\Sigma)$ by
$\mathcal{U}$. For a given $U$, one can implement $\mathcal{U}$ using the
following procedure:

  * •

(Step 1) Let $f_{U}:\Sigma\to\Sigma$ be a specific homeomorphism representing
$U$. We move the vertices of $\Lambda$ using $f_{U}$, and connect them as they
were connected originally to get a new triangulation of $\Sigma$ which we
denote by $\Lambda^{\prime}$. This operation corresponds to a permutation of
the physical qubits. If the qubits are mobile, this transformation can be
carried out by shuttling the qubits around. Otherwise, it can be implemented
as a depth-two circuit by using long-range SWAPs in parallel throughout the
system [57].

  * •

(Step 2) Since the Turaev-Viro code was defined using the triangulation
$\Lambda$, after the first step the wave function of the system would no
longer be in the original code space $\mathcal{H}_{\Lambda}(\Sigma)$. Rather
it would be associated to the code space
$\mathcal{H}_{\Lambda^{\prime}}(\Sigma)$ of a different triangulation
$\Lambda^{\prime}$. To remedy this, we apply a local quantum circuit that
effectively implements a local geometry deformation and transforms the code
defined on the $\Lambda^{\prime}$ triangulation back to the one defined on the
original $\Lambda$ triangulation. We will show in subsequent sections that
this retriangulation can be performed via a constant depth local quantum
circuit. If we regard this transformation as a homeomorphism of the surface
$\Sigma$, it would be equivalent to the trivial element of MCG, which ensures
that it will not result in another nontrivial transformation on top of the map
$U$. Details of the geometry deformation circuit are explained in Section 5.

As an example, take $\Sigma$ to be the torus $T^{2}$ with a regular
triangulation $\Lambda$ which is used to define the Turaev-Viro code. To
construct the torus, we can take a square of side $1$ and identify the
opposite sides.

Alternatively, we can start with the complex plane $\mathbb{C}$ and identify
points according to equivalence relations $z\sim z+1$ and $z\sim z+i$. We can
use these identification rules to define a universal covering map from
$\mathbb{C}$ to $T^{2}$. A triangulation of $T^{2}$ then translates to a
triangulation of the complex plane (see Fig. 2a).

Figure 2: (a) The complex plane $\mathbb{C}$ as the universal cover of the
torus $T^{2}$. Blue and red lines correspond to the canonical loops on the
torus. The triangulation $\Lambda$ of the torus is shown as well. The shaded
region can be taken as the fundamental domain of the covering. By applying
$f_{U}(x+iy)=x+i(x+y)$ (green arrows), the shaded region in (a) maps to the
sheared region in (b) and the $\beta$ loop maps to $\tilde{\beta}$ while the
$\alpha$ loop remains intact. By looking at the original fundamental domain as
in (c) it becomes clear that $\tilde{\beta}$ goes around both handles.
Application of the local geometry deformation circuit then recovers the
original triangulation as shown in (d) and maps the wave function back into
the original code space.

Let $U=D_{\alpha}$ be the Dehn twist along $\alpha$, the meridional loop of
the torus(for a brief review of Dehn twists, see Appendix A). Consider the
shearing map $f_{D}(x+iy)=x+i(x+y)$. It is easy to verify that this map
respects the equivalence relations and corresponds to a Dehn twist along the
$\alpha$ loop. If we move (permute) the qubits according to $f_{D}$, we get
the configuration shown in Fig. 2b. Note that as a result of this map, the
string along the $\beta$ loop now encircles both handles while the string
along the $\alpha$ loop remains unchanged, as one would expect form a Dehn
twist along $\alpha$. As a result of the previous step, the triangulation of
the torus has been changed, as one can see by comparing Fig. 2(c) and Fig.
2(a). To compensate for that, we will apply a local unitary circuit, which
corresponds to the trivial element of the MCG, to restore the original
triangulation without applying any further logical gate. The final result is
shown in Fig. 2(d).

In Ref [58, 57], the above procedure has been used extensively to implement
MCG elements by finite depth quantum circuits in QECCs which are defined on
Euclidean surfaces. The main result of this work is that the same basic idea
can be used to implement logical gates in QECCs which are defined on a
hyperbolic surface. In the following we are going to explain in detail how one
can implement geometric gates in hyperbolic Turaev-Viro codes.

Let $\Sigma$ denote a hyperbolic surface that is used to define the hyperbolic
Turaev-Viro code. Since the MCG can be generated by the Dehn twists around the
handles of $\Sigma$, to implement an arbitrary geometric gate it suffices to
be able to implement Dehn twists around the handles of $\Sigma$ [57].

In Section 4, we construct specific diffeomorphisms that correspond to the
basic Dehn twists, which then can be used to carry out Step 1 of the above
procedure. Next, in Section 5, we introduce the local finite depth quantum
circuit that converts two given triangulations to one another. By combining
the results of these two sections and following the above procedure, one can
implement the representation of any basic Dehn twists on the code space
$\mathcal{H}_{\Lambda}(\Sigma)$, and hence implement any geometric gate by a
constant depth unitary circuit.

##  4 Continuous Maps for Dehn Twists

First we concentrate on the $g=2$ case. After developing the maps for the
simplest case, we show how these maps can be generalized for a surface of
arbitrary genus.

###  4.1 Dehn Twists on a Double torus

Figure 3: (a) The canonical octagon plotted on the Poincare disk model of the
hyperbolic plane. Edges with the same color (label) have to be identified such
that the arrows on the two edges line up to each other. (b) The $\Sigma_{2}$
surface resulting from identifying the edges of the canonical octagon. (c)
Tilling of the hyperbolic plane by the canonical octagon.

Let $\tilde{\Sigma}_{2}$ be an arbitrary genus $2$ surface. As a surface with
negative Euler characteristic, $\chi(\tilde{\Sigma}_{2})=-2$, it admits a
hyperbolic metric, i.e. a complete finite area Riemannian metric of constant
negative curvature $-1$.

One way to define a hyperbolic metric on $\tilde{\Sigma}_{2}$ is to start with
the regular hyperbolic octagon on $\mathbb{H}^{2}$ whose interior angles sum
to $2\pi$, known as the Fricke canonical polygon [27, 32]. If we identify
every other edge as shown in Fig. 3a with the arrows specifying how the edges
should be lined up, we obtain a genus $g=2$ hyperbolic surface $\Sigma_{2}$
shown in Fig. 3b, which is homeomorphic to $\tilde{\Sigma}_{2}$. According to
Ref. [44], the homeomorphism can be upgraded to a diffeomorphism and thus
induces a hyperbolic metric on $\tilde{\Sigma}_{2}$. From now on, we
concentrate on $\Sigma_{2}$, knowing that our statements about $\Sigma_{2}$
can be generalized to the $\tilde{\Sigma}_{2}$ surface using the
aforementioned diffeomorphism.

If we instead consider moving the vertices of the octagon to more general
locations on the hyperbolic plane to obtain an irregular octagon, we move
through Teichmüller space, which is the space of hyperbolic metrics of the
closed hyperbolic surface.

As a result of the identification scheme, all vertices of the canonical
polygon represent a single point on $\Sigma_{2}$ and thus the sides of the
polygon correspond to closed loops with a common base point on $\Sigma_{2}$
(see Fig. 3b). Conversely, if we start with the double torus in Fig. 3b and
cut the surface along these loops, we will obtain the octagon in Fig. 3a. In
fact, these loops can be taken as the generators of the fundamental group
$\pi_{1}(\Sigma_{2})$,

$\pi_{1}(\Sigma_{2})=\langle\alpha_{1},\beta_{1},\alpha_{2},\beta_{2}\,|\,\prod_{i=1}^{2}\alpha_{i}\beta_{i}\alpha_{i}^{-1}\beta_{i}^{-1}=1\rangle.$
(7)

An element of the MCG will take these loops to some other loops on
$\Sigma_{2}$, and thus naturally induces a map over $\pi_{1}(\Sigma_{2})$.
More precisely, it can be shown [22, 46] that the mapping class group is
isomorphic to the group of outer automorphisms of the fundamental group,

$\text{MCG}(\Sigma_{2})\approx\text{Out}(\pi_{1}(\Sigma_{2}))=\text{Aut}(\pi_{1}(\Sigma_{2}))/\text{Inn}(\pi_{1}(\Sigma_{2})),$
(8)

where $\text{Aut}(G)$ and $\text{Inn}(G)$ denote the automorphism group and
inner automorphism group of $G$ respectively. The equivalence under
$\text{Inn}(\pi_{1}(\Sigma_{2}))$ is related to the fact that in general,
homeomorphisms of $\Sigma_{2}$ will not keep the base point of the loops in
$\pi_{1}(\Sigma_{2})$ fixed.

Let $U$ denote an arbitrary element of the mapping class group and hence an
equivalence class of homeomorphisms on $\Sigma_{2}$. Due to Eq. (8), $U$ also
corresponds to an equivalence class of automorphisms of $\pi_{1}(\Sigma_{2})$.
In the rest of this paper, in an abuse of notation we use the same symbol $U$
to denote both the equivalence classes of homeomorphisms and
$\text{Out}(\pi_{1}(\Sigma_{2}))$ and also representatives of these classes.

Consider the canonical octagon on the hyperbolic plane. By attaching a copy of
the octagon on each edge according to the identification rules and continuing
this procedure indefinitely for the edges of the newly added octagons, one
will end up with the $\\{8,8\\}$ tiling of the hyperbolic plane (see Fig. 3c).
The result can be used to define a covering map
$p:\mathbb{H}^{2}\longrightarrow\Sigma_{2}$ which along with $\mathbb{H}^{2}$
makes up the universal cover of $\Sigma_{2}$.

In what follows we provide explicit expressions for the homeomorphisms of
$\Sigma_{2}$ to itself corresponding to the Dehn twists along the primary
loops of $\Sigma_{2}$.

####  4.1.1 Dehn twists along the $\alpha$ and $\beta$ loops

We start with the Dehn twist along $\alpha_{1}$.

$D_{\alpha_{1}}:\Sigma_{2}\longrightarrow\Sigma_{2}$ (9)

To find an element of $\text{Aut}(\pi_{1}(\Sigma_{2}))$ which represents
$D_{\alpha_{1}}$, it is enough to see how it acts on the canonical loops of
the $\Sigma_{2}$ surface. To this end we can use the Dehn surgery method
described in Appendix A. However, for simplicity, first we push the
$\alpha_{1}$ slightly to the left to detach it from the $\alpha_{2}$ and
$\beta_{2}$ loops and consider the twist map along this new loop. Note that
the Dehn twist $D_{\alpha_{1}}$ depends only on the isotopy class of
$\alpha_{1}$. Then, as one can verify by looking at Fig. 3b and using the Dehn
surgery method, $D_{\alpha_{1}}$ maps $\beta_{1}$ to
$\beta_{1}\alpha_{1}^{-1}$ and leaves all the other canonical loops invariant.
Note that we use the left to right convention for loop multiplication; if $f$
and $g$ are two loops with a common base point, $fg$ corresponds to a loop
that traces $f$ first and then $g$.

Instead of specifying $D_{\alpha_{1}}$, we provide an explicit form for its
lift to the covering space
$D^{\ast}_{\alpha_{1}}:\mathbb{H}^{2}\longrightarrow\mathbb{H}^{2}$ such that
the diagram below commutes:

${\mathbb{H}^{2}}$${\mathbb{H}^{2}}$${\Sigma_{2}}$${\Sigma_{2}}$$\scriptstyle{D^{\ast}_{\alpha_{1}}}$$\scriptstyle{p}$$\scriptstyle{p}$$\scriptstyle{D_{\alpha_{1}}}$
(10)

To this end, we define how $D^{\ast}_{\alpha_{1}}$ acts on the points of a
fundamental domain. Its action on the other points of $\mathbb{H}^{2}$ are
defined accordingly to ensure commutativity of the diagram in Eq.(10).

Figure 4: (a) The fundamental domain (the shaded region) can be identified
with $\Sigma_{2}$. We define the action of the shearing map on the points in
this region. The action of the map on the other points is defined according to
the identification scheme. (b) Image of the fundamental domain under the
shearing map $D^{\ast}_{\alpha_{1}}$. (c) Example of the action of the map:
the point $x$ inside the triangle $\Delta ABC$ maps to the point $x^{\prime}$
inside $\Delta ACE$. See the text for details.

We take the fundamental domain to be the canonical octagon (shaded region in
Fig. 4a). The action of $D^{\ast}_{\alpha_{1}}$ on the fundamental domain
gives the sheared octagon shown in Fig. 4b. As one can easily verify, it
transforms the $\beta_{1}$ loop to $\beta_{1}\alpha_{1}^{-1}$ as desired,
while all the other loops remain unchanged. In particular note that the
$\alpha_{1}$ loop is mapped to itself and thus has not changed.

We define the map $D^{\ast}_{\alpha_{1}}$ more precisely as follows. We map
$\Delta ABC$ in Fig. 4b to $\Delta ACE$ and $\Delta ACD$ to $\Delta AED$,
where $\Delta ABC$ denotes the hyperbolic triangle made by connecting $A$,$B$
and $C$ via geodesics on $\mathbb{H}^{2}$. All the other regions in the
octagon are left untouched. Mapping $\Delta ABC$ to $\Delta ACE$ is done as
follows. Consider an arbitrary point, $x$, inside $\Delta ABC$ (see Fig. 4c).
To find its image $x^{\prime}=D^{\ast}_{\alpha_{1}}(x)$, first draw the
geodesic line that passes through $A$ and $x$, and continue it to find its
crossing point $M$ with the line $BC$. Now choose $M^{\prime}$ on line $CE$
such that $|CM^{\prime}|/|CE|=|BM|/|BC|$. By $|PQ|$ we mean the length of the
geodesic line connecting $P$ and $Q$, measured using the hyperbolic metric.
Finally, we choose $x^{\prime}$ on the $AM^{\prime}$ line such that
$|Ax^{\prime}|/|AM^{\prime}|=|Ax|/|AM|$. $\Delta ACD$ is mapped similarly to
$\Delta AED$.

It is clear that this map is continuous for the points inside the fundamental
domain. It is also straightforward to check that this map is consistent with
edge identification rules and thus is continuous throughout the
$\mathbb{H}^{2}$ plane. Moreover, the diagram in Eq.(10) commutes by
construction and hence $D_{\alpha_{1}}$ is continuous on $\Sigma_{2}$.
Furthermore, as we explicitly verify in Appendix B, this map does not change
the area of any region by more than a constant factor. This is an important
property which allows the second step of our Dehn twist protocol, as we
explain in subsequent sections.

Dehn twists along $\beta_{1}$, $\alpha_{2}$ and $\beta_{2}$ are defined in a
similar manner.

####  4.1.2 Dehn twists along the $\gamma$ loop

To generate all elements of the MCG we need the Dehn twist along the $\gamma$
loop as well (see Fig. 5a). The canonical octagon which we used to define
$D_{\alpha_{1}}$ has two important features: first, $D_{\alpha_{1}}$ only
changes the $\beta_{1}$ sides while leaving other sides of the octagon
invariant; second, $\alpha_{1}$ and $\beta_{1}$ were neighboring sides of the
octagon. However, since both $\beta_{1}$ and $\beta_{2}$ transform non-
trivially under $D_{\gamma}$ and since the $\gamma$ loop is not one of the
polygon’s sides, the action of $D_{\gamma}$ on the canonical octagon is not as
simple as $D_{\alpha_{1}}$ and looks rather complicated. Therefore to
construct $D_{\gamma}$, it is easier to work with a different fundamental
domain. To find the appropriate fundamental domain, we cut $\Sigma_{2}$ along
a new set of loops rather than the standard $\alpha$’s and $\beta$’s.

Let $\tilde{\alpha_{i}}$ denote the $\alpha_{i}$ loop translated through
$\beta_{i}$:

$\tilde{\alpha_{i}}=\beta_{i}\alpha_{i}\beta_{i}^{-1}.$ (11)

$\tilde{\alpha}_{1}$ is illustrated in Fig. 5a. Note that we can write
$\gamma$ as:

$\gamma=\alpha_{2}^{-1}\tilde{\alpha}_{1}=\alpha_{2}^{-1}\beta_{1}\alpha_{1}\beta^{-1}_{1}.$
(12)

We also define $\delta$ as:

$\delta=\beta_{2}\beta_{1},$ (13)

which represents a loop that encircles both holes of $\Sigma_{2}$.

As was the case for the $\alpha_{1}$ Dehn twist, to find an automorphism of
$\pi_{1}(\Sigma_{2})$ corresponding to $D_{\gamma}$ first we push the $\gamma$
loop shown in Fig. 5a slightly to the right and then use the Dehn surgery
method to find its action on various loops. We remark that if we used another
loop, e.g. if we pushed the $\gamma$ loop slightly to the left instead, we
would find the same automorphism up to an action of $\text{Inn}(\pi_{1})$.
Note that due to Eq. (8), all such maps represent the same element of the
mapping class group.

The representative automorphism induced by $D_{\gamma}$ on
$\pi_{1}(\Sigma_{2})$ can then be summarized in the following four equations:

$\displaystyle D_{\gamma}(\alpha_{1})=\alpha_{1},\quad
D_{\gamma}(\beta_{1})=\gamma^{-1}\beta_{1},$ $\displaystyle
D_{\gamma}(\tilde{\alpha}_{2})=\tilde{\alpha}_{2},\quad
D_{\gamma}(\beta_{2})=\beta_{2}\gamma.$ (14)

Note that $D_{\gamma}$ leaves the $\delta$ loop invariant. To find the
appropriate fundamental domain, we trade the
$\\{\alpha_{1},\beta_{1},\alpha_{2},\beta_{2}\\}$ loops with
$\\{\gamma,\beta_{1},\tilde{\alpha}_{2},\delta\\}$. The group relation in
Eq.(7) can be expressed in terms of these loops as well:

$\tilde{\alpha}_{2}^{-1}\delta^{-1}\tilde{\alpha}_{2}\delta\beta_{1}^{-1}\gamma\beta_{1}\gamma^{-1}=1.$
(15)

Note that $\\{\gamma_{1},\beta_{1}\\}$ as well as
$\\{\tilde{\alpha}_{2},\delta\\}$ have algebraic intersection $1$ while the
two sets are mutually detached, i.e. the algebraic intersection number of a
loop from the first set and a loop from the second set is $0$. So the
$\\{\gamma,\beta_{1},\tilde{\alpha}_{2},\delta\\}$ loops could have been taken
as the primary loops of $\Sigma_{2}$ in the first place.

This in turn suggests using an octagon with its sides following the
$\delta$,$\tilde{\alpha}_{2}$,$\beta_{1}$ and $\gamma$ loops. Such an
irregular octagon is shown in Fig. 5b. As one can easily verify, this can be
taken as the fundamental domain of the mapping $p$. Moreover, it has the
features we are looking for: under the action of $D_{\gamma}$, only the
$\beta_{1}$ loop gets deformed and, furthermore, the $\gamma$ and $\beta_{1}$
loops are represented by neighboring sides of the polygon.

$D^{\ast}_{\gamma}$ (the lift of $D_{\gamma}$ to $\mathbb{H}^{2}$) shears the
octagon shown in Fig.5b to the one shown in Fig.5c. More precisely, $\Delta
FGA$ is mapped to $\Delta FAH$ and $\Delta FAB$ is deformed to $\Delta FHB$.
Mapping the triangles is done through the same procedure described in Section
4.1.1. The action of $D^{\ast}_{\gamma}$ on the other points of
$\mathbb{H}^{2}$ is then defined according to the identification rules. It is
straightforward to verify continuity of the map. Moreover, as we verify in
Appendix B, these maps do not change the area of any region of the surface by
more than a constant factor.

Any element of the MCG of the double torus can be generated using
$D_{\alpha_{i}}$, $D_{\beta_{i}}$ and $D_{\gamma}$. In the next section we
discuss how these constructions generalize to higher genus surfaces.

Figure 5: (a) $\tilde{\alpha}_{1}=\beta_{1}\alpha_{1}\beta_{1}^{-1}$ and
$\gamma$ loops on the $\Sigma_{2}$ surface. (b) The shaded region can be taken
as the fundamental domain of the covering map. (c) Image of the the shaded
region in (b) under the shearing map $D^{\ast}_{\gamma}$.

###  4.2 Dehn Twists on Genus g surface

A hyperbolic genus $g$ surface can be obtained by identifying every other edge
of a $4g$-gon, whose angles sum to $2\pi$, in hyperbolic space. The space of
different hyperbolic metrics, Teichmüller space, corresponds to inequivalent
choices of the locations of the vertices of the $4g$-gon [23]. Here we
consider the canonical $4g$-gon, i.e. a regular $4g$-gon on $\mathbb{H}^{2}$.
The sides of the polygon can be used to generate the fundamental group of the
$\Sigma_{g}$ surface:

$\pi_{1}(\Sigma_{g})=\langle\alpha_{1},\beta_{1},\cdots,\alpha_{g},\beta_{g}\,|\,\prod_{i=1}^{g}\alpha_{i}\beta_{i}\alpha_{i}^{-1}\beta_{i}^{-1}=1\rangle.$
(16)

The MCG of $\Sigma_{g}$ can be generated by Dehn twists along $\alpha_{i}$ and
$\beta_{i}$ for $i=1,\cdots,g$ and $\gamma_{i}$ for $i=1,\cdots,g-1$.
$\gamma_{i}$ can be written as,

$\gamma_{i}=\alpha_{i+1}^{-1}\tilde{\alpha}_{i}.$ (17)

where $\tilde{\alpha}_{i}$ is defined as in (11). Since our maps for the Dehn
twists on the double torus modify only a specific corner of the polygon while
leaving the other parts of it fixed, they generalize naturally to maps on the
$4g$-gons. Also as in the previous $g=2$ case, to construct $D_{\gamma_{i}}$,
it is easier to work with an irregular $g$-gon. As an example, the $g=3$ case
is analyzed in more detail in the Appendix C.

Furthermore, in Appendix B we show that this map does not change the area of
any region by more than a constant bounded factor, even in the limit
$g\rightarrow\infty$. As explained in the next section, this feature is
important to ensure that the depth of the local geometry change circuit
remains constant as one increases the code distance (see Sec 5).

##  5 Change of triangulation

Figure 6: (a) Example of two different triangulations $\Lambda$ and
$\Lambda^{\prime}$ (and their dual graphs) with the same average vertex
density, which we wish to switch between. (b,c) Elementary gadgets: 2-2 and
1-3 Pachner moves on the triangulation (represented by $\hat{\Lambda}_{I}$ to
$\hat{\Lambda}_{\text{II}}$ in the top row) and its dual trivalent graph
(represented by $\hat{\Lambda}_{I}$ to $\hat{\Lambda}_{\text{II}}$ in the
bottom row). The black dots represent data qubits, while the white dots
represent ancilla qubits initialized to $\ket{0}$. (d) The quantum circuit
implementing the 2-2 Pachner move (F operation) in the Fibonacci model. (e)
The “edge-sweep” algorithm to merge two edge-sharing plaquettes on a trivalent
graph by $s-3$ steps of 2-2 Pachner moves followed by a 1-3 Pachner move in
the end. (f) A parallel merging algorithm.

As described in Sec. 3, step (1) of our protocol permutes the qubits by
applying the continuous shear map of Sec. 4 to the triangulation $\Lambda$.
After the permutation, the original triangulation $\Lambda$ is changed to a
sheared triangulation $\Lambda^{\prime}$. In order to return to the original
Hilbert space $\mathcal{H}_{\Lambda}$ and hence reach a non-trivial unitary
map preserving the code space, we need to switch the triangulation back from
$\Lambda^{\prime}$ to $\Lambda$.

In this section, we devise a local unitary circuit to switch a Turaev-Viro
code between two arbitrary triangulations $\Lambda$ and $\Lambda^{\prime}$. We
consider $\Lambda$ and $\Lambda^{\prime}$ to have the same number of vertices
and edges for any given region, up to at most a constant factor, $c$ [as
illustrated in Fig. 6(a)]. Since the switching circuit can be parallelized by
acting throughout the whole space at once, the depth of the circuit only
depends on $c$. To present our algorithm it is more convenient to show the
switch between the two dual trivalent graphs instead, as indicated by the
thick blue lines in Fig. 6(a).

For clarity, we drop the branching structure (previously indicated by arrows
on the edges) of the graphs in this section. Many theories of interest, such
as the Ising code and the Fibonacci code, do not require the branching
structure.

Figure 7: The main switching algorithm between trivalent graphs
$\hat{\Lambda}$ and $\hat{\Lambda}^{\prime}$.

###  5.1 Gadgets

The elementary re-triangulation gadgets we use are associated with the 2-2 and
1-3 Pachner moves, shown in Fig. 6(b) and (c). They correspond to unitary
transformations that take the wave function defined on a triangulation
$\Lambda_{\text{I}}$ to the wave function defined on a different triangulation
$\Lambda_{\text{II}}$, which differs locally:

$\displaystyle\Psi_{\hat{\Lambda}_{\text{I}}}\left(~{}\leavevmode\hbox
to33.25pt{\vbox to34.95pt{\pgfpicture\makeatletter\hbox{\hskip
10.95526pt\lower-17.475pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{11.38092pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-4.26773pt}{7.11319pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-4.26773pt}{-7.11319pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{15.6491pt}{7.11319pt}\pgfsys@lineto{11.38092pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{11.38092pt}{0.0pt}\pgfsys@lineto{15.6491pt}{-7.11319pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{5.69046pt}{2.98741pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{3.36234pt}{0.83464pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$e$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-4.97931pt}{10.66978pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-7.12514pt}{7.19757pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-4.97931pt}{-10.66978pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-7.62225pt}{-12.82256pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{16.36024pt}{10.66978pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{14.19647pt}{8.51701pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{16.36024pt}{-10.66978pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{13.75781pt}{-14.142pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\right)=\sum_{f}F^{abc}_{def}\
\Psi_{\hat{\Lambda}_{\text{II}}}\left(~{}\leavevmode\hbox to34.67pt{\vbox
to37.8pt{\pgfpicture\makeatletter\hbox{\hskip 17.35687pt\lower-13.20726pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{11.38092pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{7.11319pt}{-4.26773pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-7.11319pt}{-4.26773pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{7.11319pt}{15.6491pt}\pgfsys@lineto{0.0pt}{11.38092pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-7.11319pt}{15.6491pt}\pgfsys@lineto{0.0pt}{11.38092pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{3.41418pt}{5.69046pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.42805pt}{3.19046pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$f$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-11.38092pt}{17.78297pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-13.52675pt}{14.31076pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-11.38092pt}{-6.40204pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.02386pt}{-8.55481pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{11.38092pt}{17.78297pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{9.21715pt}{15.6302pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{11.38092pt}{-6.40204pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{8.77849pt}{-9.87425pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\right)$ (18)
$\displaystyle\Psi_{\hat{\Lambda}_{\text{I}}}\left(\leavevmode\hbox
to37.86pt{\vbox to37.69pt{\pgfpicture\makeatletter\hbox{\hskip
18.92274pt\lower-21.4193pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}} {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{-11.71591pt}\pgfsys@lineto{0.0pt}{-4.68623pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-9.95842pt}{5.85779pt}\pgfsys@lineto{-3.98329pt}{2.34311pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{9.95842pt}{5.85779pt}\pgfsys@lineto{3.98329pt}{2.34311pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{3.98329pt}{2.34311pt}\pgfsys@lineto{-3.98329pt}{2.34311pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-3.98329pt}{2.34311pt}\pgfsys@lineto{0.0pt}{-4.68623pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{3.98329pt}{2.34311pt}\pgfsys@lineto{0.0pt}{-4.68623pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{-13.44391pt}{9.46062pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-15.58974pt}{5.9884pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{0.0pt}{-15.93352pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.64294pt}{-18.08629pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{13.44391pt}{9.46062pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{11.28014pt}{7.30785pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{0.0pt}{7.46881pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.60243pt}{3.9966pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{-5.57669pt}{-1.19495pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-7.90482pt}{-3.34772pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$e$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{5.57669pt}{-1.19495pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{2.59056pt}{-3.69495pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$f$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\right)=[F^{abd}_{fce}]^{*}\sqrt{\frac{d_{d}d_{f}}{d_{c}}}\
\Psi_{\hat{\Lambda}_{\text{II}}}\left(\leavevmode\hbox to39.43pt{\vbox
to40.74pt{\pgfpicture\makeatletter\hbox{\hskip
19.70499pt\lower-24.83331pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}} {}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{0.0pt}{-13.3893pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{-11.38092pt}{6.69473pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{{}}{}
{}{}\pgfsys@beginscope\pgfsys@invoke{
}\color[rgb]{0.01171875,0.39453125,0.75390625}\definecolor[named]{pgfstrokecolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@color@rgb@stroke{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0.01171875}{0.39453125}{0.75390625}\pgfsys@invoke{
}\definecolor[named]{pgffillcolor}{rgb}{0.01171875,0.39453125,0.75390625}\pgfsys@setlinewidth{0.8pt}\pgfsys@invoke{
}{}\pgfsys@moveto{11.38092pt}{6.69473pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope{}{{}}{}{{}}{}\pgfsys@moveto{-14.22615pt}{9.10477pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-16.37198pt}{5.63255pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{0.0pt}{-19.34753pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.64294pt}{-21.5003pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
{}{{}}{}{{}}{}\pgfsys@moveto{14.22615pt}{9.10477pt}\pgfsys@stroke\pgfsys@invoke{
}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{12.06238pt}{6.952pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{{
{}{}{}{}{}}{{{}}{{}}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\right),$ (19)

where $F^{abc}_{def}$ is the F-symbol that defines the Turaev-Viro code, and
$d_{c},d_{d}$, and $d_{f}$ are the quantum dimensions of anyons labeled by
$c$, $d$ and $f$. For the 2-2 Pachner move [Eq. (18)], the state labels on the
four external legs ($a$,$b$,$c$ and $d$) are fixed, while the internal edge is
flipped (both in the triangulation and trivalent graph) with the state labels
changing from $e$ to $f$. The 2-2 Pachner move can be implemented by unitary
gates acting on physical qubits as will be illustrated below. For the 1-3
Pachner move [Eq. (19)], the state labels on the three external legs
($a$,$b$,$c$ and $d$) are fixed, while a triangle with three new edges ($e$,
$d$ and $f$) is added at the center of the trivalent graph (from
$\hat{\Lambda}_{I}$ to $\hat{\Lambda}_{\text{II}}$). Correspondingly, in the
original triangulation, a three-legged vertex is added in the center of a
triangle (from $\Lambda_{I}$ to $\Lambda_{\text{II}}$) [see Fig. 6(c)]. These
new edges come from ancilla qubits initialized at $\ket{0}$, which then get
entangled into the code by the 1-3 Pachner move, which can be considered as a
fine graining procedure. The reverse of this process is a coarse graining
procedure. The 1-3 Pachner move can also be implemented by unitary gates,
which can be decomposed into 2-2 Pachner moves and two other simple unitary
gates (see Ref. [58, 57] for details).

In the case of the Fibonacci Turaev-Viro code, we have two simple objects in
the unitary fusion category, labeled $0$ and $1$, with fusion rules $1\times
1=0+1$, and the only non-trivial $F$-matrix is:

$\displaystyle F^{111}_{1}=\begin{pmatrix}\phi^{-1}&\phi^{-\frac{1}{2}}\\\
\phi^{-\frac{1}{2}}&-\phi^{-1}\end{pmatrix},$ (20)

where $\phi=\frac{\sqrt{5}+1}{2}$ is the golden ratio. All other $F$-symbols
are either $1$ or $0$, depending on whether they are consistent with the
fusion rules and Eq. (18). A specific quantum circuit implementing the 2-2
Pachner move ($F$-operations) in the Fibonacci code was presented in Ref. [9]
and is shown in Fig. 6(d). The circuit inside the dashed box is composed of a
5-qubit Toffoli gate sandwiched by two single-qubit rotations, which
implements the $F$-matrix in (20). Here, $R_{y}(\pm\theta)=e^{\pm
i\theta\sigma_{y}/2}$ represents single-qubit rotations about the y-axis with
angle $\theta$$=$$\tan^{-1}(\phi^{-\frac{1}{2}})$. All the other maps are
taken care of by the rest of the quantum circuit in panel (d). For the other
widely considered case, the $\mathbb{Z}_{2}$ hyperbolic surface codes, the
F-symbols and Pachner moves can be implemented via only CNOTs (see Ref. [57]
for details).

Based on these gadgets, we introduce the following two lemmas about the
trivalent graphs, which serve as additional gadgets for the main algorithm.

###### Lemma 0.1

Two edge-sharing plaquettes on a trivalent graph can be merged into a single
plaquette using $s-2$ steps of Pachner moves, where $s$ is the number of edges
in the smaller plaquette (i.e., plaquette with fewer edges).

An “edge-sweeping” algorithm implements the above statement as shown in Fig.
6(e) with $s-3$ steps of 2-2 Pachner moves and a $1-3$ Pahcner move in the
end.

Using the above plaquette-merging gadget, we can also demonstrate the
following lemma when considering merging many plaquettes in parallel, as
illustrated in Fig. 6(f). In particular, one merges all mergeable neighboring
pairs in each step.

###### Lemma 0.2

A collection of $m$ contiguous plaquettes can be merged with
$\mathcal{O}\left(\log_{2}(m)\right)$ rounds of merging of the edge-sharing
plaquettes. The depth of the algorithm is upper bounded by
$\mathcal{O}\left(l\ \log_{2}(m)\right)$ steps of Pachner moves. Here, $l$ is
chosen to be the number of edges of the largest plaquette in this collection.

###  5.2 The main algorithm

Here, we present the main algorithm to switch between the triangulations
$\Lambda$ and $\Lambda^{\prime}$ (and equivalently the dual graphs
$\hat{\Lambda}$ and $\hat{\Lambda}^{\prime}$). For the clarity of
presentation, we choose a particular order by switching from $\hat{\Lambda}$
to $\hat{\Lambda^{\prime}}$, although the algorithm and corresponding quantum
circuit are reversible. The detailed algorithm is as follows:

  1. 1.

We first introduce a trivalent graph $\hat{\Lambda}_{C}$ coarser than the two
fine trivalent graphs $\hat{\Lambda}$ (starting graph) and
$\hat{\Lambda}^{\prime}$ (target graph) we want to switch between. In
particular, we consider a coarser graph $\hat{\Lambda}_{C}$ that encircles at
most $m$ plaquettes of the starting finer graph $\hat{\Lambda}$. We note that
$m$ needs to be bounded and independent of code distance $d$. We also require
that any plaquette in the coarser graph $\hat{\Lambda}_{C}$ contains at least
one plaquette of the finer graphs, as illustrated in Fig. 7(a).

Now the coarser graph $\hat{\Lambda}_{C}$ also encircles at most $m^{\prime}$
plaquettes of the target finer graph $\hat{\Lambda}^{\prime}$. As discussed in
Sec. 4 and Appendix B, the area ratio for a given infinitesimal code patch
before and after the application of the shear maps (belonging to
$\hat{\Lambda}$ and $\hat{\Lambda}^{\prime}$ respectively) is a bounded
constant independent of $d$ (and thus also independent of the number of
physical qubits $n$). This ensures that the ratio $m/m^{\prime}$ is also
bounded and independent of $d$. Since $m$ is bounded and independent of $d$,
$m^{\prime}$ is also a bounded constant independent of $d$. This is a crucial
property to ensure the $\mathcal{O}(1)$ depth of the switching circuit and the
logical gates.

  2. 2.

We now match the vertices ($v_{C}$) of the coarser graph $\hat{\Lambda}_{C}$
with vertices ($v$) on the starting graph $\hat{\Lambda}$ by pinning the
vertices of $\hat{\Lambda}_{C}$ to the closest vertices to them on
$\hat{\Lambda}$, as shown in Fig. 7(b). We can now bend each edge ($e_{C}$) on
the coarser graph $\hat{\Lambda}_{C}$ to match with multiple edges ($e$) on
the starting graph, as shown in Fig. 7(c). In this way, each plaquette in the
fine graph $\hat{\Lambda}$ is strictly enclosed in only one plaquette in the
coarser graph $\hat{\Lambda}_{C}$. This step does not require any quantum
operations and is done entirely in the classical software.

Note that the deformation of the coarser graph $\hat{\Lambda}_{C}$ leads to a
slight change of the maximal number of enclosed fine plaquettes in any coarser
plaquette, i.e., $m$ and $m^{\prime}$, into $\mathcal{O}(m)$ and
$\mathcal{O}(m^{\prime})$.

  3. 3.

We coarse grain the finer graph $\hat{\Lambda}$ into the coarser graph
$\hat{\Lambda}_{C}$ by using the parallel plaquette merging algorithms
introduced in Lemma 0.2, as shown in Fig. 7(d). This procedure takes
$\mathcal{O}(\log_{2}(m))$ merging steps with $\mathcal{O}(l\ \log_{2}(m))$
time steps of Pachner moves, where $l$ is the largest number of edges among
all plaquettes in the starting finer graph $\hat{\Lambda}$.

  4. 4.

We match vertices ($v_{C}$) and the edges ($e_{C}$) of the coarser graph
$\hat{\Lambda}_{C}$ with those ($v^{\prime}$ and $e^{\prime}$) in the finer
graph $\hat{\Lambda}^{\prime}$ using the same procedure as above, as shown in
Fig. 7(e).

  5. 5.

We fine grain the coarser graph $\hat{\Lambda}_{C}$ into the target finer
graph $\hat{\Lambda}^{\prime}$ by reversing the parallel merging algorithms in
Lemma 0.2, as shown in Fig. 7(f). This procedures takes
$\mathcal{O}(\log_{2}(m^{\prime}))$ splitting steps with
$\mathcal{O}(l^{\prime}\ \log_{2}(m^{\prime}))$ time steps of Pachner moves,
where $l^{\prime}$ is the largest number of edges among all plaquettes in the
target finer graph $\hat{\Lambda^{\prime}}$.

As we see the total time complexity of the switching algorithm is
$\mathcal{O}[\text{max}(l\log_{2}(m),l^{\prime}\log_{2}(m^{\prime}))]$, i.e.,
dominated by the larger complexity from the coarse graining and fine graining
process. Since $m,m^{\prime},l,l^{\prime}$ can all be bounded values
independent of the code distance $d$ (or equivalently graph size), we reach
the following theorem:

###### Theorem 1

If two triangulations $\Lambda$ and $\Lambda^{\prime}$ have bounded ratios in
terms of their vertices, edges, and plaquettes per unit area, then there
exists a bounded depth circuit to convert between them with Pachner moves. The
depth of the circuit is independent of the area of the surface, and therefore
independent of the code distance $d$.

We emphasize again that the requirement of the bounded ratios of vertices,
edges and plaquettes per unit area is ensured by the bounded ratio of the
areas corresponding to the infinitesimal code patches before and after the
shearing maps, as discussed in Sec. 4 and Appendix B. We also note that in the
above discussions, we focused on proving the existence of a constant depth
local unitary circuit, rather than giving the most efficient switching
algorithm. To be more efficient, one does not need to follow the
fine$\rightarrow$coarse$\rightarrow$fine pattern, but can rather directly find
the shortest circuit to directly switch between the two fine graphs via
Pachner moves.

##  6 Fault tolerance and space-time overhead

So far we have shown that a generating set of Dehn twists for the MCG of a
genus $g$ hyperbolic surface can be implemented by a constant depth unitary
circuit, where the depth is independent of the code distance and therefore
also the number of physical and logical qubits, $n$ and $k$. In this section,
we briefly discuss fault tolerance of these circuits.

Our circuit breaks up into two basic pieces: A permutation of the physical
qubits and a local constant depth circuit that implements the retriangulation.
Since local unitary circuits have a linear light cone, the latter, i.e. the
local constant depth circuit, is intrinsically fault tolerant. So, to ensure
the fault tolerance of our procedure, we concentrate on the first part which
permutes the physical qubits.

The permutation in our maps requires qubits to be permuted over long
distances. Due to its non-local nature, there are two main concerns in regard
to the propagation of errors that we need to address: (1) What happens to the
pre-existing local error strings? Is it possible for them to be enlarged to
lengths of $\mathcal{O}(d)$? (2) Is it possible to introduce new non-local
($\mathcal{O}(d)$ long) error strings by a noisy implementation of the
permutation circuit, e.g. noisy SWAP gates?

For a generic non-local permutation, both issues mentioned above could
possibly arise. Nevertheless the permutations that we utilize have a special
structure. To address the first issue, note that the continuous maps
introduced in Sec. 4, take two points which are $\mathcal{O}(1)$ apart to new
points which are still $\mathcal{O}(1)$ apart. This can be seen from the
analysis carried out in Appendix B as well. However, to enlarge a local error
string to a large error string of length $\mathcal{O}(d)$ we have to separate
its endpoints by a factor of $\mathcal{O}(d)$. Thus, we can conclude that
after the permutation, all pre-existing local error strings would remain
local; at worst their length will be increased by a constant factor
independent of $d$. Stated differently, our constant depth circuits map any
operator with support in a spatial region $\mathcal{R}$ to an operator with
support in a spatial region $\mathcal{R^{\prime}}$, where the area of
$\mathcal{R}$ and $\mathcal{R^{\prime}}$ are related by a constant
(independent of code distance) factor. Here the areas are with respect to the
hyperbolic metric. In this sense, the whole circuit is also “locality-
preserving,” although strictly speaking the phrase “locality-preserving” is
often reserved for the case where the constant factor is unity[12, 4]..

Now we consider the possibility of introducing new non-local error strings
during a noisy implementation of the permutation. Let’s say the permutation is
implemented by a set of noisy long range SWAPs. The important point to note is
that while the SWAP operations are long ranged, they are still low weight
operators. In particular, each SWAP operation acts on $2$ qubits. On the other
hand, a logical error string is a high weight operator, consisting of
$\mathcal{O}(d)$ single qubit errors. So, if we assume the errors occur
independently on different SWAPs, the possibility of introducing a logical
error by a set of noisy SWAPs is still exponentially small in $d$. Therefore
the second question can be answered in the negative as well.

Therefore, our Dehn twists and the corresponding logical gates are inherently
protected from errors, in the sense that they do not stretch error strings by
more than a constant factor, nor can they introduce error strings that have
length more than a constant, independent of code distance.

However, if we apply the same collection of Dehn twists (logical gates)
repetitively in the same region of the manifold, in the worst case the length
of error strings could grow exponentially with the number of logical gates
being applied. In the absence of measurement noise, the error string can be
decoded and corrected in $\mathcal{O}(1)$ time [16] immediately after the
application of a single logical gate (here we have ignored the classical
computation time of the decoder which still typically scales with system
size). Hence the computation scheme will have an $\mathcal{O}(1)$ (constant)
time overhead. However, in the presence of measurement noise, the error string
cannot be immediately decoded and corrected in $\mathcal{O}(1)$ time, so the
growth of such a string would be inevitable. After performing
$\mathcal{O}(\log d)$ logical gates in the same region without any measurement
or error correction in between, the error string may grow to a length of
$\mathcal{O}(d)$, which will cause the decoder to fail. Therefore, one has to
insert $\mathcal{O}(d)$ rounds of measurements, decoding, and error
corrections for every $\mathcal{O}(\log d)$ of logical gates in the same
region. This suggests a sub-linear overhead $\mathcal{O}(d/\log d)$ in the
computational time when repetitively applying logical gates in the same
region, if the measurement error is taken into account. It may be possible to
further reduce such overhead by some additional tricks, at least for certain
types of logical circuits, but there may still be such a sub-linear overhead
in the most generic situation. We note that the above $\mathcal{O}(d/\log d)$
time overhead is an estimate suggested by the considerations stated above;
further work is required to develop efficient decoders to concretely
demonstrate the validity of this estimate.

The above statements for the asymptotic space-time resource costs have assumed
that the codes have a finite error threshold and that an efficient decoder
exists and requires $\mathcal{O}(d)$ rounds of syndrome measurements to decode
errors. For the Ising anyon code, this has been confirmed in the recent
theoretical study in the presence of measurement error [21]. For the Fibonacci
anyon code, a decoding scheme showing a finite error threshold has only been
developed for the case without measurement noise [16]. We expect that the
Fibonacci anyon code can also be used for fault-tolerant quantum computation
using $\mathcal{O}(d)$ rounds of error correction in the presence of
measurement errors. However the development of concrete decoding algorithms,
explicit demonstrations of a finite error threshold, and efficient error
recovery operations for the Fibonacci anyon code requires further work.

##  7 Discussion

We have shown that Dehn twists in hyperbolic Turaev-Viro codes, which are the
most general types of topological codes, can be implemented by constant depth
unitary circuits while preserving the constant space overhead of the codes. We
have presented explicit representative maps for Dehn twists on hyperbolic
surfaces, which we use to define the first step of our protocols, which
correspond to the permutation of the qubits. As we explicitly verify, our maps
do not increase or shrink any infinitesimal area by more than a constant
factor even in the $g\rightarrow\infty$ limit. This fact implies that the
second step of our protocol, the local unitary circuit that implements the
retriangulation back to the original code space, is of constant depth. Since
generic permutations can be implemented as a depth-2 circuit consisting of
long-range SWAP operations applied in parallel, it follows that our entire
protocols are constant depth unitary circuits.

Because our circuits for a given Dehn twist only act within a local region
associated with a given handle or pair of handles, they can be applied in
different regions simultaneously, in parallel (again while still keeping the
constant space overhead), which makes our protocols amenable to parallel
quantum computation.

The simplest example of the codes that we study is the $\mathbb{Z}_{2}$
hyperbolic surface code. Our results demonstrate that Dehn twists, which
generate a subgroup of the Clifford group acting on the logical qubits in this
case, can be implemented by constant depth unitary circuits. In Appendix D we
demonstrate explicitly how our retriangulation circuit in this case can be
implemented using CNOT operations on the physical qubits.

When applying our results to the Fibonacci Turaev-Viro code, our results imply
that a universal set of gates can be implemented through constant depth
unitary circuits in a code with finite encoding rate (constant space
overhead). Recent numerical study has shown the existence of a finite error
threshold for a decoding scheme in the Fibonacci anyon code without
considering measurement noise [16]. We expect, though it has not yet been
explicitly demonstrated, that the Fibonacci Turaev-Viro code possesses a
finite error threshold, efficient decoding algorithms and error recovery
procedures even in the presence of measurement noise (similar statements for
other non-Abelian codes have been demonstrated [21]). Assuming this, and
inserting $\mathcal{O}(d)$ rounds of error correction for every
$\mathcal{O}(\log d)$ logical gates to ensure fault-tolerance in the presence
of noisy syndrome measurements, our results suggest that universal fault-
tolerant quantum computation with constant space overhead and time overhead of
$\mathcal{O}(d/\log d)$ per logical gate is possible. This suggests that a
generic logical quantum circuit of depth $D$ with $k$ logical qubits would
require $\mathcal{O}(dD/\log d)$ time steps and $\mathcal{O}(k)$ physical
qubits.

To our knowledge, the only proposed scheme with comparable space-time overhead
for universal quantum computation is the one proposed by Gottesman in Ref.
[28] which also uses constant space overhead. In Gottesman’s scheme, the time
overhead per logical gate is constant for sequential quantum circuits, where
one logical gate is applied at each time step. This means that a highly
parallel circuit of depth $D$ would take time $\mathcal{O}(kD)$ 333Ref. [28]
also proposed methods to reduce this time cost to $\mathcal{O}(k^{\gamma}D)$
for $\gamma>0$ arbitrarily small, at the cost of increasing the scaling of the
space overhead..

In the regime of interest for large-scale universal fault-tolerant quantum
computation, $k\gg d$, and therefore our scheme would have an order
$\mathcal{O}(d/(k\log d))$ improvement over the proposal of Ref. [28] for
parallel quantum circuits. We note that $k\gg d$ is also the natural setting
for the hyperbolic code, since $d\sim\log n\sim\log k$ suggests an exponential
growth of logical qubit number $k$ as a function of the code distance $d$.

Our protocols allowing for implementation of mapping class group elements via
constant depth circuits should be straightforwardly generalizable to higher
dimensional topological codes. We note that a number of codes in three and
four dimensions (such as the four-dimensional toric code) allow for single-
shot error correction [7]. This would potentially allow any number of our type
of logical gates to be applied with constant time overhead, even in the
presence of measurement errors.

In this paper we studied hyperbolic codes for two-dimensional topological
states, where $d\sim\log n$. However better codes exist, such as the
hypergraph product codes [52, 40] or homological codes associated with four-
dimensional hyperbolic manifolds [29]. These codes also have constant space
overhead (and finite error thresholds because they are LDPC), but with the
improved scaling of $d\sim\sqrt{n}$ for the hypergraph product codes and
$d\sim n^{\epsilon}$ ($\epsilon<0.3$) for the four-dimensional hyperbolic
codes. However, due to Mostow rigidity, the mapping class group of higher
dimensional hyperbolic manifolds is necessarily finite. It is therefore a
fundamental question whether there exist codes with constant space overhead
and $d\sim n^{\alpha}$ (with $\alpha>0$), and which also admit a universal
logical gate set through constant depth unitary circuits.

##  8 Acknowledgments

We thank M. Freedman, J. Haah, and M. Hastings for discussions. We are
especially grateful to M. Freedman for helpful suggestions regarding the
retriangulation protocols. This work is supported by NSF CAREER (DMR-1753240),
Alfred P. Sloan Research Fellowship, and JQI- PFC-UMD. G.Z. was also supported
by ARO-MURI.

##  Appendix A Dehn Twist

Figure 8: (a) Annulus $A$ with a typical line connecting its boundaries
together. (b) Image of the region $A$ under the twist map. (c) and (d) show
the $\beta$ loop and its image under the Dehn twist around the $\alpha$ loop,
respectively.

Consider the annulus $A$ shown in Fig. 8a which consists of the points in the
$(r,\theta)$-plane with $1\leq r\leq 2$ and $0\leq\theta<2\pi$. Let $T:A\to A$
denote the twist map given as:

$T(r,\theta)=\quantity(r,\theta+2\pi(r-1)).$ (21)

Note that $T$ is an orientation preserving homeomorphism which reduces to the
identity map on the boundaries of $A$. Fig. 8b shows the image of a line in
$A$ under $T$.

Now, let $\Sigma$ denote an arbitrary oriented surface and let $\alpha$ be a
simple closed curve on $\Sigma$. To define the Dehn twist around $\alpha$,
first we choose a regular neighborhood $\mathcal{A}$ of $\alpha$ on $\Sigma$
which is homeomorphic to $A$. Let $\phi:A\to\mathcal{A}$ denote an orientation
preserving homeomorphism from $A$ to $\mathcal{A}$. We define the twist map
around $\alpha$ by the following homeomorphism $T_{\alpha}:\Sigma\to\Sigma$

$T_{\alpha}(x)=\begin{cases}\phi~{}\circ
T\circ\phi^{-1}(x)\quad&x\in\mathcal{A}\\\ x&x\notin\mathcal{A}\end{cases}$
(22)

$T_{\alpha}$ clearly depends on the choice of $N$, $\phi$ and $\alpha$. We
define the Dehn Twist around $\alpha$, denoted by $D_{\alpha}$ to be the
isotopy class of $T_{\alpha}$, i.e. the class of homeomorphisms of $\Sigma$ to
itself that can be deformed continuously to $T_{\alpha}$. We remark that
$D_{\alpha}$ depends only on the isotopy class of $\alpha$.

As an example, one can consider the Dehn twist around the $\alpha$ loop on the
simple torus shown in Fig.8c. Figure 8d shows how the $\beta$ loop gets
deformed by the action of $D_{\alpha}$.

A simple way to find the image of a given loop like $\beta$ under the action
of the Dehn twist around another loop like $\alpha$, called the Dehn surgery,
is as follows: We start by tracing out the $\beta$ loop until we hit an
intersection with the $\alpha$ loop. Then we turn left to trace out the
$\alpha$ loop until we return to the intersection point, where we turn right
to continue tracing out the $\beta$ loop. We need to do the same at any
intersection of $\alpha$ and $\beta$ until we get back to the starting point.
Note that with the above definition the Dehn twist around $\alpha$ does not
depend on any direction that the $\alpha$ loop might have.

##  Appendix B Area scaling calculation

In this appendix we analyze the shearing maps introduced in Section 4 to see
by how much they scale the area locally. Because these maps do not have any
singularity on a genus $g$ surface, the local area scaling is bounded from
below and above as one considers a fixed $g$. But more importantly, we will
show that if we consider a family of maps on surfaces with increasing genus
$g$, the local area scaling remains finite and bounded from below. Note that
this result is crucial for the retriangulation circuit described in Sec. 5 to
be constant depth.

As in the rest of the paper, we use the Poincare disk model for
$\mathbb{H}^{2}$, namely the open unit disk in $\mathbb{C}$ with the
Reimannian metric:

$\differential s^{2}=4\frac{\differential x^{2}+\differential
y^{2}}{(1-r^{2})^{2}}.$ (23)

In this model, the geodesics connecting two points would be either circular
arcs perpendicular to the unit disk or straight lines passing through the
origin. It would be useful to note that a line reflection in $\mathbb{H}^{2}$
looks like circle inversion in the unit disk model.

A genus $g$ hyperbolic surface can be obtained by compactifying a canonical
$N$-gon for $N=4g$. A canonical $N$-gon plotted in the Poincare disk model and
centered at the origin would have its vertices at points:

$z_{j}=\sqrt{\cos(\frac{2\pi}{N})}e^{i2\pi j/N},\quad j=0,\cdots,N-1.$ (24)

The length of the sides, as measured using the hyperbolic metric, would be
(see Fig.9a):

$|AB|=4\tanh(\frac{\cos(\pi/N)-\sin(\pi/N)}{\sqrt{\cos(2\pi/N)}}).$ (25)

The $\\{N,N\\}$-tiling of $\mathbb{H}^{2}$ can be obtained by reflecting the
canonical $N$-gon with respect to its sides and repeating this procedure
indefinitely.

We start by analyzing the $\alpha_{1}$ Dehn twist in detail. With minor
modifications, the same calculation applies to the other maps as well, so we
will only mention the end results for the other maps.

For the points in the shaded region but outside the $ABCD$ hyperbolic $4$-gon
in Fig. 4b, $D_{\alpha_{1}}$ acts as identity and hence it is preserves area
locally. Next we consider the points inside $\Delta ABC$ which are mapped to
points inside $\Delta ACE$ (See Fig.9).

Figure 9: (a) $D^{\ast}_{\alpha_{1}}$ maps the $\Delta ABC$ and $\Delta ACD$
triangles to the $\Delta ACE$ and $\Delta AED$ triangles respectively. (b) By
moving the origin of the Poincarè disk to the point $A$, the geodesics $AB$,
$AC$ and $AE$ turn into straight lines while the angles between them remains
the same. A typical area element at point $x$ alongside its image at
$x^{\prime}$ is shown on the figure.

We start by calculating some lengths and angles. As in the main text, $|~{}|$
denotes the hyperbolic length. $|AC|$ can be obtained using the hyperbolic law
of cosines (see Fig.9a):

$\cosh(|AC|)=\cosh(|AB|)^{2}-\sinh(|AB|)^{2}\cos(2\pi/N),$ (26)

where we used the fact $|BC|=|AB|$. Then, we can calculate the angle
$\Phi\equiv\angle BAC=\angle BCA$ by the hyperbolic law of sines:

$\sin(\Phi)=\frac{\sinh(|AB|)}{\sinh(|AC|)}\sin(2\pi/N).$ (27)

Note that $|CE|=|AB|$ and $\angle ECD=2\pi/N$. Therefore, $|AE|$ and
$\Phi^{\prime}\equiv\angle CAE$ can be computed using the hyperbolic laws of
cosines and sines respectively:

$\displaystyle\cosh(|AE|)=\begin{aligned} &\cosh(|AB|)\cosh(|AC|)\\\
&-\sinh(|AB|)\sinh(|AC|)\cos(4\pi/N-\Phi)\end{aligned}$ (28)
$\displaystyle\sin(\Phi^{\prime})=\frac{\sinh(|AB|)}{\sinh(|AE|)}\sin(4\pi/N-\Phi).$
(29)

To make calculations simpler, we place the origin of the Poincarè disk on
point $A$; by doing so, the geodesics that come out of the point $A$ will look
like straight lines on the disk. In Fig. 9b, $\Delta ABC$ and $\Delta ACE$ are
plotted in this new coordinate frame.

Consider an infinitesimal area element $\differential s$ at $x=(r,\theta)$
inside $\Delta ABC$ which is mapped to the area element $\differential
s^{\prime}$ at $x^{\prime}=(r^{\prime},\theta^{\prime})$ inside $\Delta ACE$;
$r$ and $r^{\prime}$ are the Euclidean distance from origin in Fig. 9b and the
$\theta$ and $\theta^{\prime}$ angles are measured with respect the lines $AB$
and $AC$ respectively. we define $\lambda(r,\theta)$ as the scale factor of
the area:

$\lambda_{N}(r,\theta)\equiv\frac{\differential s^{\prime}}{\differential
s}=\sqrt{\frac{g(r^{\prime})}{g(r)}}\frac{r^{\prime}\differential
r^{\prime}}{r\differential
r}\frac{\differential\theta^{\prime}}{\differential\theta},$ (30)

where $g(r)$ is the determinant of the hyperbolic metric:

$g(r)=\frac{16r^{2}}{(1-r^{2})^{4}}.$ (31)

We want to show that $\lambda$ is bounded from above and below:

$L<\lambda_{N}(r,\theta)<U,$ (32)

for some real positive $L$ and $U$. First, we need to find $r^{\prime}$ and
$\theta^{\prime}$ in terms of $r$ and $\theta$.

Using the law of cosines for the angles in $\Delta ABM$ (see Fig. 9b) gives:

$\displaystyle\cos(\angle AMB)=$
$\displaystyle-\cos(\theta)\cos(\frac{2\pi}{N})$
$\displaystyle+\sin(\theta)\sin(\frac{2\pi}{N})\cosh(|AB|)$ (33)

And we can use this result to find $|BM|$ and $|AM|$:

$\displaystyle\sinh(|AM|)=\frac{\sin(2\pi/N)}{\sin(\angle AMB)}\sinh(|AB|)$
(34) $\displaystyle\sinh(|BM|)=\frac{\sin(\theta)}{\sin(\angle
AMB)}\sinh(|AB|)$ (35)

$D^{\ast}_{\alpha_{1}}$ is defined such that:

$\displaystyle|CM^{\prime}|=\frac{|BM|}{|BC|}|CE|.$ (36)

Note that in this case $|BC|=|CE|$ and hence:

$|CM^{\prime}|=|BM|.$ (37)

We can find $|AM^{\prime}|$ by using the law of cosines in $\Delta
ACM^{\prime}$:

$\displaystyle\cosh(|AM^{\prime}|)=$
$\displaystyle\cosh(|CM^{\prime}|)\cosh(|AC|)$ (38)
$\displaystyle-\sinh(|CM^{\prime}|)\sinh(|AC|)\cos(\frac{4\pi}{N}-\Phi).$ (39)

It is then straight forward to find $r^{\prime}$ and $\theta^{\prime}$.
According to the way the map $D^{\ast}_{\alpha_{1}}$ is defined, we have:

$|Ax^{\prime}|=\frac{|AM^{\prime}|}{|AM|}|Ax|.$ (40)

Note that $r^{\prime}=\tanh(|Ax^{\prime}|/2)$ and
$|Ax|=2\operatorname{arctanh}(r)$. So we have:

$r^{\prime}=\tanh(\rho\operatorname{arctanh}(r)),$ (41)

where $\rho$ is equal to $\frac{|AM^{\prime}|}{|AM|}$ and depends only on
$\theta$(not $r$). By taking the derivative of (41) with respect to $r$ we
get:

$\frac{\differential r^{\prime}}{\differential
r}=\rho(\theta)\frac{1-r^{\prime 2}}{1-r^{2}}$ (42)

$\theta^{\prime}$ can also be obtained by using the hyperbolic law of sines in
$\Delta ACM^{\prime}$:

$\sin(\theta^{\prime})=\frac{\sinh(|CM^{\prime}|)}{\sinh(|AM^{\prime}|)}\sin(\frac{4\pi}{N}-\Phi)$
(43)

By plugging (41),(42) and (31) into (30) we find:

$\lambda_{N}(r,\theta)=\quantity(\frac{\tanh(\rho\operatorname{arctanh}(r))}{r})^{2}\quantity(\frac{1+r}{1+\tanh(\rho\operatorname{arctanh}(r))})\quantity(\frac{1-r}{1-\tanh(\rho\operatorname{arctanh}(r))})\rho(\theta)\frac{\differential\theta^{\prime}}{\differential\theta}.$
(44)

First, we fix $\theta$ and see how $\lambda$ changes as one varies $r$ in the
range $[0,r_{\text{max}}=\tanh(|AM|/2)]$. It is straight forward to show that
$\tanh(\rho\operatorname{arctanh}(r))/r$ is bounded by $1$ and $\rho$. The
second parentheses in (44), which is equal to $(1+r)/(1+r^{\prime})$, also is
bounded by $1/2$ and $2$. The third parenthesis in (44) is a monotonic
function of $r$, as one can verify by taking the derivative, and so is bounded
by $1$ and $(1-\tanh(|AM|/2))/(1-\tanh(|AM|^{\prime}/2))$. Therefore, to make
sure that $\lambda_{N}(r,\theta)$ is bounded, it suffices to show that
$\rho(\theta)=\frac{|AM|^{\prime}}{|AM|}$ ,
$(1-\tanh(|AM|/2))/(1-\tanh(|AM|^{\prime}/2))$ and
$\frac{\differential\theta^{\prime}}{\differential\theta}$ remain finite as
one changes $\theta$ from $0$ to $\Phi$.

So far, all expressions were exact. But, since we are interested in the
$N\to\infty$ limit, the calculation can be simplified greatly by computing the
large $N$ expansion of each expression. In particular, (25),(26),(28),(27) and
(29) have the following asymptotic forms:

$\displaystyle|AB|=-2\ln\quantity(\frac{\pi}{2N})-\frac{7\pi^{2}}{6N^{2}}-\frac{487\pi^{4}}{720N^{4}}+\mathcal{O}(1/N^{5})$
$\displaystyle|AC|=-2\ln\quantity(\frac{\pi}{4N})-\frac{61\pi^{2}}{24N^{2}}+\mathcal{O}(1/N^{3})$
$\displaystyle|AE|=-2\ln\quantity(\frac{\pi}{14N})+\mathcal{O}(1/N)$
$\displaystyle\Phi=\frac{\pi}{2N}+\frac{3\pi^{3}}{8N^{3}}+\mathcal{O}(1/N^{4})$
$\displaystyle\Phi^{\prime}=\frac{\pi}{14N}+\mathcal{O}(1/N^{2})$ (45)

To find the asymptotic form of functions that involve $\theta$, first we trade
$\theta$ for $\eta\equiv\frac{\theta}{\Phi}$. The reason is that $\theta$
varies in the range $[0,\Phi]$ and so has an implicit $1/N$ dependence because
of $\Phi$. By using $\eta$ instead of $\theta$, the only small parameter of
our expressions would be $1/N$. Note that $0\leq\eta\leq 1$. In terms of
$\eta$, we get the following asymptotic forms for the expressions in 34,38 and
43:

$\displaystyle|AM|=-\ln(\frac{\pi\sqrt{\eta(1-\eta)}}{4N})+\mathcal{O}(1/N)$
(46)
$\displaystyle|AM^{\prime}|=-\ln(\frac{\pi\sqrt{\eta(1-\eta)}}{(16+33\eta)N})+\mathcal{O}(1/N)$
(47)
$\displaystyle\theta^{\prime}=\frac{7\pi\eta}{(32+66\eta)N}+\mathcal{O}(1/N^{2})$
(48)

The first two expressions are only valid for $0<\eta<1$; for $\eta=0,1$ we
have to use the expressions listed in (B) instead. Note that for $\eta=0$, we
have $|AM|=|AB|$ and $|AM^{\prime}|=|AC|$. Similarly, $|AM|=|AC|$ and
$|AM^{\prime}|=|AE|$ when $\eta=1$. It follows then,

$\displaystyle\lim_{N\to\infty}\rho(\eta)=1$
$\displaystyle\lim_{N\to\infty}\frac{1-\tanh(|AM|/2)}{1-\tanh(|AM|^{\prime}/2)}=\frac{4}{16+33\eta}$
$\displaystyle\lim_{N\to\infty}\frac{\differential\theta^{\prime}}{\differential\theta}=\frac{122}{(16+33\eta)^{2}},$
(49)

and clearly all of them are bounded as a function of $\eta$. Thus we conclude
that the inequality (32) holds and therefore, when mapping $\Delta ABC$ to
$\Delta ACE$, local area scaling is finite and bounded form above and belllow.

It remains to show that the same holds when mapping $\Delta ACD$ to $\Delta
AED$. The steps are quite the same. First we calculate the side lengths and
angles of these triangles. Note that $|DE|=|AC|$,$|CD|=|AB|$ and $\angle
ACD=2\pi/N-\Phi$. $|AD|$ and $\Phi^{\prime\prime}\equiv\angle CAD$ can then be
obtained using the hyperbolic law of cosines and sines respectively:

$\displaystyle\cosh(|AD|)=\begin{aligned} &\cosh(|AC|)\cosh(|AB|)\\\
&-\sinh(|AC|)\sinh(|AB|)\cos(\frac{2\pi}{N}-\Phi),\end{aligned}$ (50)
$\displaystyle\sin(\Phi^{\prime\prime})=\frac{\sinh(|AB|)}{\sinh(|AD|)}\sin(\frac{2\pi}{N}-\Phi).$
(51)

Let $M$ be a point on the side $CD$ and $M^{\prime}$ its image which will be
on $ED$. According to the definition of the map,

$|EM^{\prime}|=\frac{|DE|}{|CD|}|CM|=\frac{|AC|}{|AB|}|CM|$ (52)

We define $\rho$, $\theta$, $\theta^{\prime}$, and $\eta$ similar to the
previous case: $\theta\equiv\angle MAC$, $\theta^{\prime}\equiv\angle
M^{\prime}AE$, $\rho(\theta)\equiv|AM^{\prime}|/|AM|$ and
$\eta\equiv\theta/\Phi^{\prime\prime}$. As in the previous section, we only
need to compute the corresponding limits listed in (B). The calculation
follows the same steps and at the end we will find that:

$\displaystyle\lim_{N\to\infty}\rho(\eta)=1$ (53)
$\displaystyle\lim_{N\to\infty}\frac{1-\tanh(|AM|/2)}{1-\tanh(|AM|^{\prime}/2)}=\frac{8}{49-45\eta}$
(54)
$\displaystyle\lim_{N\to\infty}\frac{\differential\theta^{\prime}}{\differential\theta}=\frac{112}{(49-45\eta)^{2}}.$
(55)

Since all of them are bounded for $0\leq\eta\leq 1$ it follows that the area
elements in $\Delta ACD$ also expand or shrink by a finite factor under this
transformation.

Putting everything together, we conclude that $D^{\ast}_{\alpha_{1}}$ has
finite local area scaling over the entire polygon and this ends the proof.

The situation for $\beta$ Dehn twists are exactly the same up to some
relabeling and needs no more analysis. One can also carry out similar
calculations to check that the same remains true for the $\gamma$ Dehn twists.
Note that $D^{\ast}_{\gamma}$ is essentially the same as $D^{\ast}_{\alpha}$;
the only difference is that the polygon is no longer regular.

##  Appendix C Dehn Twists on $\Sigma_{3}$

Figure 10: $\Sigma_{3}$ surface and generators of its fundamental group.

Although we used a $g=2$ hyperbolic surface to describe our procedure, as we
mentioned in the main text the protocols can be easily generalized to higher
genus surfaces. In this section, we briefly explain how the generalization
applies in the $g=3$ case. The genus $3$ surface $\Sigma_{3}$, shown in Fig.
10, can be constructed by identifying every other edge of a $12$-gon (see Fig.
11a). The space of possible hyperbolic metrics – Teichmüller space –
corresponds to inequivalent choices for the locations of the vertices of the
$12$-gon. Here we consider a regular $12$-gon for simplicity.

Figure 11: (a) The regular $12$-gon corresponding to the $\Sigma_{3}$ surface.
(b) The image of the fundamental domain shown in (a) under the action of
$D^{\ast}_{\alpha_{1}}$. (c) New set of loops on the surface of $\Sigma_{3}$
(d) The fundamental domain that is used to define $D^{\ast}_{\gamma_{1}}$
which can be obtained by cutting the $\Sigma_{3}$ surface along the loops
shown in (c). The sides associated with $\tilde{\alpha}_{2}$, $\beta_{1}$,
$\delta_{1}$ marked by the arrows could not be drawn completely due to size
constraint.

The sides of the $12$-gon then correspond to the canonical closed loops of the
closed surface which generate the fundamental group of $\Sigma_{3}$:

$\pi_{1}(\Sigma_{3})=\langle\alpha_{1},\beta_{1},\cdots,\alpha_{3},\beta_{3}\,|\,\prod_{i=1}^{3}\alpha_{i}\beta_{i}\alpha_{i}^{-1}\beta_{i}^{-1}=1\rangle.$
(56)

Similar to the genus $2$ case, we can tile the hyperbolic plane by attaching
copies of the standard $12$-gon appropriately together, which then specifies a
universal covering for $\Sigma_{3}$. We can choose one of the standard
$12$-gons as the fundamental domain of the covering. Such a tiling is plotted
in Fig.11a.

The mapping class group of $\Sigma_{3}$ can be generated by the Dehn twists
around the $\alpha$ and $\beta$ loops plus the Dehn twists along $\gamma_{1}$
and $\gamma_{2}$ loops, where:

$\gamma_{i}=\alpha_{i+1}^{-1}\tilde{\alpha}_{i},\qquad i=1,2$ (57)

and where $\tilde{\alpha}_{i}$ is the $\alpha_{i}$ but transported along
$\beta_{i}$:

$\tilde{\alpha}_{i}=\beta_{i}\alpha_{i}\beta_{i}^{-1}$ (58)

To implement the Dehn twists, it suffices to find appropriate shearing maps to
permute the qubits accordingly. The subsequent step, which is the re-
triangulation, has already been described in the general case in Section 5.
The representative maps for the Dehn twists along $\alpha$ and $\beta$ loops
are essentially the same as the ones described in Section 4 for the $g=2$
case. As an example, Fig. 11b shows how the fundamental domain is transformed
by $D^{\ast}_{\alpha_{1}}$ in this case.

The representative maps for Dehn twists along $\gamma_{i}$s are also
straightforward generalizations of the map described in Section 4; the trick
is to choose a $12$-gon as the fundamental domain such that it has the
$\gamma_{i}$ loop as two of its sides and only the sides neighboring
$\gamma_{i}$ transform non-trivially by the representative Dehn twist map.
Here we consider the Dehn twist along $\gamma_{1}$. The Dehn twist along
$\gamma_{2}$ follows similarly. The action of $D_{\gamma_{1}}$ on
$\alpha_{1}$, $\alpha_{2}$, $\beta_{1}$ and $\beta_{2}$ follows from the
expressions in (4.1.2) by replacing $\gamma$ with $\gamma_{1}$. Furthermore,
it keeps $\alpha_{3}$ and $\beta_{3}$ invariant. The loop
$\delta_{2}=\beta_{2}\beta_{1}$ also remains invariant under $D_{\gamma_{1}}$.
Just like (15) for the $g=2$ case, we can rewrite the group relation in (56)
as:

$\delta_{2}^{-1}\tilde{\alpha}_{2}\delta_{2}\beta_{1}^{-1}\gamma_{1}\beta_{1}\gamma_{1}^{-1}\tilde{\alpha}_{2}^{-1}\alpha_{3}\beta_{3}\alpha_{3}^{-1}\beta_{3}=1.$
(59)

This form then suggests trading $\\{\alpha_{1},\beta_{1}\\}$ with
$\\{\gamma_{1},\beta_{1}\\}$ and $\\{\alpha_{2},\beta_{2}\\}$ with
$\\{\tilde{\alpha}_{2},\delta_{2}\\}$. Fig. 11c shows these new set of loops
on the surface of $\Sigma_{3}$. If we cut $\Sigma_{3}$ along these loops, we
end up with the the shaded irregular $12$-gon shown in Fig. 11d, which can be
taken as the fundamental domain of the covering map. Note that in this
$12$-gon all sides remain invariant by $D_{\gamma_{1}}$ except the two sides
labeled by $\beta_{1}$. Moreover, the $\beta_{1}$ sides are neighboring the
$\gamma_{1}$ sides as was the case in $g=2$. Therefore a shearing map directly
analogous to $D^{\ast}_{\gamma}$ in Section 4 would work here as well.

##  Appendix D Logical gates on the hyperbolic $\mathbb{Z}_{2}$ surface code

Figure 12:  (a) Definition of the surface code Hamiltonian on a trivalent
graph $\hat{\Lambda}$. (b) Circuit implementation of the 2-2 Pachner move in
the triangulation picture: $\Lambda_{\text{I}}\rightarrow\Lambda_{\text{II}}$.
(c) Circuit implementation of the 1-3 Pachner move in the triangulation
picture.

In this appendix, we discuss the specific case of applying our logical gate
sets to the hyperbolic $\mathbb{Z}_{2}$ surface code, i.e. the code obtained
by placing the Kitaev $\mathbb{Z}_{2}$ toric code on a hyperbolic surface.
This is the simplest abelian case of the general Turaev-Viro code. In this
case, the continuous shear map is exactly the same as what discussed for the
general Turaev-Viro code in Sec. 4 in the main text. The retriangulation part
also implements the same sequence of 2-2 and 1-3 Pachner moves. The
implementation of the Pachner moves in terms unitary gates on the physical
qubits are even simpler than the Fibonacci code which we illustrated in the
Fig. 7 in the main text. In the following, we show the concrete unitary
circuits for the implementation of the 2-2 and 1-3 Pachner moves in the
hyperbolic surface code.

We note that a number of previous discussions of the hyperbolic surface code
considered the case of regular tilings of the hyperbolic surface [55, 14, 15].
Our protocols require us to consider the code defined on more general
triangulations.

As a specific situation of the general Levin-Wen Hamiltonian Eq. (4), the
$\mathbb{Z}_{2}$ surface code is described by the following Hamiltonian
defined on the trivalent graph $\hat{\Lambda}$ following the usual convention:

$\displaystyle H_{\mathbb{Z}_{2}}=-\sum_{\nu}Q_{\nu}-\sum_{p}B_{p},$ (60)

as illustrated by Fig. 12(a). Here, the 3-leg vertex operator
$Q_{\nu}$$=$$X_{\nu,1}X_{\nu,2}X_{\nu,3}$ is a product of three Pauli-X
operators due to the trivalent nature. The $j$-edge plaquette operator
$B_{p}$$=$$Z_{\nu,1}Z_{\nu,2}\cdots Z_{\nu,j}$ is a product of $j$ Pauli-Z
operators. Note that the number of edges $j$ on a plaquette is in general
arbitrary for an arbitrary trivalent graph, but remains valid for a well-
behaved graph to ensure the low-weight condition in the LDPC code family. For
example, on a honeycomb lattice, one has $j=6$ as shown in Fig. 12(a). If we
instead consider the dual description of the hamiltonian on the original
triangulation $\Lambda$, $Q_{\nu}$$=$$X_{\nu,1}X_{\nu,2}X_{\nu,3}$ is located
on the triangle plaquettes on $\Lambda$, while
$B_{p}$$=$$Z_{\nu,1}Z_{\nu,2}\cdots Z_{\nu,j}$ is located on the $j$-leg
vertices of $\Lambda$.

In the following, we explicitly demonstrate the circuit implementation of the
2-2 and 1-3 Pachner moves, focusing on the description in the triangulation