Toy Models of Holographic Duality between local Hamiltonians

Holographic quantum error correcting codes (HQECC) have been proposed as toy models for the AdS/CFT correspondence, and exhibit many of the features of the duality. HQECC give a mapping of states and observables. However, they do not map local bulk Hamiltonians to local Hamiltonians on the boundary. In this work, we combine HQECC with Hamiltonian simulation theory to construct a bulk-boundary mapping between local Hamiltonians. This allows us to construct a duality between models, encompassing the relationship between bulk and boundary energy scales and time dynamics. It also allows us to construct a map in the reverse direction: from local boundary Hamiltonians to the corresponding local Hamiltonian in the bulk. Under this boundary-to-bulk mapping, the bulk geometry emerges as an approximate, low-energy, effective theory living in the code-space of an (approximate) HQECC on the boundary. At higher energy scales, this emergent bulk geometry is modified in a way that matches the toy models of black holes proposed previously for HQECC. Moreover, the duality on the level of dynamics shows how these toy-model black holes can form dynamically.


Introduction
The AdS/CFT correspondence is a conjectured duality between quantum gravity in (d + 1)-dimensional, asymptotically anti-de-Sitter (AdS) space, and a conformal field theory (CFT) defined on its d-dimensional boundary [30]. It has provided insight into theories of quantum gravity, and has also been used as a tool for studying strongly-interacting quantum field theories. Recently it has been shown that important insight into the emergence of bulk locality in AdS/CFT can be gained through the theory of quantum error correcting codes [3]. This idea has been used to construct holographic quantum error correcting codes (HQECC) [5,21,33,34,41,42,47], which realise many of the interesting structural features of AdS/CFT.
Holographic quantum codes give a map from bulk to boundary Hilbert space, hence also from observables in the bulk to corresponding boundary observables. But the AdS/CFT correspondence is also a mapping between models, not just between states and observables; it relates quantum theories of gravity in the bulk to conformal field theories in one dimension lower on the boundary. For holographic code models, this means realising a mapping between local Hamiltonians in the bulk and local Hamiltonians on the boundary.
Since holographic quantum codes give a mapping from any bulk operator to the boundary, one can certainly map any local bulk Hamiltonian to the boundary. But this gives a completely non-local boundary Hamiltonian, with global interactions that act on the whole boundary Hilbert space at once. Local observables deep in the bulk are expected to map under AdS/CFT duality to non-local boundary observables, so this is fine -indeed, expected -for observables. But a global Hamiltonian acting on the entire boundary Hilbert space has lost all relation to the boundary geometry; there is no meaningful sense in which it acts in one dimension lower. Indeed, for these toy models on finite dimensional spins, any Hamiltonian whatsoever can be realised using a global operator. For the correspondence between bulk and boundary models to be meaningful, the local Hamiltonian describing the bulk physics needs to map to a local Hamiltonian on the boundary. For this reason, [5,21,34,47] study the mapping of observables and states in their construction, and do not apply it to Hamiltonians.
By standing on the shoulders of the holographic quantum code results, in particular the HaPPY code [34], and combining stabilizer code techniques with the recent mathematical theory of Hamiltonian simulation [9], we build on these previous results to construct a full holographic duality between quantum many-body models in 3D hyperbolic space and models living on its 2D boundary. (We focus on 3D/2D dualities for our explicit constructions, as the smallest dimension where our techniques can be applied, but the techniques extend to boundary dimensions ≥ 2.) This allows us to extend the toy models of holographic duality in previous HQECC to encompass Hamiltonians, and in doing so enables us to say something about how energy scales and dynamics in the bulk are reflected in the boundary. It also allows us to explore the duality in the other direction: from boundary to bulk. This gives insight into how the hyperbolic bulk geometry emerges as the geometry of a low-energy effective theory, and how this effective bulk geometry gets distorted at higher energies.
The remainder of the paper is set out as follows. In Section 2 we present our main result, and give an overview of the proof. In Section 3 we introduce the background required to understand the construction, and prove a number of lemmas which are used in the main result. In Section 4.1 we set out the general procedure for constructing a HQECC in H 3 , and prove our main result: the holographic duality between H 3 and its 2D boundary. The proof does not rely on the properties of any particular HQECC, and holds provided that there exists a HQECC in H 3 . In Section 4.2 and Section 4.3 we provide two examples of such a HQECC in H 3 . Finally in Section 5 we discuss the implications of our results, including a toy model of black hole formation within these HQECC.

Main results
In this paper we construct an explicit duality between quantum systems in 3D hyperbolic space, H 3 , and quantum systems on its 2D boundary, which encompasses states, observables, and Hamiltonians. The map is a quantum error correcting code, where the logical Hilbert space is a set of 'bulk' qudits, which are embedded in a tessellation of H 3 . The physical Hilbert space is a set of 'boundary' qudits, which lie on the 2D boundary of H 3 . Every state and observable in the bulk/logical Hilbert space is mapped to a corresponding state / observable in the boundary/physical Hilbert space. The error correcting properties of the map means that it is possible to recover from erasure of part of the boundary Hilbert space.
Under our mapping, any local Hamiltonian in the bulk is mapped approximately to a 2-local Hamiltonian in the boundary (where a k-local Hamiltonian is a sum over terms which each act non-trivially on at most k-qudits). In the language of error correction, this means that the code subspace of our quantum error correcting code is approximately the low-energy subspace of a 2-local Hamiltonian H boundary , where time evolution in the code subspace is also governed by H boundary . 1 It is important to emphasise that, as in the case of tensor network constructions of HQECC [5,21,34,47], the duality we construct does not per se have anything to do with quantum gravity. It gives a holographic duality for any local quantum Hamiltonian, not specifically Hamiltonians modeling quantum gravity. However, this duality does exhibit some of the structural features of the AdS/CFT correspondence. Notably, entanglement wedge reconstruction and redundant encoding are seen in the construction. The Ryu-Takayanagi formula is also approximately obeyed for connected bulk regions. 2 Therefore, one natural application of this construction is to toy models of the AdS/CFT correspondence. This requires choosing a bulk Hamiltonian, H bulk , which models semiclassical gravity. Applying our holographic duality to this particular choice of bulk Hamiltonian, the time dynamics and energy scales exhibited by the toy model do then exhibit certain of the features expected of AdS/CFT (see Section 5 for details). However, this toy model certainly does not capture every aspect of AdS/CFT duality. In particular, the boundary model we obtain is not a conformal field theory or Lorentz-invariant. And it is constructed for non-relativistic quantum mechanical systems in Euclidean space, in which time appears as an external parameter, not relativistic quantum systems in Minkowski space. We make no attempt in this work to understand whether AdS space can be embedded in some suitable way into H 3 . (Indeed, a more fruitful approach for future research is likely to be to apply the techniques we have developed in AdS space, rather than attempting to use the duality on H 3 directly.) A complete toy model of AdS/CFT duality would have to address these and many other aspects, as well as incorporating gravity more fully. Our holographic duality is one more step towards such a toy model, going beyond previous HQECC constructions, but as yet still a long way short of a full, mathematically rigorous construction of AdS/CFT.

Rigorous statement of the result
Our main results are encapsulated in the following theorem: Theorem 2.1. Let H 3 denote 3D hyperbolic space, and let B r (x) ⊂ H 3 denote a ball of radius r centred at x. Consider any arrangement of n qudits in H 3 such that, for some fixed r, at most k qudits and at least one qudit are contained within any B r (x). Let L denote the minimum radius ball B L (0) containing all the qudits (which wlog we can take to be centred at the origin). Let H bulk = Z h Z be any local Hamiltonian on these qudits, where each h Z acts only on qudits contained within some B r (x).
Then we can construct a Hamiltonian H boundary on a 2D boundary manifold M ∈ H 3 with the following properties: . This result allows us to extend toy models of holographic duality such as [5,21,34,47] to include a mapping between Hamiltonians. In doing so we show that the expected relationship between bulk and boundary energy scales can be realised by local boundary models. In particular, in our construction toy models of static black holes (as originally proposed in [34]) correspond to high-energy states of the local boundary model, as would be expected in AdS/CFT. Moreover, in our toy model we can say something about how dynamics in the bulk correspond to dynamics on the boundary. Even without writing down a specific bulk Hamiltonian we are able to demonstrate that the formation of a (toy model) static black hole in the bulk corresponds to the boundary unitarily evolving to a state outside of the code space of the HQECC, as expected in AdS/CFT (see Section 5.3 for details).
Finally, the Hamiltonian simulation construction allows us to derive the mapping in the other direction. Given any local boundary Hamiltonian, one can derive a corresponding bulk Hamiltonian using rigorous formulations of perturbation theory. Constructing boundary-tobulk mappings is an important goal of full AdS/CFT, where the boundary CFT is better understood, and one of the aims is to understand properties of quantum gravity in the bulk which are less well understood.

Proof overview
To construct the bulk/boundary map between Hilbert spaces, observables and local Hamiltonians described by Theorem 4.10, we combine new tensor network constructions of HQECC inspired by [34], with perturbation gadget techniques originally developed in Hamiltonian 3 The entanglement wedge, EA is a bulk region constructed from the minimal area surface used in the Ryu-Takayanagi formula. It has been suggested that on a given boundary region, A, it should be possible to reconstruct all operators which lie in EA [29]. The greedy entanglement wedge is a discretised version defined in [34,Definition 8] complexity theory. We then use the recently developed theoretical framework of analogue Hamiltonian simulation [9] to show that this gives a full duality between the bulk and boundary physics. [34] constructs a HQECC by building a tensor network composed out of perfect tensors, arranged in a tessellation of hyperbolic 2-space by pentagons. This gives a map from 2D bulk to 1D boundary. However, the Hamiltonian simulation constructions of [9] only work in 2D or higher, which means we require at least a 3D bulk and 2D boundary. We must therefore generalise the holographic tensor network codes to 3D as a first step. When working in H 2 it is possible to use the Poincare disc model to visualise the tessellations and determine their properties. However, in H 3 this is more difficult, and generalising the HQECC to 3D and higher requires a more systematic approach.
We use hyperbolic Coxeter groups 4 to analyse honeycombings (higher-dimensional tessellations) of H 3 . (The techniques also generalise beyond 3D.) A Coxeter system is a pair (W, S), where W is a group, generated by a set S ⊂ W of involutions, subject only to relations of the form (s i s j ) m ij = 1 where m ii = 1, m ij ∈ (N \ 1) ∪ {∞} for i = j. Coxeter groups admit a geometric representation as groups generated by reflections. Associated to every hyperbolic Coxeter system is a Coxeter polytope P ⊆ H d , where P tessellates H d . All of the properties of the tessellation can be determined directly from the Coxeter system (W, S) using combinatorics of Coxeter groups. For example, we use the Coxeter relations to prove that the boundary of the HQECC is homeomorphic to the Euclidean 2-sphere.
Generalising the method in [34], we construct tensor networks by taking a Coxeter system (W, S) with Coxeter polytope P ⊆ H 3 , and placing perfect tensors in each polyhedral cell of (a finite portion of) the tessellation of H 3 by P . Each perfect tensor in the interior of the tessellation has one free index, corresponding to a bulk qudit; the other indices are contracted with neighbouring tensors. Tensors at the outer edge can be shown, again using the Coxeter relations, to have between t 2 and t − 2 additional free indices (where the perfect tensor has a total of t indices), which correspond to qudits on the boundary. We can show that if the tessellation of H 3 associated to a Coxeter system (W, S) has the properties required for a HQECC, then the associated Coxeter polytope P has at least 7 faces, which means we require perfect tensors with at least 8 indices. There are no qubit perfect tensors with ≥ 6 indices [15,26,36], so we must use qud it perfect tensors.
In order to later generate a local boundary model using perturbation gadgets, we need the tensor network to preserve the Pauli rank of operators. As we are working with qudits rather than qubits, we mean generalised Pauli operators on qudits, rather than qubit Paulis, and we choose prime-dimensional qudits. We use perfect tensors which describe qudit stabilizer absolutely maximally entangled states (AMES), constructed via the method in [23] from classical Reed-Solomon codes. Using properties of stabilizer groups, we show that tensor networks composed of these qudit stabilizer perfect tensors preserve the generalised Pauli rank of operators.
This Coxeter polytope qudit perfect tensor network gives a HQECC in H 3 . The non-local boundary Hamiltonian is given by H boundary = H + ∆ S H S , where H S is zero on the code-subspace of the HQECC and at least one on its orthogonal complement, V is the encoding isometry of the HQECC and H satisfies V H bulk V † = H Π C = H V V † . 5 Comparing with the classification of Hamiltonian simulations in [9], this mapping is an example of a simulation. (In fact, a perfect simulation in the terminology of [9].) In order to construct a local boundary Hamiltonian we first determine the distribution of Pauli weights of the terms in H boundary from the properties of the Coxeter system. We then use perturbation gadgets to reduce the boundary Hamiltonian to a 2-local planar Hamiltonian. The techniques we use follow the methods from [32], however the perturbation gadgets derived in [32] can't be used in our construction as the generalised Pauli operators aren't Hermitian. We therefore generalise those to qudit perturbation gadgets which act on operators of the form P A + P † A , where P A ∈ G n,p . These gadgets meet the requirements in [6,9] to be perturbative simulations. Finally we use simulation techniques from [9] to simulate the planar 2-local qudit Hamiltonian with a qubit Hamiltonian on a triangular lattice with full local SU(2) symmetry.
See Section 4.1.6 for the full proof.

Perfect tensors and pseudo-perfect tensors
Perfect tensors were first introduced in [34], where they were used in the construction of HQECC from a 2D bulk to a 1D boundary.
Definition 1 (Perfect tensors, definition 2 from [34]). A 2m-index tensor T a 1 a 2 ...a 2m is a perfect tensor if, for any bipartition of its indices into a set A and a complementary set A c with |A| ≤ |A c |, T is proportional to an isometric tensor from A to A c .
This definition is equivalent to requiring that the tensor is a unitary from any set of m legs to the complementary set.
For one of the constructions in this work we introduce a generalisation of perfect tensors: Definition 2 (Pseudo-perfect tensors). A 2m + 1-index tensor T a 1 a 2 ...a 2m+1 is a pseudoperfect tensor if, for any bipartition of its indices into a set A and a complementary set A c with |A| < |A c |, T is proportional to an isometric tensor from A to A c .
The states described by (pseudo-)perfect tensors are absolutely maximally entangled (AME) (see Appendix A for details). Furthermore, viewed as an isometry from k indices to n indices, a t-index (pseudo-)perfect tensor is the encoding isometry of a [n, k, d] code, where t = n + k and d = t 2 − k + 1 (see Appendix B for proof).

Stabilizer (pseudo-)perfect tensors
For this work we will be specifically interested in stabilizer (pseudo-)perfect tensors: 5 H boundary is not unique, as expected in AdS/CFT Definition 3 (Stabilizer (pseudo-)perfect tensors). Stabilizer (pseudo-)perfect tensors describe stabilizer AME states. 6 In Appendix C we demonstrate that stabilizer (pseudo-)perfect tensors describe stabilizer QECC. Furthermore, they map Pauli rank one operators to Pauli rank one operators in a consistent basis.
It is possible to construct a t-index (pseudo-)perfect stabilizer tensor for arbitrarily large t by increasing the local Hilbert space dimension. Details of the construction are given in Appendix D.

Coxeter systems
The HQECC presented in this paper are tensor networks embedded in tessellations of H 3 . We use Coxeter systems to analyse these tessellations. 7 Definition 4 (Coxeter system [43]). Let S = {s i } i∈I , be a finite set. Let M = (m i,j ) i,j∈I be a matrix such that: M is called the Coxeter matrix. The associated Coxeter group, W , is defined by the presentation: The pair (W, S) is called a Coxeter system.
To understand the connection between Coxeter systems and tesselations of hyperbolic space we need to introduce the notion of a Coxeter polytope.
Definition 5. A convex polytope in X d = S d , E d or H d is a convex intersection of a finite number of half spaces. A Coxeter polytope P ⊆ X d is a polytope with all dihedral angles integer submultiples of π.
Coxeter systems can be represented by Coxeter diagrams, where a vertex is associated to every s i (or equivalently to every facet in the corresponding Coxeter polytope). Vertices are connected by edges in the following manner: • If m ij = 2 (i.e. facets F i and F j in the Coxeter polytope are orthogonal) there is no edge between the vertices representing s i and s j • If m ij = 3 (i.e. the dihedral angle between F i and F j is π 3 ) there is an unlabelled edge between vertices representing s i and s j • If m ij ∈ N \ {1, 2, 3} (i.e. the dihedral angle between F i and F j is π m ij ) there is an edge labelled with m ij between vertices representing s i and s j

Combinatorics of Coxeter groups
In this section we briefly introduce the notions which are used later in the paper. Let (W, S) be a Coxeter system. Every element w ∈ W can be written as a product of generators: This description is not unique. We can define a length function with respect to the generating set S such that l S (1) = 0, and: An expression for w with the minimum number of generators, s 1 s 2 ...s l S (w) is called a reduced word for w. Coxeter groups satisfy the Deletion Condition: Definition 6 (Deletion Condition). Let (W, S) be a pair where W is a group and S is a generating set for W consisting entirely of elements of order two. We say that this pair satisfies the Deletion Condition if for any non reduced word s 1 ...s r over S there are two indices i and j such that: where the carets indicate omission.
The length function on Coxeter groups has a number of important properties: for u, w ∈ W is a metric on W (referred to as the word metric) By conditions (i) and (ii), if we define the following sets: We refer to D R (w) and D L (w) (A R (w), A L (w)) as the right and left descent sets (ascent sets) of w respectively.
Lemma 3.2 (Corollary 2.18 from [1]). For all w ∈ W , the Coxeter groups generated by D R (w) and D L (w) are finite. 10 The irreducible finite Coxeter groups are classified in Table 1. A general Coxeter group is finite if and only if each connected component of the Coxeter graph generates a finite group.
Finally, we note that if s ∈ D R (w) (s ∈ D L (w)) there is a reduced word for w that ends in s (begins with s).

Growth rates of Coxeter groups
The growth series of a Coxeter group with respect to a set of generators S is defined as: where a i is the number of w ∈ W satisfying l S (w) = i. The growth rate is given by: Spherical and Euclidean Coxeter groups have growth rate 0 and 1 respectively. Hyperbolic Coxeter groups have τ > 1.

Hamiltonian simulation
[9] introduced a mathematical theory of analogue Hamiltonian simulation, characterising precisely when a Hamiltonian reproduces the same physics as another. They then applied perturbation gadget techniques from Hamiltonian complexity theory to construct examples of universal local Hamiltonians, able to simulate any other model in this rigorous sense. We make use of these techniques to construct holographic versions of Hamiltonian simulation which, together with the HQECC's, give the desired holographic dualities at the level of the Hamiltonians.

Hamiltonian encodings
In [9] it is shown that if an encoding H = E(H) has the following three properties: then it must be of the form: for orthogonal projectors P, Q such that P + Q = 1 where U is a unitary, and M denotes complex conjugation. Furthermore, it is shown that under any such encoding, H will preserve the partition function, measurement outcomes and time evolution of H.
If the encoding E(H) only acts within a subspace of the simulator system H then the unitary U is replaced with an isometry W : The stabilizer codes discussed in Appendix C.2 are an example of subspace encodings with the particularly simple structure E(M ) = W M W † . A local encoding is an encoding which maps local observables to local observables.
Definition 7 (Local encoding into a subspace (this is a generalisation of definition 13 from [9]). Let E :

Hamiltonian simulation
If H perfectly simulates H then it reproduces the physics of H below some energy cut-off ∆, where ∆ can be made arbitrarily large.
Definition 8 (Exact simulation, definition 20 from [9]). We say that H perfectly simulates H below energy ∆ if there is a local encoding E into the subspace S E such that where W is the encoding isometry of some stabilizer code and Π = W W † is the projector onto the code-space, then H = E(H) + ∆Π simulates H below energy ∆.
We can also consider the case where the the simulation is only approximate: ii. ||H ≤∆ −Ẽ(H)|| ≤ In [9] it is shown that approximate Hamiltonian simulation preserves important physical properties: ii. The relative error in the partition function evaluated at β satisfies: iii. For any density matrix ρ in the encoded subspace so that E(1)ρ = ρ :

Perturbative gadgets
The following lemmas were shown in [6], and can be used to construct simulations perturbatively. Let Lemma 3.5 (Third order simulation [6]). Let V = H 1 + ∆ and also that: We derive a number of qudit perturbation gadgets (based on qubit perturbation gadgets from [32]) for use in our construction. Using Lemmas 3.4 and 3.5 we can show that all of these gadgets are simulations (for appropriate choices of ∆). Details are given in Appendix F. The main results are collected here:

Qudit subdivision gadget
The qudit subdivision gadget is used to simulate a k-local interaction by two k 2 + 1-local interactions, by introducing a mediator qudit. The resulting interaction pattern is shown in Fig. 1. Figure 1. Subdivision gadget. The k-local interaction on the left is simulated by the two k 2 + 1local interactions on the right by introducing a mediator qudit, w. The interactions are given by

Qudit 3-2 gadget
The 3-2 gadget is used to simulate a 3-local interaction with six 2-local interactions, by introducing a mediator qudit. The resulting interaction pattern is shown in Fig. 2.
A w B C Figure 2.

3-2 gadget:
The three body interaction between A, B and C P A ⊗ P B ⊗ P C + P † A ⊗ P † B ⊗ P † C is simulated by the interaction pattern shown in the figure.

Qudit crossing gadget
The crossing gadget is used to remove crossings in an interaction graph by introducing a mediator qudit. The resulting interaction pattern is shown in Fig. 3. Figure 3. Crossing gadget. The interaction pattern on the left is simulated by the interaction pattern on the right.

Qudit fork gadget
The fork gadget is used to reduce the degree of a vertex in the interaction graph by introducing a mediator qudit. The resulting interaction pattern is shown in Fig. 4. Figure 4. Fork gadget. The interaction pattern on the left is simulated by the interaction pattern on the right.

Qudit triangle gadget
The qudit triangle gadget is formed by first applying the qudit subdivision gadget, then the qudit fork gadget, in the same way as it is formed for qubits in [32]. Figure 5. Triangle gadget. The interaction pattern on the left is simulated by the interaction pattern on the right by first applying the subdivision gadget to edges AB and AC, and then applying the fork gadget to qudit A.
The 3-2 gadget is a third order simulation. The other gadgets are second order simulations.
In [32] it is demonstrated that the qubit perturbation gadgets can be used at many places in an interaction graph in parallel, and that they do not interact with each other. The same arguments follow for the qudit perturbation gadgets introduced here.

General construction
In this section we demonstrate the general procedure for constructing a HQECC using Coxeter groups and (pseudo-)perfect stabilizer tensors with particular properties. In particular in Section 4.1.6 we prove our main result: a full holographic duality between quantum manybody models in 3D hyperbolic space and models living on its 2D boundary. In Sections 4.2 and 4.3 we construct two examples of sets of Coxeter groups and tensors which have the required properties.

Notation
Let (W, S) be a Coxeter system with Coxeter polytope P ⊆ H 3 . F a denotes the face of P corresponding to the generator s a ∈ S. E ab denotes the edge of P between F a and F b . P (w) denotes the polyhedral cell in the tessellation of H 3 which corresponds to element w of the Coxeter group. Similarly F A bulk qudit which is associated to the polyhedral cell P (w) will be labelled by q (w) . A boundary qudit which is associated to the uncontracted tensor index through the face F (w) a will be labelled by q

Holographic quantum error correcting codes
The procedure we use to construct the tensor network is based on that in [34], where perfect tensors are embedded in tessellations of H 2 . We take a Coxeter system (W, S) with Coxeter polytope, P ⊆ H 3 where |S| = t − 1, so P has t − 1 faces. Take the tessellation of H 3 by P , and embed a (pseudo-)perfect tensor, T , with t legs in each polyhedral cell. t − 1 legs of each tensor are contracted with legs of neighbouring tensors at shared faces of the polyhedra, and a logical, or input, qudit for the tensor network is associated with the uncontracted tensor leg in each polyhedral cell. Cut off the tessellation at some radius R, and the uncontracted tensor legs on the boundary are the physical qudits of the tensor network.
A HQECC is defined as a tensor network composed of (pseudo)-perfect tensors which gives rise to an isometric map from bulk legs to boundary legs [34]. This is equivalent to requiring that the number of output indices from every tensor is greater than or equal to the number of input indices, where the input indices are the indices coming from the previous layer of the tessellation plus the logical index.
We are working in negatively curved geometry, so a majority of the tensors will have more output indices than input indices, but this doesn't guarantee it is true for every tensor. For example, consider the triangulation of H 2 with Schläfli symbol {3, 8} (Fig. 6). This is the tiling which corresponds to the Coxeter diagram shown in Fig. 7.
It can be seen that there are triangular cells in the tessellation which share edges with two triangles from the previous layer, and only one in the subsequent layer. If we put a four-index perfect tensor in each cell of this tessellation, then there would be some tensors with three input legs, and only one output leg. These tensors would not be isometries, so it is not obvious that the overall tensor network would be an isometry. In order to ensure that the tensor network is a HQECC we derive a condition to enforce that every tensor has at least as many output indices as input indices. This is a sufficient condition for the tensor network to be a HQECC, but it may not be necessary.
Theorem 4.1. Consider a tensor network constructed as above, defined by Coxeter system (W, S) and perfect tensor T with t indices. Define F = {J ⊆ S | W J is finite}. The tensor network will be a HQECC, if ∀J ∈ F : |J| ≤ t−2 2 .
Proof. If we order the tensors into layers labelled by the value of the length function l S (w) at P (w) , and include the uncontracted tensor leg in each polyhedral cell as an input leg, then the number of input legs for a tensor embedded in P (w) is D R (w) + 1. By Lemma 3.2, D R (w) ∈ F. Therefore the maximum number of input legs to any tensor in the tensor network is max(|J| | J ∈ F) + 1. We therefore require max(|J| | J ∈ F) + 1 ≤ t 2 .
Theorem 4.1 gives a sufficient condition for every tensor in the tensor network to have at least as many output indices as input indices.
The requirements of Theorem 4.1 dictate that we will not be able to use qubit stabilizer tensors to construct HQECC in dimensions greater than two. To see this recall that Lemma 3.1 stated that {s i | i ∈ I} generates a finite Coxeter group if and only if f = ∪ i∈I F i is a codimension |I| face of P . In dimension d there will exist codimension d faces, so max(|J| | J ∈ F) ≥ d. We therefore require that t 2 ≥ d + 1. For d ≥ 3 this enforces t ≥ 8, and there are no qubit perfect tensors with t > 6 [15,26,36].
HQECC which are constructed in this way inherit all the properties of the 2-dimensional HQECC constructed in [34].

Surface of the HQECC
Define the boundary of the HQECC as the faces in the tessellation which correspond to the uncontracted tensor legs. More precisely: Definition 10. The boundary, M, of a HQECC of radius R is given by: The boundary of hyperbolic n-space is an n − 1 dimensional sphere. For our HQECC we are cutting off the tessellation of H 3 at some finite radius R, but it is still possible to demonstrate that the boundary is homeomorphic to a 2-sphere.
In order to reason about the boundary we need two lemmas about edges in the tessellation of H 3 by P : Consider an edge, E A ab , in the tessellation of H 3 by a Coxeter polytope, P . If l S (w 1 ) = l S (w 2 ) = L for distinct w 1 , w 2 ∈ A, then D R (w 1 ) and D R (w 2 ) contain at least one of s a or s b .
Proof. Recall that an edge E ab corresponds to the finite Coxeter subgroup generated by s a and s b : x denotes a string of alternating s a and s b of length x. A is set of Coxeter group elements corresponding to the polyhedra that meet at the common edge E A ab , so A = {ws|s ∈ s a , s b } for any fixed element w ∈ A. Therefore, we have that w 2 = w w 1 s a , s b x for some x ∈ [1, m ab ); we take x to be the minimum such value. Since l S (w 1 s a , s b x ) = l S (w 2 ) + x > l S (w 2 ), the deletion condition (Definition 6) implies that there are two generators in the word w 1 s a , s b x which we can delete to get a shorter word for w 2 . By minimality of x, they cannot both be deleted from the s a , s b x part of this word.
If they were both deleted from the w 1 part, so that Therefore, one generator must be deleted from the w 1 part, the other from s a , s b x . Thus This word for w 2 has length L + x − 2. By the deletion condition, we must be able to delete a further x − 2 generators to reach a reduced word for w 2 . But s a , s b x−1 contains x − 1 generators, so at least one of these must remain. Thus either w 2 = w us a or w w = W us b for some u ∈ A of length l S (u) = L − 1. Hence at least one of s a or s b is in D R (w 2 ).
The w 1 case follows by an analogous argument.
Consider an edge, E A ab , in the tessellation of H 3 by a Coxeter polytope, P . The set of elements A associated with the polyhedral cells that share the edge E A ab has the following properties: (i) There is a unique minimum length element w min ∈ A which has length, l S (w min ) = r min .
(iv) There is a unique maximum length element w max ∈ A which has length l S (w max ) = r min + m ab .
(v) For r min < i < r min + m ab there are exactly two elements where s a , s b x denotes a string of alternating s a and s b of length Proof of Lemma 4.3. i. Assume there are two minimum length elements in A, w min and w min such that l S (w min ) = l S (w min ) = r min . By Lemma 4.2 either s a or s b is in the descent set of w min and w min . This implies that there is at least one element in A with length r min − 1, contradicting our assumption.
ii. Assume there is some L. If we let u = w min s a , s b x+1 and assume (wlog) that x is even, it follows that s a ∈ A R (u).
Note that l S (w min ) = r min < L, l S (w min s a , s b x ) = L + 1 and l S (w min s a , s b x+1 ) = L. But each generator s a or s b that we multiply w min by can only change the length by ±1. So u is not the only element of length L in A. By Lemma 4.2 this implies that at least one of s a or s b must be in the descent set of u. Therefore s b ∈ D R (u).
. By a similar argument, s a ∈ D R (v). If we continue this argument we find that the length of the element w min s a , s b 2x is r min , which is not possible as w min is the unique element of A with length r min , and by assumption x < m ab so s a , s b 2x = (s a s b ) x = I by definition of m ab . Therefore there is no x < m ab such that iii. From ii it follows that l S (w min s a , s b m ab ) = r min + m ab . We have that s a , s b 2m ab = (s a s b ) m ab = I, thus l S (w min s a , s b 2m ab ) = l S (w min ) = r min . As each generator can only change the length of an element by ±1, for m ab < x ≤ 2m ab we must have that iv and v follow at once from points ii and iii.
An example of the set of polyhedra associated with an edge E ab where m ab = 4 is shown in Fig. 8. Lemma 4.3 ensures that the lengths associated to the polyhedra around any edge follow the same pattern.
We can now consider the boundary of the HQECC. Proof. Within the faces that make up the boundary M is clearly locally Euclidean, and the same will be true at the edges where the faces meet provided no more than two faces meet at an edge. Point (v) from Lemma 4.3 shows this is indeed the case. Proof. Assume M has a boundary. This implies that ∃w ∈ W such that l S / ∈ M , and therefore s b ∈ D R (w). This gives w = w us b where u ∈ W and l S (u) = R − 1. We also have that l S (ws a ) = l S (us b s a ) = R + 1 (because by assumption s a ∈ A R (w)).
Putting everything together we find that: Therefore, at least one of the following must be true: The second case would imply that l[u(s b s a ) x s b ] = R + 1 = l S (us b s a ) but this cannot occur as it is not possible for two elements of the Coxeter group with the same word length to be related by an odd number of generators. If the first case occurs then F ab / ∈ ∂M . Therefore M does not have a boundary. The boundary of every polyhedron face is included in M so M is compact.
(a) (b) Figure 9. A cross section image of two possibilities for the orientation of faces that meet at a common edge in M . In (a) the two faces will induce opposite orientation on the common edge E, while in (b) the two faces will induce the same orientation on the common edge E.
We now prove that the boundary surface is orientable. A smooth surface is orientable if a continuously varying normal vector can be defined at every point on the surface. This normal vector defines the positive side of the surface (the side the normal vector is pointing to) and a negative side (the side the normal vector points away from). If the surface has a boundary, the normal vector defines an orientation on the boundary curve, with the following convention: standing on the positive side of the surface, and walking around the boundary curve in the direction of the orientation, the surface is always on our left. Proof. A piecewise smooth manifold (such as M ) is orientable if, whenever two smooth component surfaces join along a common boundary, they induce opposite orientation on the common boundary.
Define the unit normal vector,n, to a face F (w) a ∈ M to point away from P (w) (i.e. it points into P (v) where v = ws A ).
Consider the two possible configurations that could occur when two faces meet at a common edge. If the two faces always induce opposite orientation on the common edge (as in Fig. 9 (a)) then M is orientable. If the two faces ever induce the same orientation on the common edge (as in Fig. 9 (b)) then M is not orientable.
If two faces which meet at a common edge of M are part of the same polyhedral cell of the tessellation, i.e. they are faces F (u) a and F (u) b , then it is guaranteed that the orientation of the surfaces will correspond to that shown in Fig. 9 (a) asn is defined to point away from P (u) .
If two faces which meet at a common edge of M are part of different polyhedral cells then parts (ii) and (iii) of Lemma 4.3 enforce that the orientation of the surfaces will always correspond to that shown in Fig. 9 (a).
Therefore M is orientable. Define the interior of M (i) to be the region thatn (i) points away from (i.e. the interior of It follows from this definition that the exterior of each M (i) must be unbounded. To see this, note that for an infinite Coxeter group, W , every w ∈ W has a non-empty A R (w). This means that for arbitrary w ∈ W there exists s a ∈ S such that l S (ws a ) = l S (w) + 1. In terms of the HQECC this implies that the number of polyhedra in the exterior of any M (i) is infinite, so the exterior of M (i) is unbounded.
Assume that M = ∪ i M (i) is composed of more than one connected component M (i) . Consider any two components M (1) and M (2) . There are three possible configurations: Fig. 10).
However, Case 1 would imply that M is not a surface, contradicting Lemma 4.4. Thus we only need to consider Cases 2 and 3.
The Coxeter group, and therefore the HQECC, contains a unique identity element of R . Using the fact that all the generators are involutions, it follows that vs We started with an element of length R, and applied R generators to reach an element of length 0. Since each generator can only change the length of the previous element by ±1 it follows that each generator must have decreased the length of the element by 1. Therefore in the HQECC there is a path through the tessellation from a polyhedra associated with an element of length R to P (I) which passes through R polyhedra, all associated with elements of length less than R.
From the definition of the interior and exterior of M (i) it is clear that all polyhedra which lie directly on the interior of a given M (i) (i.e. those that are in the interior of M (i) and touching M (i) ) are associated with Coxeter group elements of length R. While all polyhedra which lie directly on the exterior of a given M (i) (i.e. those that are in the exterior of M (i) and touching M (i) ) are associated with Coxeter group elements of length R + 1.
Therefore there must always be a path from polyhedra directly on the interior of a M (i) to P (I) which doesn't cross M (i) . In Fig. 10 and Fig. 11 it is clear that there is no location for P (I) which meets this condition. Therefore M cannot be made up of more than one connected component. Proof. By the classification theorem of closed surfaces, every connected closed surface is homeomorphic to either the sphere, a connected sum of tori, or a connected sum of real Figure 10. The configuration of M (1) and M (2) when M (2) is in the interior of M (1) . The arrows are then (i) which point into the exterior of each surface. The polyhedra which lie directly on the interior of a given M (i) are associated with Coxeter group elements of length R, while the polyhedra which lie directly on the exterior of a given M (i) are associated with elements of length R + 1.
Although we have drawn M (1) and M (2) as circles we are not assuming they are spherical, they could be tori, all we are assuming is that they have a well defined interior and exterior. Figure 11. The configuration of M (1) and M (2) when M (2) is in the exterior of M (1) . The arrows are then (i) which point into the exterior of each surface. The polyhedra which lie directly on the interior of a given M (i) are associated with Coxeter group elements of length R, while the polyhedra which lie directly on the exterior of a given M (i) are associated with Coxeter group elements of length R + 1. Although we have drawn M (1) and M (2) as circles we are not assuming they are spherical, they could be tori, all we are assuming is that they have a well defined interior and exterior.
projective planes. Since M is orientable, it is either homeomorphic to a sphere, or a connected sum of tori.
Consider a loop C, on the surface M . This loop is across faces which make up M , which are all associated to polyhedral cells of the tessellation corresponding to Coxeter group elements of length R. Since M is closed (Lemma 4.5), it cannot pinch down to a single point anywhere. Thus for any polyhedral vertex in M , M must contain at least two faces that meet along one of the edges touching that vertex. Any loop which passes between adjacent faces which only touch via a common vertex can therefore be continuously deformed into a nearby loop which passes through those faces. Thus we can assume wlog neighbouring faces which contain adjacent sections of C share a common edge.
There are four possible ways the polyhedral cells associated to these neighbouring faces could be connected (see Fig. 12 for an illustration): 1. The neighbouring faces are associated with the same polyhedral cell.

2.
A pair of neighbouring polyhedral cells share a single common edge.
3. A pair of neighbouring polyhedral cells share a common face (and therefore also common edges).
Case 3 is not possible because, if two polyhedra P (u ) and P (v ) where l S (u ) = l S (v ) = r meet at a face, there would exist s a ∈ S such that l S (u s a ) = l S (v ) = r = l S (u ), contradicting property (i) of the length function of Coxeter groups (see Section 3.2.2). Therefore, for every pair of neighbouring faces containing adjacent sections of the noncontractible loop, either Case 1 or Case 2 must hold.
The surface of the HQECC at radius R − 1 (which we will denote M ) is contained inside M , where "inside" is well-defined as M is orientable by Lemma 4.6. Consider continuously deforming C so that it lies on M , by the following procedure. Take a section of C which lies on the faces of a single polyhedral cell, P (u) , and deform it so that it lies on the faces of P (u) associated with D R (u) whilst leaving its endpoints unchanged. To see that this can always be done, note that at the edge where faces F from two polyhedral cells P (u) and P (v) meet (see Fig. 12 are associated with D R (u) by Lemma 4.3ii and iii. The faces of P (u) associated with D R (u) share common edges, so this deformation can be carried out while leaving the curve intact.
We can repeat this contraction procedure until the loop C lies on the faces of P (I) . At that point we can continuously contract C through P (I) to a point. Therefore every loop on M can be contracted through the bulk of the tessellation to a point.
Any torus (or connected sum of tori) contains curves which cannot be continuously contracted to a point through the solid torus forming its interior. Therefore M cannot be homeomorphic to the connected sum of tori. Thus M is homeomorphic to a 2-sphere.

The metric on the boundary surface of the HQECC
We can upper-bound the distance between qudits on the boundary surface by the distance according the word metric between the corresponding elements of the Coxeter group. Consider two boundary qudits, q b are nearest-neighbour qudits on the boundary surface of a HQECC then they are separated by distance O(1). This follows because the boundary surface of the HQECC is connected, so F

Operators on the boundary surface of the HQECC
In order to determine the overhead required to simulate the boundary Hamiltonian with a local model, we need to determine the distribution of operator weights that results from pushing the bulk Hamiltonian through the tensor network. In [34]  The greedy algorithm is a simple procedure for finding bulk regions which can be reconstructed on a given boundary region. It considers a sequence of cuts {c α } through the tensor network which are bounded by ∂A and which correspond to a set of isometries {P α } from bulk indices to boundary indices. The algorithm begins with the cut c 1 = A, corresponding to P 1 = 1. Each cut in the sequence is obtained from the previous one by identifying a (pseudo)-perfect tensor which has at least half of its indices contracted with P α , and adding that tensor to P α to construct P α+1 . In this way P α+1 is guaranteed to be an isometry if P α is. The algorithm terminates when there are no tensors which have at least half their indices contracted with P α . (See [34] for details). The greedy algorithm only relies on the properties of perfect tensors, so we can apply it to our HQECC in H 3 .
A given bulk point will be in the greedy entanglement wedge of many boundary regions. As we are interested in minimising the operator weights of the boundary Hamiltonian we want to calculate the smallest boundary region needed to reconstruct a bulk operator.
Consider a HQECC described by a perfect tensor, T , and a Coxeter system (W, S) with associated Coxeter polyhedra P ⊆ H 3 . Let the growth rate of W with respect to S be τ , and let the radius of the HQECC be R.
By the definition of the growth rate, the number of boundary qudits, N , scales as O(τ R ). Reconstructing an operator which acts on the central bulk qudit requires an O(1) fraction is at distance x from the centre of the HQECC, and qudit q (u) is a neighbouring qudit at distance x + 1 from the centre, then an operator A v acting on q (v) can be pushed through q (u) , so pushing an operator A v ⊗ B u where B u acts on q (u) through the tensor network will lead to a boundary operator with the same weight as pushing A v alone through the tensor network.
of the boundary, so requires O(τ R ) boundary qudits. 11 Consider the number of boundary qudits required to reconstruct on operator which acts on a qudit, q (v) , at distance x from the centre. By assumption A R (w) > D R (w) for all w ∈ W , and hence for all polyhedral cells in our tessellation of H 3 . Therefore if we take an operator acting on q (v) , we can push it to the boundary while at each step moving outwards in the tensor network -i.e. we are guaranteed to be able to reconstruct the operator on the boundary using only qudits which are a distance R − x from q (v) . If we consider shifting the centre of the tensor network to q (v) we can see that there are O(τ R−x ) qudits which are at distance R − x from q (v) . Not all of these lie on the boundary, but we can upper-bound the number of qudits needed for boundary reconstruction by O(τ R−x ).
If we consider a geometrically k-local operator in the bulk, where the deepest qudit the operator acts on is at distance x from the centre, 12 then the number of qudits needed for boundary reconstruction scales as O(τ R−x ). To see this consider an operator A ⊗ B where A acts on qudit q (v) which is at distance x from the centre, and B acts on a neighbouring qudit q (u) at distance x + 1, as in Fig. 13. We can push A through q (u) to reach the boundary, therefore B can necessarily be reconstructed on a subset of the qudits required to reconstruct A. Hence B makes no difference to the number of qudits required for boundary reconstruction, and we only need to consider the deepest qudit a given operator acts on. In general there may be more than one deepest qudit, however as k is constant this can make at most a constant factor difference to the number of qudits needed for reconstruction.
The number of qudits at distance x from the centre of the tensor network scales as O(τ x ), so we find that for x = 0, . . . , R the boundary Hamiltonian has O(τ x ) operators of weight O(τ R−x ). All boundary operators can be chosen to be geometrically O(τ R−x ) local (i.e. the O(τ R−x ) qudits which an operator act on are spread over an O(τ −x ) fraction of the boundary). 11 In theory it is possible to work out the value of the O(1) constant from the properties of the (pseudo-)perfect tensor and Coxeter system used in a given HQECC, however as we are concerned with asymptotic scaling of weights we don't provide an example of this calculation. 12 Here by deepest operator we mean nearest the centre, so the minimum x.

Full holographic duality
In this section we prove our main result: that using a HQECC and simulation techniques from Hamiltonian complexity it is possible to construct a full holographic duality between quantum many-body models in 3D hyperbolic space and models living on its 2D boundary. We will require the following Lemma in the proof of the main theorem: Lemma 4.9. Consider a HQECC constructed using Coxeter system (W, S) and perfect tensor T . Let T (w) denote the perfect tensor associated with element w ∈ W , and let I (w) be the set of indices of T (w) which are contracted through faces F (w) a for a ∈ D R (w). Define: where S (w) is the stabilizer group of the QECC defined by viewing T (w) as an isometry from {I (w) ∪ q (w) } to the complementary set of indices, and M is the boundary operator associated to the stabilizer M . Let: Then: 1. The kernel of H S is the code-subspace of the HQECC, C.
2. The smallest non-zero eigenvalue of H S is one.
3. Energy with respect to H S is equal to the number of logical qudits encoded by the HQECC which have a correctable error.

4.
Eigenstates of H S with the same energy, but which pick up energy from errors on different logical qudits, are orthogonal.
2. This is immediate as each term in H S is a projector, so has eigenvalue zero or one. 3. Consider a boundary state |φ . If there is a correctable error affecting the state of encoded qudit q (w) then ∃M ∈ S (w) such that M |φ = |φ . Therefore Π C (w) |φ = 1. Since Π C (w) is a projector, this gives Π C (w) |φ = 0. Therefore, |φ picks up energy +1 from the If there is not a correctable error affecting the state of encoded qudit q (w ) then M |φ = |φ for all M ∈ S (w) . So Π C (w ) |φ = |φ , regardless of any errors affecting other encoded qudits. Therefore |φ picks up zero energy from the 1 − Π C (w ) term in H S . Therefore the energy with respect to H S counts the number of bulk qudits which have a correctable error.
4. Consider boundary states, |ψ , |φ , which have correctable errors affecting the state of encoded qudits q (w) and q (w ) respectively. We have: Theorem 4.10. Let H 3 denote 3D hyperbolic space, and let B r (x) ⊂ H 3 denote a ball of radius r centred at x. Consider any arrangement of n qudits in H 3 such that, for some fixed r, at most k qudits and at least one qudit are contained within any B r (x). Let L denote the minimum radius ball B L (0) containing all the qudits (which wlog we can take to be centred at the origin). Let H bulk = Z h Z be any local Hamiltonian on these qudits, where each h Z acts only on qudits contained within some B r (x).
Then we can construct a Hamiltonian H boundary on a 2D boundary manifold M ∈ H 3 with the following properties: 1. M surrounds all the qudits, has diameter O max(1, ln(k) r )L + log log n , and is homeomorphic to the Euclidean 2-sphere.  Proof. There are four steps to this simulation: Step 1 Simulate H bulk with a Hamiltonian which acts on the bulk indices of a HQECC in H 3 of radius R = O max(1, ln(k) r )L . Note that in a tessellation of H 3 by Coxeter polytopes the number of polyhedral cells in a ball of radius r scales as O(τ r ), where we are measuring distances using the word metric, d(u, v) = l S (u −1 v). If we want to embed a Hamiltonian H bulk in a tessellation we will need to rescale distances between the qudits in H bulk so that there is at most one qudit per polyhedral cell of the tessellation. If τ r = k, then r r = ln(k) ln(τ )r = O ln(k) r . If ln(k) r ≥ 1 then the qudits in H bulk are more tightly packed than the polyhedral cells in the tessellation, and we need to rescale the distances between the qudits by a factor of O ln(k) r . If ln(k) r < 1 then the qudits in H bulk are less tightly packed then the cells of the tessellation, and there is no need for rescaling.
The radius, R, of the tessellation needed to contain all the qudits in H bulk is then given by: After rescaling there is at most one qudit per cell of the tessellation. There will be some cells of the tessellation which don't contain any qudits. We can put 'dummy' qudits in these cells which don't participate in any interactions, so their inclusion is just equivalent to tensoring the Hamiltonian with an identity operator. We can upper and lower bound the number of 'real' qudits in the tessellation. If no cells contain dummy qudits then the number of real qudits in the tesselation is given by n max = N = O(τ R ), where N is the number of cells in the tessellation. By assumption there is at least one real qudit in a ball of radius r , therefore the minimum number of real qudits in the tessellation scales as If the tessellation of H 3 by Coxeter polytopes is going to form a HQECC, the Coxeter polytope must have at least 7 faces. We show in Section 4.2 that this bound is achievable, so we will wlog assume the tessellation we are using is by a Coxeter polytope with 7 faces. The perfect tensor used in the HQECC must therefore have 8 indices. Our method to construct perfect tensors can be used to construct perfect tensors with 8 indices for qudits of prime dimension p ≥ 11. Qudits of general dimension d can be incorporated by embedding qudits into a d-dimensional subspace of the smallest prime which satisfies both p ≥ d and p ≥ 11. We then add one-body projectors onto the orthogonal complement of these subspaces, multiplied by some ∆ S ≥ |H bulk | to the embedded bulk Hamiltonian. The Hamiltonian, H bulk on the n p-dimensional qudits is then a perfect simulation of H bulk .
We can therefore simulate any H bulk which meets the requirements stated in the theorem with a Hamiltonian which acts on the bulk indices of a HQECC in H 3 . Now consider simulating H bulk with a Hamiltonian H B on the boundary surface of the HQECC. Let: where H S is as defined in Lemma 4.9, H satisfies H Π C = V (H bulk ⊗ 1 dummy )V † , V is the encoding isometry of the HQECC, Π C is the projector onto the code-subspace of the HQECC and 1 dummy acts on the dummy qudits.
Provided ∆ S ≥ H bulk , Item 1 and Item 2 from Lemma 4.9 ensure that H B meets the conditions in [9] to be a perfect simulation of H bulk below energy ∆ S , and (as simulations compose) a perfect simulation of H bulk .
There is freedom in this definition as there are many H which satisfy the condition stated. We will choose an H where every bulk operator has been pushed directly out to the boundary, so that a 1-local bulk operator at radius x corresponds to a boundary operator of weight O(τ R−x ). We will also require that the Pauli rank of every bulk operator has been preserved (see Theorem D.4 for proof we can choose H satisfying this condition).
Step 2 13 Having constructed H B we now want to simulate it with a geometrically 2-local qudit Hamiltonian. To achieve this, we make use of the subdivision and 3-2 gadgets from Section 3.3.3. H B has O(τ x ) operators of weight O(τ R−x ) for x = 0, . . . , R. Breaking down a k-local operator which is a tensor product of operators of the form P A + P † A to a 2-local operator using the subdivision and 3-2 gadgets requires O(k) ancillas, and O(log(k)) rounds of perturbation theory. Therefore it will require a total of: ancilla qudits. The original qudits are in the centre of the polygon-cells which form the boundary. 14 Place the ancilla qudits resulting from this step on the edges of the cells. Each edge then contains O(R) = O(log(n)) qudits. When breaking down the interactions to 2-local the ancillas are placed nearest the qudits they are interacting with, so none of the resulting 2-local interactions cross more than two of the cells which make up the boundary.
As there are interactions with Pauli-weights which scale as O(n) this step requires O(log(n)) rounds of perturbation theory. By Lemma 3.4, the first round of perturbation theory will require interaction strengths of ∆ L = Ω H bulk 6 , while r rounds of perturbation theory requires interaction strengths to scale as ∆ 6 r L . Therefore, this step requires maximum interaction strengths scaling as Λ = O ∆ poly(n) L .
Step 3 Each of the ancillas introduced in step 2 has degree at most 6. The degree of the original qudits after step 2 is the same as their degree in the initial hypergraph, which can be calculated as: ii. Apply the triangle gadget to each qudit to reduce the degree to 3(p − 1), by pairing edges of the form P a + P † a in parallel. Reducing the degree of one O(R) degree vertex in this manner requires O(log(R)) rounds of perturbation theory, and O(R) ancillas. Therefore applying this step to the entire graph requires O(Rτ R ) ancillas. 13 In steps 2 and 3 we are following the methods developed in [32], replacing the qubit perturbation gadgets with qudit perturbation gadgets, and making use of the structure of the interaction graph on the boundary. 14 The polygon cells are the faces of the tensor network which correspond to the uncontracted tensor indices. 15 A recent paper [2] has derived a method to reduce the degree of a Hamiltonian, H, using only polynomial strength interactions. However, this method cannot be used here as it assumes ||H|| = O(poly(n)), whereas ||HB|| = O(exp(n)).
Once the degree of each qudit has been reduced there are O(R) qudits in each of the cells of the boundary.
Finally we need to remove all the crossings using crossing gadgets. Each interaction is constrained to 2 of the cells which make up the boundary surface, so we can consider each cell and its adjacent cells separately. 16 There are O(R) qudits, and hence at most O(R 2 ) interactions in each cell, including contributions from adjacent cells. Therefore there are at most O(R 4 ) crossings. We use the subdivision gadget to localise each crossing, 17  First use the technique from Lemma 21 in [9] to simulate H B with a qubit Hamiltonian by simulating each qudit with log 2 p qubits. The resulting Hamiltonian is given by: 18 W is an isometry W : C d → C 2 ⊗ log 2 p , and P = 1 − W W † . This requires n log 2 p = O(n ) qubits. The operators in H B are at most 2 log 2 p -local, and the qubits have degree at most 3(p − 1) log 2 p .
Next we use the technique from [9, Lemma 22] to simulate H B with a real Hamiltonian. This is a perfect simulation, which requires 2N = O(n ) qubits, it increases the locality of the interactions to at most 4 log 2 p = O(1) and doesn't change the degree of the qubits.
Using the technique from [9, Lemma 39] we then simulate the real Hamiltonian with a Hamiltonian containing no Y operators. This involves adding an ancilla qubit for every interaction in the Hamiltonian. As each qubit is involved in a fixed number of interactions, this only requires O(n ) ancilla qubits, so the total number of qubits involved in the Hamiltonian is still O(n ). The locality of each interaction in the Hamiltonian is increased by 1. This requires O(1) rounds of perturbation theory.
The qubit subdivision and 3-2 perturbation gadgets from [32] can then be used to reduce the Hamiltonian containing no Y s to a 2-local Pauli interaction with no Y s, leaving a Hamiltonian of the form i>j α 16 This will double-count some crossings as each cell will be included when considering its adjacent cells too, but as we are only interested in the asymptotic scaling this double-counting is not important. 17 This step can be skipped for edges with only one crossing, where each qudit involved in the crossing interactions has degree at most 3(p − 1). 18 n is the total number of qudits in H B . Lemma 39]. This requires O(1) rounds of perturbation theory, and O(n ) ancilla qubits. Next we use the subspace perturbation gadget from [9, Lemma 41] to simulate the Hamiltonian of the form i>j α ij A ij + k (β k X k + γ k Z k ) with a {XX + Y Y + ZZ}-Hamiltonian. This requires encoding one logical qubit in four physical qubits, so introduces O(N ) ancilla qubits, and requires O(1) rounds of perturbation theory.
Finally, we can simulate the general {XX + Y Y + ZZ}-Hamiltonian with a {XX + Y Y + ZZ}-Hamiltonian on a triangulation of the boundary surface of the HQECC using the perturbation gadgets from [35]. These perturbation gadgets are generalisations of the fork, crossing and subdivision gadgets from [32] which use a pair of mediator qubits, rather than a single ancilla qubit, so that all interactions in the final Hamiltonian are of the form {XX + Y Y + ZZ}. Following the method in [35], first reduce the degree of all vertices in the interaction graph to 3 using the subdivision and fork gadgets. This requires O(1) ancillas and O(1) rounds of perturbation theory per qubit, and can be done to all qubits in the Hamiltonian in parallel. Next remove all the crossings. The qudit Hamiltonian H B had no crossings, and our simulation of H B with a {XX + Y Y + ZZ}-Hamiltonian will have introduced O(1) crossings per qudit in H B , so O(n ) crossings across the entire interaction graph. The crossings are localised using the subdivision gadget, then removed using the crossing gadget. This requires O(n ) ancilla qubits.
Step 4 therefore requires a total of O(n ) = O n log(n) 4 qubits. The scaling of the interaction strengths in the Hamiltonian is unchanged by this final step as it only required O(1) rounds of perturbation theory.
Each qubit has degree at most 3, so we can construct a triangulation of the boundary surface with a qubit in the centre of each triangle. This is not an O(1) triangulation, but if we increase the diameter of our boundary manifold to O max(1, ln(k) r )L + log log n then we can construct an O(1) triangulation with a qubit in the centre of each triangle (this follows because we are working in hyperbolic space). This surface will be homeomorphic to a sphere as boundary surface of the HQECC is homeomorphic to a sphere by Lemma 4.8.
The Note that the fact that H boundary is a (∆ L , , η)-simulation of H bulk immediately implies, 19 In steps 2 and 3 we assume that all operators are Pauli rank 2 operators of the form PA + P † A . We have shown that the HQECC preserves the Pauli rank of operators (Theorem D.4), so accounting for operators of general form will only increase the overheads calculated by a constant factor. by Theorem 3.3, that the partition function, time dynamics, and all measurement outcomes of the boundary are the same as that of the bulk, up to O(1/ poly( , η)) errors which can be made as small as desired by increasing ∆ L .

HQECC constructed from pentagonal prisms
The proof of Theorem 4.10 does not require any particular HQECC -all it requires is that one exists. Here and in Section 4.3 we provide examples of two pairs of Coxeter group and tensor which can be used to construct a HQECC. There are many more which could be constructed.
First we construct a HQECC using a perfect tensor, and a non-uniform Coxeter polytope. The Coxeter polytope, P 1 , we use is a pentagonal prism. It is described by the Coxeter diagram, Σ(P 1 ), shown in Fig. 14. The elliptic subdiagrams of Σ(P 1 ) are shown in Table 2. 20 The maximum |J| such that W J is finite is three, so |D R (w)| ≤ 3 ∀w ∈ W . Clearly if we construct a perfect tensor with 8 legs, and place one tensor in each polyhedral-cell in a tessellation of H 3 by pentagonal prisms then the tensor network will be a HQECC. Details of the tensor are given in Section 4.2.1.
The growth rate of the Coxeter group is 3.13. 21

Perfect tensor
We use the procedure set out in Appendix E to construct a perfect tensor with the required properties. Construct a AME(8, 11) stabilizer state via a classical Reed Solomon code with n = 8, k = 4 over Z 11 defined by the set S = {1, 2, 3, 4, 5, 6, 7, 8} ∈ Z 11 . The generator matrix is given by:  20 Elliptic subdiagrams are subdiagrams containing J ⊆ S such that WJ is finite. 21 The growth rate was calculated using CoxIterWeb [  In standard form this becomes: The stabilizer generators of the AME(8, 11) stabilizer state are then given by: The tensor which describes the stabilizer state is a perfect tensor.

HQECC based on the order-4 dodecahedral honeycomb
There are only four compact, regular honeycombings of H 3 , and all the honeycombings are by polyhedra with even number of faces, so to use any of them in a HQECC would require a pseudo-perfect tensor. Here we use the order-4 dodecahedral honeycomb.  Table 3. Elliptic subdiagrams of Σ(P 2 ).
The Coxeter polytope, P 2 , we use is right angled dodecahedron. It is described by the Coxeter diagram, Σ(P 2 ), shown in Fig. 15. The elliptic subdiagrams of Σ(P 2 ) are shown in Table 3.
The maximum |J| such that W J is finite is three, so |D R (w)| ≤ 3 ∀w ∈ W . Clearly if we construct a pseudo-perfect tensor with 13 legs, and place one tensor in each polyhedral-cell in a tessellation of H 3 by right-angled dodecahedra then the tensor network will be a HQECC. Details of the tensor are given in Section 4.3.1.
The growth rate of the Coxeter group is 7.87. 22

Pseudo-perfect tensor
We use the procedure set out in Appendix E to construct a pseudo-perfect tensor with the required properties. Construct a AME(13, 13) stabilizer state via a classical Reed Solomon code with n = 13, k = 6 over Z 13 defined by the set S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} ∈ Z 13 . The generator matrix is given by: The stabilizer generators of the AME(13, 13) state are given by: The tensor which describes the AME(13, 13) stabilizer state is a pseudo-perfect tensor.

Main result
In our bulk/boundary mapping, local Hamiltonians in 3D hyperbolic space, H 3 , are mapped to local Hamiltonians on its boundary. At first glance this may appear to be at odds with the bulk reconstruction expected in AdS/CFT, where observables deep in the bulk are expected to map to non-local observables on the boundary CFT. However, while the local simulation in our construction ensures that the boundary Hamiltonian is local, it does not affect the locality of observables. As in the HaPPY code, observables deep in the bulk in our construction map to observables which require a large fraction of the boundary to be reconstructed, while observables near the boundary of the HQECC can be reconstructed on smaller fractions of the boundary (see point 3 from Theorem 4.10 for details). This includes local Hamiltonian terms in the bulk when viewed as energy observables. For a local Hamiltonian term deep in the bulk, the corresponding energy observable on the boundary is not a single local term in the boundary Hamiltonian, but is made up a sum over many local terms acting across a large area of the boundary. Point 1 from Theorem 4.10 demonstrates that the boundary surface in our construction really is a boundary geometrically. The radius of the boundary surface is at a distance log log n from the n bulk qudits. In Section 5.4 we compare this with the spherical and Euclidean case. Point 4 from Theorem 4.10, which follows immediately from work in [9], says that we can always choose that the boundary Hamiltonian in our holographic duality has full local SU(2) symmetry. This hints at the possiblity of systematically incorporate local symmetries into the construction, such as gauge symmetries and, in particular, Lorentz invariance and conformal symmetry. Doing so would involve tailoring our general construction to specific bulk models of interest, which is an intriguing possibility that we leave to future work.
Finally it is worth commenting on the energy scales in the construction. There are two large energy scales. The first, ∆ S , is the energy penalty applied to boundary states which violate stabilizers of the HQECC. Above this energy scale, the geometry of the corresponding tensor network in the bulk is modified in a way that corresponds to toy models of black holes proposed previously [34]. We discuss this more fully in Section 5.3. The second, ∆ L , is the energy scale at which the local simulation of point 5 from Theorem 4.10 breaks down. At energies above ∆ L there is no longer any meaningful duality between bulk and boundary.

Boundary to bulk mapping
So far throughout this paper we have considered the tensor network as a map from bulk to boundary. But one of the holy grails of AdS/CFT is to construct a mapping in the opposite direction: from boundary to bulk, as that opens up the possibility of studying bulk quantum gravity via the better-understood boundary CFT. Our construction allows us to construct a toy model of such a boundary-to-bulk mapping.
Consider the boundary Hamiltonian H boundary dual to some k-local bulk Hamiltonian H bulk on n bulk qudits, from Theorem 4.10. Whatever the form of H bulk , H boundary can always be decomposed in the form: where H L = i∈A H i0 contains all the 1-body perturbation gadget terms which act exclusively on the ancilla qubits A, with interaction strengths ≥ ∆ L ;H S contains all the terms into subspaces H n of energy (n − 1/2)∆ S ≤ E ≤ (n + 1/2)∆ S for n ∈ N such that E ≤ ∆ L 2 . Note that by Lemma 4.9 and the fact thatH S is a simulation (Definition 9) of H S , H generic | ∆ L 2 is block-diagonal with respect to the Hilbert space decomposition H boundary = n H n .
A boundary state |ψ boundary with support only on the subspace H 0 corresponds to the bulk geometry of an unperturbed tensor network. This subspace H 0 is precisely the image of the isometry defined by the full tensor network. Thus the bulk state |ψ bulk dual to |ψ boundary can be recovered by applying the inverse of the encoding isometry V 0 for the unbroken tensor network: |ψ bulk = V † 0 |ψ boundary . A boundary state |ψ boundary ∈ H n with n ≥ 1 corresponds to a bulk geometry where one or more of the tensors in the network has been removed (see Fig. 16). To see this, note that, by Lemma 4.9, a state on the boundary is in H n≥1 iff it has violated one of the stabilizer terms of the HQECC. In the bulk it isn't meaningful to talk about states violating stabilizer terms, as the stabilizers don't act on the same Hilbert space as the bulk indices. However, if a tensor is removed from the network, the stabilizer terms associated with that tensor do act on the bulk indices of this modified tensor network. Therefore, for any boundary state |ψ boundary ∈ H n , it is possible to determine whether it is associated with a bulk geometry which contains holes in the tensor network (n > 0), and how many (n), by considering just H generic . Moreover, if the bulk geometry does contain holes, the location of holes can be inferred from which stabilizer terms in H generic are violated by |ψ boundary . Since (by Lemma 4.9) states violating different stabilizer terms are orthogonal, the subspace H n corresponding to n holes in the bulk further decomposes into H n = c H n,c , where the sum is over all configurations c of n holes in the tensor network. The dual bulk state can be recovered by applying the inverse of the encoding isometry V n,c of the tensor network with holes in the appropriate locations: |ψ bulk = V † n,c |ψ boundary . By linearity, states |ψ boundary with support across multiple subspaces We can make the relationship between this Hamiltonian and the bulk geometry explicit, by considering how it looks with respect to the Hilbert space decomposition H physical = n c H n,c . For example, its action on the Hilbert space of the unbroken tensor network is given by: For generalH bulk , the resulting H bulk,0 will not be have any particular local structure. However, there do existH bulk that give rise to every k-local H bulk,0 . Indeed, we know exactly what form theH bulk corresponding to k-local H bulk,0 take, because these are precisely the Hamiltonians we constructed in Theorem 4.10 going in the other direction! Moreover, if we start with aH bulk which is dual to a k-local H bulk,0 , and add weak terms coupling e.g. H 0 and H 1 , then the resulting H bulk will have a H bulk,0 as a low-energy effective theory for energies < ∆ S . But it will now be possible for a state |ψ ∈ H 0 to evolve to a state |ϕ ∈ H 1 under the action of H bulk .

Black hole formation in HQECC
In [34] it was suggested that black holes can be incorporated into HQECC models of AdS/CFT by removing tensors from the tensor network. Recall, if a tensor is removed from the bulk then its one logical index is replaced by t − 1 logical indices, corresponding to the indices that were previously contracted with the missing tensor (see Fig. 17).
This increases the code subspace of the boundary Hilbert space, and [34] suggested that this can be interpreted as describing bulk configurations which contain a black hole. It is noted in [34] that this model ensures that every boundary state is dual to a bulk state, and that black hole entropy scales with area, as expected from the Beckenstein-Hawking bound [4,20].
This method of incorporating black holes into HQECC toy models of holography may at first appear ad hoc and artificial. However, by extending the toy models of holographic duality to encompass Hamiltonians, it emerges more naturally, and can also be extended to toy models of black hole formation. Indeed, by considering the boundary dynamics dual to black hole formation in the bulk, we will see that removing a tensor from the network is the only way to preserve energy under unitary dynamics.
Consider a HQECC, with boundary Hamiltonian: where H generic is as defined in the previous section. We will chooseH bulk to ensure that H bulk,0 is some local Hamiltonian which models semi-classical gravity, given by: where the parameter ∆ S in H generic satisfies: ∆ S ||h Z ||, but ∆ S < Z ||h Z ||. To see that it is always possible to chooseH bulk which gives H bulk,0 of this form, note that we could push H bulk,0 through the tensor network and construct such aH bulk . Here we are allowing ourselves the freedom to add some additional perturbation toH bulk .
Consider the boundary state: where ψ 0 is the vacuum state (the ground state), A x = W † A x W is the boundary operator dual to some local bulk operator A x , and the tensor product is over O(n) boundary operators, which correspond to bulk local operators acting on a shell of O(n) qudits near the boundary. 23 This boundary state corresponds to a shell of matter in the bulk near the boundary. Each bulk local excitation will pick up energy, δ E , from only a few of the local h Z terms, but the overall state will have large energy from summing over all these contributions. The energy on the boundary is equal to the energy in the bulk theory, so we must have: For suitably chosen ∆ S , the total energy of this configuration E(|ψ 1 ) = O(nδ E ) > ∆ S . However, the local operators A x are encoded versions of bulk operators, so acting on |ψ 0 with A x will not take the state outside of the code subspace. Therefore, |ψ 1 is in the code subspace of the HQECC. The boundary will evolve under H boundary . The bulk time dynamics can be approximated by H bulk,0 . This will lead to an error t that increases only linearly in t [9, Proposition 29]. So this approximation will be valid for sufficiently long times.
If we assume that under the action of H bulk,0 this shell of matter collapses inwards towards the centre of the HQECC (as would be expected from a Hamiltonian that models gravity), then the bulk will unitarily evolve to a configuration where most regions are in a low energy state (with respect to the Hamiltonians that act there), and most of the energy comes from a few (O(1)) terms near the centre of the HQECC. Denote the boundary state dual to this bulk configuration by |ψ 2 .
The evolution is unitary, so we must have that: The bulk must have the same energy as the boundary. But the maximum energy the bulk could have picked up from O(1) h Z terms is given by: The hyperbolic geometry ensures that there are O(n) qudits in a shell near the boundary.
By assumption ∆ S ||h Z ||, so it is not possible for the bulk to pick up energy greater than ∆ S from O(1) h Z terms.
If we consider the boundary system, it is possible for the boundary to pick up energy greater than ∆ S either from (the encoded version) of many h Z terms, or by violating one of the stabilizers of the HQECC. Since the bulk state dual to |ψ 2 cannot pick up energy from many h Z terms, the only way for |ψ 2 to pick up energy greater than ∆ S is to violate a stabilizer term.
Violating a stabilizer corresponds to picking up energy from theH S term in the boundary Hamiltonian. On the boundary it is clear that if we begin in a state inside the code space with energy greater than ∆ S it is possible to unitarily evolve to a state which is outside the code space and violates a stabilizer (provided thatH bulk does not commute withH S -see discussion below).
In the undisturbed bulk geometry it is not meaningful to talk about violating a stabilizer, as the stabilizers do not act on the same Hilbert space as the bulk logical indices. If, however, one of the bulk tensors has been removed, as in the models of black holes from [34], then the stabilizers corresponding to the removed tensor do act on the Hilbert space of the t − 1 new logical indices, and it is meaningful to talk about these stabilizers being violated.
Therefore, the only way for the system to conserve energy under these dynamics is for the tensor network corresponding to the boundary state to be 'broken', and for at least one of the stabilizers corresponding to the missing tensor to be violated. This process therefore predicts the dynamical formation of a toy model black hole as proposed in [34].
In order for this process to occur we must have: [H S ,H bulk ] = 0 (5.10) (If we had someH bulk which commuted withH S then there would be no coupling between the code-space, C ∈ H boundary , and the rest of the boundary, C ∈ H boundary . So it would not be possible for |ψ 1 ∈ C to unitarily evolve to |ψ 2 ∈ C.) In the bulk, Eq. (5.10) implies that H bulk,0 is a low energy effective theory. The full bulk Hamiltonian includes some coupling between H 0 and H ≥1 (where H n is as defined in the previous section). It therefore doesn't act only on the logical indices of the unbroken tensor network, and so the tensor network is always an approximation to the actual bulk theory. Another recent paper which examined bulk geometries containing black holes also showed that the bulk reconstruction in AdS/CFT is necessarily only approximate [22].
Eq. (5.10) also implies that the toy model black hole degrees of freedom will (in general) be entangled with the rest of the tensor network. We can write the boundary Hamiltonian as: where Eq. (5.10) ensures that the coupling terms are non-zero. Since the coupling terms are non-zero, any boundary state which is separable across the C / C partition (equivalently, any bulk state which is separable across the black hole boundary) is not a stationary state of H boundary , so separable states will always evolve to entangled states. Therefore, the black hole degrees of freedom (if we trace out the rest of the tensor network) will always evolve to a mixed state. Similarly, on the boundary tracing out part of the system will lead to a mixed state. In this sense the black hole (and the equivalent state on the boundary) has thermalized. It also follows from this discussion that the toy models of black holes correspond to high energy states on the boundary, which pick up their energy from a small number of high energy terms in the Hamiltonian. Therefore, with an appropriately chosenH bulk , we can model black hole formation in our HQECC. No information is lost in this process (as the dynamics are unitary we can always reverse them). But the isometry which takes bulk states to boundary states will have changed, so the 'dictionary' for reconstructing the bulk state from the boundary state will be different. In particular, the fraction of the boundary needed to reconstruct an operator acting on the central bulk region will increase in the presence of a toy-model black hole.
To see this consider a central black hole where one tensor is removed from the HQECC. An operator which acts on the degrees of freedom representing the black hole acts on all t − 1 of the logical indices, so will need to be pushed through all of the t − 1 tensors at radius 1 in the HQECC. In the absence of any black hole an operator acting on the central bulk index could be reconstructed via pushing through just t 2 of the tensors at radius 1 in the HQECC. Thus the fraction of the boundary needed for bulk reconstruction of the centre has increased.
Throughout this discussion we have concentrated on a black hole in the centre of the bulk for clarity, but these qualitative conclusions apply equally well to black holes situated at any point in the bulk.

Other geometries
We have constructed a duality between quantum many-body models in H 3 and models living on its 2D boundary, as a toy model for a duality between Anti-de Sitter space and its boundary. From a cosmological perspective it would also be interesting to consider toy models of dualities between positively curved / flat geometries, and their boundaries.
There is no reason to suspect that the error correcting properties of AdS/CFT should be recreated in such dualities, so it is not clear that the error correcting code constructions of HQECC will be relevant. However, the analogue Hamiltonian simulation theory from [9] can be applied in any geometry. It follows immediately from the results in [9] that it is possible to construct a duality between Euclidean or spherical geometry in dimension 3, and a 2D 'boundary' surface. However, it is not clear whether such a 'boundary' surface can be considered a geometric boundary in any meaningful sense.
In Euclidean geometry, results from [9] imply that in order to simulate n bulk qudits in E 3 with a local boundary model requires O(poly(n)) boundary qudits. If we maintain the density of qudits from the bulk on the boundary, this implies that if the bulk qudits were contained in a ball of radius R, then the boundary surface would be at a radius R = O(R + poly(n)). So the distance between the bulk qudits and the boundary surface would increase polynomially with n.
The situation in the positively curved case is worse. S 3 is finite, so the boundary surface required to simulate n qudits which lie in S 3 might not itself lie in S 3 . Therefore, while it is possible to construct a duality between E 3 or S 3 and a 2D surface, it is not clear whether such a duality could be considered a bulk / boundary mapping.

Conclusions
Even in the absence of a duality at the level of Hamiltonians, holographic quantum codes such as [34] already provide a simple, tractable toy model many of the interesting static features expected of the real AdS/CFT "dictionary". Such as redundant encoding and complementary recovery of information on the boundary [3,19], entropic relations such as the Ryu-Takayanagi formula [38,39], and even toy models of (static) black holes satisfying the Beckenstein-Hawking bound [4,20]. However, without a holographic mapping between local Hamiltonians, these toy models give more limited insight into the relationship between bulk and boundary energy scales -a key aspect of AdS/CFT, where non-classical bulk spacetime geometries are believed to correspond to high-energy boundary state. More importantly, the HQECC toy models gave no insight into how dynamics in the bulk is reflected in the boundary.
By extending the toy models of holographic duality to encompass Hamiltonians, we show one way to complete this "dictionary". For example, it follows almost immediately from our construction that the toy models of static black holes proposed in [34] do indeed correspond to high-energy states of the local boundary model, which moreover pick up their energy from a small number of high-energy terms in the boundary Hamiltonian.
More intriguingly, our construction allows these toy models to say something about how dynamics in the bulk is reflected in the boundary. Even without writing down any specific local bulk Hamiltonian, the structure of the bulk/boundary mapping we construct implies that dynamics in the bulk is dual to boundary dynamics with some of the qualitative features of AdS/CFT duality. In particular we show that the formation of a (toy model) black hole in the bulk dynamics is dual to a boundary dynamics in which local excitations unitarily evolve to a non-local excitation that lives outside the code space.
On the other hand, our construction shows that any local Hamiltonian in the bulk has a corresponding local boundary model. This implies that, at least in these toy models, the holographic duality has little to do with quantum gravity per se, but is entirely a consequence of the hyperbolic geometry.
Another way to complete the holographic 'dictionary' was suggested in [33], where it is argued that the dynamics for a particular holographic state should be the unitary representation of Thompson's group (a discrete analogue of the conformal group). 24 While [33] concentrates on a particular holographic state, they discuss how to generalise their results.
The key advantage of the method in [33] is that it gives a boundary system which is conformally invariant, as would be expected in AdS/CFT. However, the results in [33] apply to holographic states, not holographic codes. A subspace of the boundary Hilbert space is identified as the bulk Hilbert space in [33], but it is not clear that this is redundantly encoded in the boundary, as would be expected in AdS/CFT. In our construction we have not attempted to include conformal invariance in the boundary theory (although it in certain 24 A holographic state is a holographic code with no bulk logical indices. cases it does exhibit 'block translational invariance' -see Appendix G for details). An interesting avenue of further research would be to look into combining the work done in this paper, with the methods in [33] to construct a bulk-boundary correspondence between Hamiltonians which has the error-correction properties of holographic codes, as well as a conformally invariant boundary.
The main limitation of our result is the usual one stemming from the use of perturbation gadgets: the coupling strengths α ij in the boundary Hamiltonian H bulk are very far from uniform. Indeed, some coupling strengths will be O(1) whilst others are O ∆ poly(n log(n)) L , where ∆ L = Ω H bulk 6 . High-energy interactions on the boundary perhaps matter less here than in Hamiltonian complexity results, since the motivation for holographic duality is to model high-energy physics phenomena. Nonetheless, it would be interesting to understand if a large range of interaction energy scales is a necessary feature of toy models of holographic duality, or an artefact of our proof techniques. Recent results in [11,46] indicate that this feature may be inherent to any mapping to a local boundary Hamiltonian. Our construction also inherits some of the drawbacks of the HaPPY code. In particular, the Ryu-Takayanagi formula is not obeyed exactly for arbitrary bulk regions; there exist certain pathological choices of boundary region, A, for which there are bulk operators that are not recoverable on A nor on A c (violating complementary recovery). Like the HaPPY code, the tensor network cannot describe sub-AdS geometry as it is only defined at scales larger than the AdS radius. A number of holographic codes have been constructed which build on the HaPPY code and do not have these drawbacks. Notable examples include bidirectional holographic codes (BHC) composed of pluperfect tensors [47], and random tensor network constructions [21]. It would be interesting to apply the framework developed in this paper to stabilizer BHCs or stabilizer random tensor networks [31], to construct a toy model of holographic duality which remedies these drawbacks.
i. |Φ is maximally entangled for any possible bipartition. This means that for any bipartition of P into disjoint sets A and B with A ∪ B = P , and without loss of generality m = |B| ≤ |A| = n − m, the state |Φ can be written in the form: ii. The reduced density matrix of every subset of parties A ⊂ P with |A| = n 2 is maximally iii. The reduced density matrix of every subset of parties A ⊂ P with |A| ≤ n 2 is maximally mixed.
iv. The von Neumann entropy of every subset of parties A ⊂ P with |A| = n 2 is maximal, S(A) = n 2 log q.
v. The von Neumann entropy of every subset of parties A ⊂ P with |A| ≤ n 2 is maximal, These are all necessary and sufficient conditions for a state to be absolutely maximally entangled. We denote such state as an AME(n,q) state.
The connection between perfect tensors and AME states was noted in [34], and separately in [16] (where perfect tensors are referred to as multi-unitary matrices). Here we generalise the arguments from [16] to encompass the case of pseudo-perfect tensors.
A t-index tensor, where each index ranges over q values, describes a pure quantum state of t q-dimensional qudits: A necessary and sufficient condition for |ψ to be an AME state is that the reduced density matrix of any set of particles A such that |A| ≤ t 2 is maximally mixed. The reduced density matrix ρ A can be calculated as ρ A = M M † , where M is a |A| × |A c | matrix formed by reshaping T . Therefore, the state |ψ is an AME state if and only if the tensor T is an isometry from any set of indices A to the complementary set of indices A c with |A| ≤ |A c |.
If t is even (odd) this implies that T is a perfect (pseudo-perfect) tensor. Therefore an AME state containing an even (odd) number of qudits can be described by a perfect (pseudo-perfect) tensor, and every perfect (pseudo-perfect) tensor describes an AME state on an even (odd) number of qudits.

B (Pseudo-)perfect tensors and quantum error correcting codes
An [n, k, d] q quantum error correcting code (QECC) encodes k q-dimensional qudits into n q-dimensional qudits, such that d − 1 located errors (or d−1 2 unlocated errors) can be corrected. The quantum Singleton bound states that n − k ≥ 2(d − 1). A QECC that saturates the quantum Singleton bound is known as a quantum maximum distance separable (MDS) code.
Previous work has established that every AME(2m, q) state is the purification of a quantum MDS code [24,25]. 25 Furthermore, viewing the perfect tensor which describes an AME(2m, q) state as a linear map from 1 leg to 2m − 1 legs, it is the encoding isometry of the quantum MDS code encoding one logical qudit [34].
We can generalise the proof in [25] to further characterise the connection between (pseudo-)perfect tensors and QECC: Proof. Let |Φ be an AME(t, q) state, and let m = t 2 . For any partition of the state into disjoint sets L, A and B such that |L| = k ≤ m, |A| = m − k and |B| = t 2 we can write: The set A ∪ B are the physical qudits. Define the basis states of a QECC as: Encode a logical state in the physical qudits as: Now consider tracing out m − k of the physical qudits. Since the sets A and B in Eq. (B.1) are arbitrary, we can always choose that the qudits we trace out are in the set A. The qudits we are left with are then in the state: We can recover the logical state by performing the unitary operation: The original proof actually demonstrates that AME(2m, q) states are the purification of a threshold quantum secret sharing (QSS) scheme, however every pure QSS scheme is equivalent to a quantum MDS code [7] so the result follows immediately. 26 The proof of this theorem is a straightforward generalisation of [25,Theorem 2] which will give: Therefore, any set of t − m qudits contains all the information about the logical state. By the no-cloning theorem, any set of m qudits contains no information about the logical state, so the QECC can correct exactly m − k = t 2 − k erasure errors. This gives d = t 2 − k + 1.
Therefore, an AME(2m, q) state is the purification of a quantum MDS code with parameters [2m − k, k, m − k + 1] q ; while an AME(2m + 1, q) state is the purification of a QECC with parameters [2m + 1 − k, k, m − k + 1] q . The parameters in the AME(2m + 1, q) case do not saturate the Singleton bound, so it is not an MDS code, but it is an optimal QECC. 27 If we consider the (pseudo-)perfect tensor, T , which describes an AME(t, q) state |Φ we have: where L and P are the sets of logical and physical qudits in the corresponding QECC, |L| = k, |P | = t − k. The basis states for the QECC are then: and the encoding isometry is: So, viewed as an isometry from k legs to t − k legs a (pseudo-)perfect tensor is the encoding isometry of a [t − k, k, t 2 − k + 1] q QECC.

C Qudit stabilizer codes and states
We restrict our attention to qudits of dimension p where p is an odd prime.

C.1 Generalised Pauli group
The generalised Pauli operators on p dimensional qudits are defined as: The terms MDS quantum code and optimal quantum code are sometimes used interchangeably. Here, by an optimal quantum code we mean either an MDS code, or a code for which n − k is odd so which cannot saturate the Singleton bound, but for which the distance d is maximal given this constraint.
where ω = e 2πi p . The generalised Pauli operators obey the relations X p = Z p = 1 and XZ = ωZX.
The Pauli group on n qudits is given by G n,p = ω a X b Z c where a ∈ Z p , b, c ∈ Z n p . Two elements ω a X b Z c and ω a X b Z c commute if and only if b · c = b · c , where all addition is mod p.

C.2 Qudit stabilizer codes
A stabilizer code C on n qudits is a p k -dimensional subspace of the Hilbert space given by: where S is an Abelian subgroup of G n,p that does not contain ω1.
The projector onto C is given by [13]: where |S| = p n−k . S is an elementary Abelian p-group, so this implies that a minimal generating set for S contains n − k elements [28]. The minimum weight of a logical operator in an [n, k, d] stabilizer code is d. This is also the minimum weight of any operator that is not in the stabilizer, but which commutes with every element of the stabilizer.
A stabilizer code with k = 0 is a stabilizer state.

D Stabilizer (pseudo-)perfect tensors
A stabilizer (pseudo-)perfect tensor describes stabilizer AME states. This implies, using the method in [14] for generating short qubit stabilizer codes from longer ones, that the QECCs described by the tensors are stabilizer codes: Theorem D.1. If a (pseudo-)perfect tensor, T , with t legs describes a stabilizer AME(t, p) state, then the [t − k, k, t 2 − k + 1] p QECCs (for 1 ≤ k ≤ t 2 ) described by the tensor are stabilizer codes. The stabilizers of the code are given by the stabilizers of the AME state which start with I ⊗k , restricted to the last t − k qudits.
Proof. Consider an AME(t, p) stabilizer state with stabilizer S: where |A| = m = t 2 , |B| = t 2 . We have that M |Φ = |Φ for all M ∈ S, where |S| = p t so a minimal generating set for S contains t elements. We can always pick a generating set for S so that M 1 and M 2 begin with X and Z respectively, and M 3 to M t begin with 1 [14]. Define M j to be M j restricted to the last t − 1 qudits, where j = 1, . . . , t.
The group S generated by M j for j = 3, . . . , t contains |S | = p t−2 elements, and it stabilizes the [t − 1, 1, t 2 ] p code described by T with codespace C. This procedure for discarding two stabilizer generators from a [n, k, d] code to obtain an [n − 1, k + 1, d − 1] code is always possible provided d > 1 [14]. So we can repeat the procedure t 2 − 1 times, demonstrating that the [t − k, k, t 2 − k + 1] p QECCs for 1 ≤ k ≤ t 2 described by the perfect tensor are stabilizer codes.
We also require that all the QECC used in our construction map logical Pauli operators to physical Pauli operators. It is known that for qubit stabilizer codes a basis can always be chosen so that this is true [14], and the same group-theoretic proof applies to qudit stabilizer codes. 28 The physical Pauli operators we obtain using this method are not given by acting on the logical Pauli operators with the encoding isometry, but they have the same action in the code subspace. So, we have that for qudit stabilizer codes it is always possible to pick a basis where V P V † = P V V † where P is a k-qudit Pauli operator, P is an n-qudit Pauli operator, and V is the encoding isometry of the QECC.
In our holographic QECC we do not have complete freedom to pick a basis, so we also need to show that we can pick this basis consistently. In order to show this we will require two lemmas about qudit stabilizer codes.
Lemma D.2. The smallest subgroup, G, of the Pauli group G n,p such that ∀P ∈ G n,p , P = 1 ⊗n , ∃M ∈ G where M P = P M is the entire Pauli group.
Proof. Consider the following process for constructing a set A element by element such that ∀P ∈ G n,p , P = 1 ⊗n , ∃M ∈ A where M P = P M : 1. Select an arbitrary element of G n,p , P (1) = ω a (1) X b (1) Z c (1) . (1 ) . This ensures that P (1 ) does not commute with P (1) , and P (1 ) is our first element of A.

Pick an element
3. Pick an arbitrary element, P (i) of G n,p which commutes with every element of A and is not the identity.
4. Choose any element, P (i ) of G n,p which does not commute with P (i) , and add it to A. 28 The discussion in [14] actually shows that there is an automorphism between G k,2 and N (S)/S, where N (S) is the normalizer of S in Gn,2. As N (S) ∈ Gn,2 this is sufficient. The discussion in [14] can be extended to qudits of prime dimension by replacing phase factors of 4 with factors of p, and dimension factors of 2 with factors of p. (3) and (4) until ∀P ∈ G n,p , P = 1 ⊗n , ∃M ∈ A such that M P = P M .

Repeat steps
When we construct A, every element P (i ) = ω a (i ) X b (i ) Z c (i ) which we add to A is independent from every element already in A. To see this note that by assumption there is some P (i) which commutes with every element in A, but does not commute with P (i ) . If P (i ) was not independent from the other elements of A, and b (i ) = k b (k) and , and P (i ) would commute with P (i) , contradicting our initial assumption.
We need to determine the minimum number of elements in A when this process terminates.
Suppose we have repeated steps (3) and (4) m times, so that |A| = m. If there is an element n , and there are m homogeneous equations which P (k) needs to satisfy. 29 Provided m < 2n, the set of equations is underdetermined, and we can always choose a P (k) which commutes with every element of A and is not the identity. If m = 2n then the solution to the equations is uniquely determined, and is the identity. At this point we cannot continue with the process, so it terminates with |A| = 2n.
Therefore, the smallest set A of elements of G n,p such that ∀P ∈ G n,p , P = 1 ⊗n , ∃M ∈ A where M P = P M contains 2n elements. At this stage A is not a group because all the elements of A are independent so the set isn't closed. Any 2n independent elements of G n,p generate the entire group, so the smallest group G which contains every element of A is G n,p itself.
Lemma D. 3. In an [n, k, d] p stabilizer code, the action of an encoded Pauli operator P on any d − 1 physical qudits can be chosen to be any element of G d−1,p .
Proof. The encoded Pauli operator P is not unique, and the different possible physical operators are related by elements of the stabilizer. We therefore need to show that the stabilizer S restricted to any set of d − 1 qudits is the entire Pauli group G d−1,p .
An Theorem D.4. If there exists a basis such that the QECC described by a (pseudo-)perfect tensor, T , from qudit l to t − 1 qudits maps Pauli operators to Pauli operators, then all other QECC described by T which include qudit l in the logical set also map Pauli operators to Pauli operators in that basis.
Proof. Let the AME state described by T be given by: where m = t 2 , and |B| = t 2 . The basis states of the [t − 1, 1, t 2 ] p QECC from qudit l to other t − 1 qudits are given by: and the encoding isometry is given by: The basis states of a [t − k, k, t 2 − k + 1] p QECC from a set L qudits (where l ∈ L, |L| = k) to t − k qudits is given by: and the encoding isometry is given by: By assumption we have: where P 1 ∈ G 1,p and Q ∈ G n,p , n = t − 1. Therefore: Consider the action of V on P 1 ⊗ P 2 ∈ G k,p : 10) where and Q 2 and Q indicate Q restricted to the first k − 1 and remaining n − k − 1 qudits respectively (Q = Q 2 ⊗ Q ). Therefore, if Q acts as P 2 on the first k − 1 qudits, then P 1 ⊗ P 2 maps to a Pauli under V . The operator Q is not unique, and from Lemma D.3 we know that its action on t 2 − 1 qudits can be chosen to be any element of G t 2 −1,p . So we can choose that Q acts as P 2 on the first k − 1 qudits, for k ≤ t 2 .
E Existence of (pseudo-)perfect stabilizer tensors

E.1 Classical coding theory
A classical linear [n, k] d code, C cl , encodes k d-dimensional dits of information in n dits. It can be described by a generator matrix G T : Z k p → Z n d , where information is encoded as Equivalently, C cl admits a description as the kernel of a parity check matrix H : Z n d → Z n−k d . Consistency of the two descriptions implies HG T x = 0, ∀x ∈ Z n d , and hence the rows of H are orthogonal to the rows of G.
The minimum distance δ of a classical code is defined as the minimum Hamming distance between any two code words. It is bounded by the classical Singleton bound, δ ≤ n − k + 1. Codes which saturate the classical Singleton bound are referred to as classical MDS codes.
Reed-Solomon codes are a class of classical MDS codes [37]. 30 Definition 13. Let p be a prime, and let k, n be integers such that k < n ≤ p. For a set S = {α 1 , α 2 , ..., α n } ∈ Z p , the Reed-Solomon code over Z p is defined as: C RS [n, k] = {(P (α 1 ), P (α 2 ), ..., P (α n )) ∈ Z n p | P (X) ∈ Z p [X], deg(P ) ≤ k − 1} (E.1) where Z p [X] is the polynomial ring in X over Z p . 31 To encode a message a = (a 0 , a 1 , ..., a k−1 ) ∈ Z k p in the Reed-Solomon code define the polynomial: P a (X) = a 0 + a 1 X + a 2 X 2 + ... + a k−1 X k−1 (E.2) and construct the codeword (P a (α 1 ), P a (α 2 ), ..., P a (α n )) ∈ C RS [n, k]. The generator matrix can be put into standard form G = [I k |P ] (where P is a k × (n − k) matrix) using Gauss-Jordan elimination over the field Z p . The parity check matrix is then given by H = [P T |I n−k ]. 30 Reed Solomon codes can be defined over any finite field, but we only require the definition of Reed Solomon codes over Zp for our construction. 31 The polynomial ring in X over Zp, Zp[X], is the set of polynomials P (X) = a0 +a1X +a2X 2 +...+amX m where ai ∈ Zp.
If we define an isometry W by W |ψ A = |ψ A |0 w then: Therefore Eq. (3.14) is satisfied for all ≥ 0. We also have: As required by Eq. (3.15). So, provided a ∆ is picked which satisfies the conditions of Lemma 3.5,H is a ( ∆ 2 , η, )-simulation of H target . Qudit crossing gadget We want to generate the Hamiltonian: H target = H else + α ad P A ⊗ P D + P † A ⊗ P † D + α bc P B ⊗ P C + P † B ⊗ P † (F.28) +(P C ⊗ X † w + P † C ⊗ X) + (P D ⊗ X † w + P † D ⊗ X w )] (F.29) Then: If define an isometry W by W |ψ A = |ψ A |0 w then: Therefore Eq. (3.13) is satisfied for all ≥ 0. So, provided ∆ is chosen to satisfy the conditions of Lemma 3.4,H is a ( ∆ 2 , η, )-simulation of H target . Qudit fork gadget We want to generate the Hamiltonian: where: H 1 = H else + α ab α ac P B ⊗ P † C + P † B ⊗ P C + 1 1 + α 2 ab + α ac + α 2 ac (F.36) +α ac (P C ⊗ X † w + P † C ⊗ X w )] (F.37) Then: If define an isometry W by W |ψ A = |ψ A |0 w then:  Figure 19. Coxeter diagram for the group BH 3 .

G Translational invariance in the boundary model
In general the boundary model which results from pushing a translationally invariant bulk Hamiltonian through the HQECC will not be translationally invariant, but for particular choices of tessellation and (pseudo-)perfect tensor the boundary model will exhibit block translational invariance. To see how this comes about consider the example discussed in Section 4.3. First consider the symmetry of the honeycombing of H 3 . The tessellation is the order-4 dodecahedral honeycomb. The symmetry group of the dodecahedron is the icosahedral symmetry group, which is the Coxeter group H 3 with Coxeter diagram given in Fig. 18. The rotation subgroup of this group is the alternating group A 5 , and contains rotations by 2π 5 about centres of pairs of opposite faces, rotations by π about centres of pairs of opposite edges, and rotations by 2π 3 about pairs of opposite vertices. The symmetry group of the entire tessellation is the Coxeter group BH 3 , which has Coxeter diagram given in Fig. 19. 32 Clearly H 3 < BH 3 . Therefore the symmetry group of the tessellation contains all of the rotational symmetries of the dodecahedron itself.
Cutting off the tessellation at some finite radius will not break the rotational symmetry. Therefore, so long as we can align the perfect tensors within the dodecahedral cells of the tessellations in such a way that the tensors don't break the symmetry, the HQECC will have the same rotational symmetry as the dodecahedron.
Ignoring the central tensor for now, it is clear that for the remaining tensors in the network it is possible to align them in such a way that rotational symmetry about at least one axis is preserved. To see this consider starting with an empty tessellation (of finite radius). Pick an arbitrary cell in the tessellation, P (w) , and place the pseudo-perfect tensor in that cell in an arbitrary orientation. Now pick an axis of rotation, and consider rotating the tessellation by the minimum rotation about that axis which is in H 3 . This sends P (w) to P (w ) , and the resulting tensor in P (w ) will have some particular orientation. Place a tensor with this orientation in P (w ) . We can now repeat this process, placing tensors in every cell which is equivalent to P (w) under rotation about this axis. Then pick another empty cell in the tessellation, and repeat the process, keeping the axis of rotation the same. We are guaranteed to be able to complete the process consistently as rotations about the 32 This is not the Coxeter diagram given for the tessellation in Section 4.3. In general a Coxeter group can have many different Coxeter diagrams depending on which presentation is used. In Section 4.3 we used the presentation corresponding to reflections in the faces of the dodecahedron. Here we are using the Coxeter diagram which makes the link between H3 and BH3 explicit. same axis commute, and there are no conditions on how tensors in neighbouring cells have to be connected. Now consider the central tensor. Rotating the HQECC doesn't send the central tensor to another tensor in the network, it permutes 12 of the indices of the bulk tensor (leaving the final index, the bulk logical index, unchanged). The stabilizer generators of the pseudoperfect tensor used in the HQECC are given in Eq. (4.20). Viewed as a isometry from any one index to the other twelve indices the pseudo-perfect tensor is the encoding isometry of a [12, 1, 6] 13 QECC. Reed-Solomon codes are cyclic codes, so the pseudo-perfect tensor is symmetric under cyclic permutations of the 13 indices. Which index we chose as the logical index is therefore not important.
Reading off from Eq. (4.13) one of the stabilizer generators of the AME(13,13) state is X ⊗13 . Therefore using the process described in [14] for generating new stabilizer codes from old stabilizer codes we can construct a logical X operator for the [12, 1, 6] 13 code as: In order to construct a logical Z operator we need to find an operator which commutes with every element of the stabilizer such thatXZ = ωZX. One such operator is: Both the encoded X and Z operators on the central bulk index can be realised using operators which are symmetric under any permutation of the contracted tensor indices. Therefore so can any operator we push through the central bulk tensor, so the central tensor does not break the rotational symmetry of the HQECC.
Since the HQECC (including the tensors) can be constructed to preserve rotational symmetry about at least one axis, a rotation about that axis will send the entire HQECC, including the boundary, to itself. Therefore the boundary exhibits a form of 'block translational invariance' -the Hamiltonian is a repeating pattern.
The existence of translationally invariant universal quantum Hamiltonians is an open question (in the classical case it has been shown that translationally invariant universal Hamiltonians do exist [27]). If translationally invariant universal quantum models were found it may be possible to construct a HQECC where the boundary Hamiltonian exhibits full translational invariance.