# Stabilizer Rank Project

The Stabilizer Rank $\chi(\ket{\psi})$ is a measure introduced by Bravyi, Smolin & Smith in 2015, and is equal to the number of terms in a covnex sum of stabiliser states $\ket{\phi_{i}}$ such that $\sum_{i=1}^{\chi}c_{i}\ket{\phi_{i}}=\ket{\psi}$.

More precisely, we will call the 'exact' stabilizer rank of a state $\ket{\psi}$ the minimum value of $\chi$. For any n-qubit state, we can trivially note that $\chi\leq 2^{n}$ as the computational basis states are stabilizer states. Similarly, for all stabilizer states $\chi\equiv 1$.

## BGSS Papers

The notion of the Stabilizer Rank was introduced by Bravyi, Smolin and Smith as a way of potentially clasically simulating Clifford+T quantum circuits. Using the tools of Clifford Reduction, we can rewrite any Cliffod+T circuit using state injection as a sequence of (adaptive) Pauli measurements on $t$ magic states where $t$ is the number of T gates in the circuit. Classical simulation is efficient for stabilizer states, so if we know the stabilizer rank decomposition we can more easily simulate this resulting 'Pauli Based Computation'. This was discussed in their follow up paper, and my notes on it.

Importantly, in this follow up paper they also introduce two notions.

1. 'Strength' of simulation:

When doing a classical simulation of quantum computing, we seek to approximate the output distribution probability. Bravyi defined two notions of this simulation, strong and weak. The former involves simulating $P_{out}(x)$ for some output $x$ with $\epsilon$ precision; this task requires quantum computers to do and is thus dang hard clasically!

The latter, weak simulation, involes sampling from a distribution $P_{sim}$ which is $\epsilon$ close to $P_{out}$ under the $L_{1}$ norm. This task is easier, and in particular has a polynomial dependence on $w$ the subset of the total qubits we measure.

2. Approximate Stabilizer Rank

This is related to the task of weak simulation. In particular, the approximate stabilizer rank of a state $\chi_{\epsilon}(\ket{\psi})$ is define as the stabilizer rank of a state $\ket{\psi'}$ that $\epsilon$ approximate $\ket{\psi}$.

In their papers, Bravyi and Gosset demonstrated several key features of the stabilizer rank. In particular, they showed that for strong and weak simulation of Clifford+T circuits, the computational complexity scales as where $n$ is the number of qubits, $t$ the number of T gates and $c$ the number of clifford gates.

The also showed that using simualted annealing to find decompositions that the actual stabilizer rank of the T-type magic states grows slowly for up to $6$ qubits. Using the fact that $\chi(\ket{\psi}\otimes \ket{\phi})\leq\chi(\ket{\psi})\chi(\ket{\phi})$, the rank of 7 for 6 qubits gives a bound $\chi\left(\ket{A}^{\times t}\right)\leq 7^{n/6}=2^{\log_{2}(7)n/6}=2^{0.47n}$.

If we instead examine the 'approximate' stabilizer rank, they use the fact that the edge type magic state lives in the space spanned by the non-orthogonal stablizer states $\ket{0},\ket{+}$, and the generate short random codes such that one can be found with rank $2^{0.23 n}$ which epsilon approximates $\ket{A}^{\otimes n}$. \

## MRes Project

My masters report looked at the possiblity of using the Stabilizer Rank as a resource measure. We know that, because classical simulation of quantum circuits is believed to be hard, the stabilizer rank, approximate or otherwise, must grow exponentially in the number of T gates. But, Bravyi an Gossett showed that the exponent is surprisingly small, approximately $0.23n$ for the apprixmate stabilizer rank. So, this leads us to ask how Stabilizer Rank behaves for other states?

Analytically, I found that we could generate approximate stabilizer rank decompositions for the second class of single-qubit magic state, the 'face-state'. In this case, the exponent is instead given by $\sim 0.35n$. This derivation exactly follows the form of the Bravyi Gosset paper, using a 'ternary' basis of stabilizer states.

During my project I developed code in python for generating Stabilizer States, and then for doing brute force search for exact stabilizer rank decomposition. In particular, the code represents Pauli operators as $2n$ bit binary strings, where the resulting operator is given by $\otimes_{i=1}^{n}X^{s_{i}}Z^{s_{n+1}}$. The code then takes combiantions of strings and builds the full group generated by them, testing for unique groups. The resulting unique groups are then translted to a generating set of Pauli operators $\{g_{i}\}$, and the stabilizer state is the $+1$ eigenstate of the resulting projector given by $\Pi=\prod_{i=1}^{n}\frac{1}{2}\left(\mathbb{I}+g_{i}\right)$.

The conclusion of the project is that the stabilizer rank seems to grow most slowly for the edge-type magic states. The implication here is that Clifford+T is potentially the 'weakest' choice for a restricted gate set; the resources we need to break away from classical simulability are larger, and this in turn implies that T count will blow up when we start trying to a quantum computation that is Classically 'difficult'.

### Numeric Extension

Following my project I looked at using the random walk method to try and find approximate decompositions of higher order products of different states. This effort was unfortuantely hampered by the design of my MRes code and the lack of a systemic approach, and my focus instead shifted to looking at State Injection circuits.

I have since completed a rewrite of the code, fixing several bugs and improving the design, under the project name Stabilizer Search. This code is also in the process of being packaged for release on PyPI.

An improtant note when running code on Legion is that the login nodes use newer processors than some of the compute nodes. In partcular, the login nodes have access to an instruction set called AVX, a seriesd of optimisations by intel for performing matrix operations. This means that when compiling code on a login node, you need to specify that the resulting job runs only on nodes that have access to AVX instructions. We can do this by specifying the option -ac-allow=MNOUT. See also the notes on running code on Legion.

In 2017, the project was restructured in to the package stabilizer_search. This package is designed to be extensible and to allow pieces of the code to be replaced with well optimsed C-extensions, interfaced using Cython.The current version implements Brute Force search, and Random Walk search. Stabilizer states are generated using python, where the symplectic representation of Pauli operators is implemented using boolean numpy arrays.

There are several improvements to consider, some of which are currently underway. The code to generate stabilizer groups is currently being reimplemented as a C extension that would allow finding groups on up to 32 qubits, and is realised using long integers and bit-twiddling to achieve the symplectic form. Another optimisation over the python version is a binary guassian elimination algorithm designed to efficiently test for linear independence of the genrators, as opposed to building the full group and testing uniqueness.

Another consideration is multiprocessing. The BruteForce search is naively parallelisable, as the combinations can be distributed between worker processes. These processes would have a shared 'success' element that they check at each search step, but otherwise privately check the overlap of the projector on the target state.

Additionally, it would be good to write 'cythonised' forms of the search funcitons do_brute_force and do_random_walk; this would likely give a good speed advantage for little to no effort relative to writing a C extension and interfacing it.

## Earl Campbell's Note

At the Quantum UK conference 2016, I had a chance to chat with Earl Campbell about the stabilizer rank. In particular, he shared a note on extending the 'random codes' method of Bravyi and Gosset to all resource states that live in $\mathcal{C}_{3}$, the third level of the Clifford heirarchy. This includes both species of one-qubit magic state. In this case, the scaling of the approximate stabilizer rank goes as $\frac{1}{f^{t}}\frac{1-\epsilon}{\epsilon}$. This factor $\frac{1}{f^{t}}$ when re-aranged agrees exactly with the scaling found by Bravyi & Gosset and by my MRes work. This method relies on the fact that any $\mathcal{C}_{3}$ resource state can be written as $U\ket{\phi}$ where $U\in\mathcal{C}_{2}$ is a Clifford operation and $\ket{\phi}$ is a stabilizer state.

In a later version of the note, Earl also added an observation about the exact stabilizer rank; a given stabilizer state (or $n$ copies of one) is also stabilized by a subgroup of the Clifford group. If we can in turn find a maximal proper normal subgroup of this clifford stabilizer, then the order of the resulting quotient group is an upper bound on the stabilizer rank. This agrees exactly with BSS for 2 qubits, but runs in to trouble as we move to higher orders as the order of any clifford subgroup with $m$ generators is $2^{m}$.

## Examining the Exact Stabilizer Rank

In their paper, BSS found the exact stabilizer ranks for 1-6 copies of the T type magic state by using simulated annealing to walk through the space of real stabilizer states. The decompositions that resulted, however, share an interesting form. To see that, we first write the state in a weird normalisation from which it is immediately apparent n copies of the state can be written as where $|x|$ is the hamming weight of the binary string $x$.

They then build decompositions out of stabilizer states in the computational basis, such as $\ket{B_{n}}$, the set of all $n$ bit strings and equal to $\ket{+}^{\otimes n}$, $\ket{E_{n}}$ the superposition of all even weight strings, and the realted quantity $\ket{O_{n}}$. We can also build states out of graph states $\ket{G}$, where the graph can be expanded out in the computational basis. These tricks give the decompositions shown in the BSS paper.

An important observation made by Dan is that ANY product state will have a stabilizer rank smaller than $2^{n}$. For example, on two qubits we can write $\ket{\psi}\otimes\ket{\psi}=\alpha^{2}\ket{00}+\alpha\beta\left(\ket{01}+\ket{10}\right)+\beta^{2}\ket{11}$, which is a sum of 3 stabilizer states. This in turn gives a scaling $2^{log_{2}(3)n/2}=2^{0.79n}$ for n copies of any resource state, and implies that mixing resources is a good strategy for maximising stabilizer rank.

It would be interesting to try to extend this minimal spanning space for product states to arbitrary states. One current idea is that the two-fold product state is spanned by the stabiliser states $\ket{00}, \ket{11}$ and $\ket{01}+\ket{10}$. If we construct the projector on to the +1 eigenspace of these three stabilizer groups, it seems to give the Identity operator. This is slightly suspicious, as we explicitly know that for example the state $\ket{H}\otimes\ket{\sqrt{T}}$ has $\chi=4$. But it's possible that this works for the reduced space $SU(2)\otimes SU(2)$, where the generators of the group for an operator basis...?. This is slightly off as the states are vectors on $\mathbb{C}^{2}$ but is an idea worth testing w/ brute force for 3 qubits (namely, can we find a stabilizer rank less than 6 for an arbitrary state on 3 qubits).

Searching using the random walk code gives some interesting examples for how the stabilizer rank grows over 2-4 qubits; here are the results found:

|State|2|3|4| |---|---|---|---| |$H$|2|3|4| |Random|3|4|~6| |$\sqrt{T}$|3|4|5| |$T^{\frac{1}{4}}$|3|4|~9|

### Bounds on $\chi$ and other observations

In the BSS paper in Appendix C, a bound is proved on the stabilizer rank of $n$ magic states: $\chi(\ket{H}^{\otimes n}=\Omega(\sqrt{n})$. They do this by constructing a state that has $2^{n}$ distinct amplitudes in the computational basis. Each stabilizer state has $\order{1}$ disticnt amplitudes, suggesting that $C^{\chi(\phi_n)}\geq 2^{n}$. This implies that $\chi(\phi_{n})=\Omega(n)$.

They then prove that the state can be constructed out of a finite number of magic states $\order{k^{2}}$. This gives $\chi(\phi_{n})=\chi(\ket{H}^{\otimes n^{2}}\geq \Omega(n)$, and taking the square root of each side using the multiplicativity of the stabilizer rank gives the stated bound.

Using a similar argument then, consider an arbitrary $n$-fold product state $\ket{\psi}^{\otimes n}$. This state has $n+1$ distinct amplitudes in the computaitional basis, giving a weak lower bound $\chi(\psi_{n})=\Omega(\log(n+1))$. This method is worth playing with further. Using the T-count of an arbitrary unitary is one route we could explore, and may in fact give a bound on the approximate stabilizer rank of the edge-type magic states.

In the paper, BSS also make a few other interesting observations. One point is that, for $n\leq 5$, the state $\ket{H}^{\otimes n}$ lies in the space spanned by the symmetric stabilizer states only (states invariant under a permutation of qubits. Note: Does this correspond to a permutation of the stabilizers?). This is no longer true for $n=6$. Why is that? Is that useful at all?

They also note that all the terms in the decompositions they find using simulated annealing live in the field $Z[\sqrt{2}]$. A similar result perhaps exists for the face-state, though the field would also have a root $\omega=e^{i\pi/4}$. These fields could be a way to think about the maths of arbitrary states? The complex element is given by the phase, and the rational root is given by $\tan(\theta)$ where $\theta=\cos^{-1}\left(\text{Tr}\left(\sigma_{z}\rho_{\psi}\right)\right)$.

## Stabilizer Rank and Gate Synthesis

The stabilizer rank has a few interesting properties. For one, it is Clifford invariant, and monotonically decreasing under Pauli mesurements. This suggests that when we build a gate out of $t$ copies of the T magic state, using for example Peter Selinger's synthesis algorithm, the stabilizer rank of the resulting Gate (which is related to a state by the Choi-Jamiolkowski isomorphism) is strictly bounded by the rank of the $t$ magic states. Currently, this bound is $\sim 2^{0.47t}$. There is an interesting interpretation here about the power of $\epsilon$ approximate gate synthesis with $T$ gates.

As a suggestion, it would be interesting to try and evaluate:

1. The measure of the Clifford group in $SU(2)$.
2. The measure of states synthesis with $n$ T gates in $SU(2)$.

## Stabilizer Rank March Meeting

On March 17th myself, Dan Browne, Earl Campbell and Luke Heyfron met to discuss progress on understanding the Stabilizer Rank measure. The main developments from this meeting include numerical analysis of the generalisation of approximate stabilizer rank via random codes, and an application of the study of symmetric subspaces to attacking how stabilizer rank grows for many copies of a stabilizer state.

### Reducing the Hitting Set

We might ask if the example given at the end of the $C_{3}$ hitting set argument can be used to reduce e.g. $T_{1}\otimes T_{2}\otimes T_{3}$ to a circuit with only one $T$ gate. It is argued that the reduction of a factor of two is maximal. In particular, this argument is based on writing the circuit as a phase polynomial given by a binary matrix. In this case, the circuit $T^{\otimes n}$ is represented by the identity matrix. A Clifford transform of the circuit corresponds to a linear transform on the matrix, in this case giving the actual matrix. We know that the resulting circuit acting on the qubits outside the hitting set must be built of Clifford operations only, and this translates to a criterion of tri-orthogonality. It is also the case that the non-hitting-set chunk must be contained in the dual of the hitting-set component. From dimensionality arguments, we can thus show that the dimension of the hitting-set must be equal to that outside it, giving a bound of $\frac{n}{2}$ for the hitting set of $CT^{\otimes n}C^{\dagger}:C\in\mathcal{C}_{2}$.

However, this is premised on unitary equivalence of circuits. For example, consider synthesising a $CCZ$ resource state, which has a circuit that requires 7 $T$ gates. No smaller unitary equivalent circuit is known. However, a known case found by Cody Jones can construct a $CCZ$ state from a small circuit built out of 4 $T$ gates, where the resource state is Clifford equivalent, but the circuits are not. The Clifford invariance of the Stabilizer Rank of a state might serve as an interesting route to examine this difference.

A related conjecture Earl made is that this hitting set for the $n$-fold T gate should be the 'worst-possible' case. More formally where $S(U)$ denotes the hitting set of $U$ and $n$ is the number of qubits.

### Symmetric Subspaces

Here, we try to examine if the permutation symmetries of multiple copies of a resource state can help us to bound its stabilizer rank. As described above, this is motivated by the fact that $\ket{\psi}^{\otimes 2}\leq 3\forall \ket{\psi}\in\mathbb{C}^{2}$. My results from the stabilizer search package for 3 and 4-fold copies of Haar random states in turn suggest bounds of $\chi\leq 4$ and $\chi\leq 5$ for the two cases respectively.

The symmetric subspace of an $n$-qubit state is spanned by a set of $n+1$ states, given by $\ket{\psi_{i}}=\sum_{x\in\mathbb{F}_{2}^{n}:|x|=i}\ket{x}$, up to normalisation. In general these sums of equal weight strings are NOT stabilizer states, but can be combined to create them. We will denote these states as $\ket{D_{i}}$ where $i$ is the weight of the strings in the sum, and the D is chosen for Dicke state.

We note that $\sum_{i}D_{i}=\ket{+^{\otimes n}}$, a Stabilizer state. For $n=3$ qubits, consider the 4 states $S_{n}^{i}\sum_{j}\ket{D_{j}}$ where $i\in\{0,1,2,3\}$ and $S_{n}$ is the $n$-fold $S$ gate. This gives a state $S^{j}\sum_{k}\ket{D_{k}}=\sum_{k}i^{jk}\ket{D_{k}}\equiv\ket{S_{j}}$. From the sum of roots of unity, we can see that these 4 states span the symmetric subspace, as $D_{j}=\sum_{k}i^{jk}\ket{S_{k}}$. This thus gives us a bound $\chi(\ket{\psi}^{\otimes 3})\leq 4$ which agrees with the numeric result above.

We can extend this argument to 5 qubits, using the 4 $S_{m}$ states and the fact that $D_{0,n}$ are stabilizer staes on $n$ qubits. Similarly, this would suggest bounds of

|$n$ copies|2|3|4|5| |---|---|---|---|---| |$\chi\leq$|3|4|5|6|

which translates to a bound on the stabilizer rank of an $n$-fold single qubit state of $\chi(\ket{\psi}^{\otimes n})\leq 2^{\frac{n\log_{2}(6)}{5}}\approx 2^{0.52 n}$.

### Random Codes

Finally, we note an open question on the what controls the size of the approximate stabilizer rank. As discussed above, this has been generalised for all $\mathcal{C}_{3}$ states and is proportional to $\frac{1}{f}$ where $f\equiv\text{max}_{\ket{\phi}:\exists\mathcal{S}_{\phi}}|\braket{\phi}{\psi}|^{2}$. The $\mathcal{C}_{3}$ states this has been tested have symmetric overlap with sets of stabilizer states used in their random codes, and so we are interested in generalising this argument:

## Updates since March

Since the March meeting, we have continued to work on the Stabiliber Rank problem, considering several facets. Numeric tools have improved with a C++ library for generating stabilizer states, and a cythonized version of the random walk, as well as switching to the numpy-accelerated QR decomposition to build projectors. This has been used to confirm the numeric results of Bravyi and Gosset as well as our symmetric subspace ideas on single qubits, all the way to 10 qubits. We now have the following

|$n$ copies|1|2|3|4|5|6|7|8|9|10| |---|---|---|---|---|---|---|---|---|---|---| |$\chi\left(\text{magic}\right)\leq$|2|2|3|4|6|7|14|14|21|28| |$\chi\left(\text{arbitrary\right)\leq$|2|3|4|5|6|8|14|24|30|36|

We note that the bounds are never smaller than the multiplicative limit above 7 qubits, and that the stabilizer rank for magicstates and arbitrary states coincides at n=7. This i particularly interesting as it suggests we have found the onset of an exponential growth in the stabilizer rank (reassuringly). The existence of the arbitrary state decompositions suggests a bound on the stabilizer rank of ay circuit built out of Clifford gates and arbitrary single qubit rotations. If we have a set of rotations $\{i\}$, each of which occur $t_{i}$ times, then the stabilizer rank is bounded by

This bound only applies for single qubit states, but we can use the notion of 't-designs' to bound the Stabilizer rank for larger resource states.

A projective $t$-design is a configuration of vectors evenly distributed on the complex unit sphere $\mathbb{C}^{d}$. Let us define $P_{[d, t]}$ the projector on to the $t$-partite symmetric subspace of $\left(\mathbb{C}^{d}\right)^{\otimes t}$, and $D_{[d, t]}$ is the dimension of this subspace given by $ .

A set of $K$ vectors $\{\ket{\psi_{j}}\right}$ is a projective $t$-design iff

In our case, $d=2^{n}$ for an $n$-qubit stabilizer state. Stabilizer states are known to be a projective $t$-design for $t\leq 3$. We can use this to say that the Stabilizer rank of 3 copies of an arbitrary $n$ qubit state is less than or equal to $D_{[2^{n}, t]}$ for $t\leq 3$.

For two qubits, we have an extended result. Consider the fact that the set of $t$-fold copies of Stabilizer states on 2 qubits $S_{2,t}$ will span the symmetric subspace if and only if there exists a state in the Symmetric subspace that is not orthogonal to every vector in $S_{2,t}$.

Using the 'Majorana form', we are able to write out the elements of $Sym_{2,t}$ as a sum of permutations of products of two-qubit states. This lets us re-write the inner product we want consider as where $K$ is a normalisation constant and $N$ is the number of permutations of the individual $\psi_{k}$ that build up to the symmetric state on $\left(\mathbb{C}^{2^{n}}\right)\^{\otimes t}$. For this to be always non-zero, it must contain every stabilizer state. Since there are $6$ single-qubit stabilizer states, we need $t\geq 6$ (???), and so we can extend this result to $5$ copies in the two-qubit state case (???).

### Stabilizer Fidelity

The stabilizer fiedlity is a term that appears in the size of the approximate stabilizer rank decompositions of a $\matcal{C}_{3}$ resource state, and is defined as ^{2} where $\exists \mathcal{S}_{\phi}$ is the requirement that this is a stabilizer state, and $\ket{R}$ is our n-qubit $\mathcal{C}_{3}$ resource state. As a shorthand, we will denote this as $F_{R}$.In particular, for our bound to be tight, we want to ask if $F_{R^{\otimes t}}\leq F_{R}^{t}\forall \ket{R}$.

The proof for single qubit states is relatively straightforward, and is based on the observation that all Stabilizer states are locally-Clifford equivalent to a graph state, and that graph state stabilizers must have a certain weight. (Fill this out with the note, you need to git pull...)

Bravyi & Gosset have shown, however, that this is likely not to be the case for $n$ qubit states for large n. This result hasn't been fully shared with us.

A related conjecture is the observation that $\chi\left(\ket{R}\right)\leq \frac{1}{F}$, which is tight for certain states. Currently we have made little progress on proving this conjecture, but one idea would be to exploit the local-Clifford equivalence to graph states which might allow us to constrain the number of classes of state we need to consider. TThis can be combined, interestingly, with the invariance of the Stabilizer Rank under clifford symmetries.

### The Bravyi-Gosset simulator

Mark Howard has, working with the code developed by Bravyi & Gosset, been able to implement the hidden shift simulation using our result to generate the approximate stabilizer rank decompositions of $\ket{CCZ}$ states. One interesting observation is that $\chi_{\epsilon}\left(\ket{T}^{\otimes 4}\right)\geq \chi_{\epsilon}\left(\ket{CCZ}\right)$, which means that we can more efficiently simulate circuits built out of Toffolis with our code.

I have successfully reimplemented the ExponentialSum subroutine of the Bravyi-Gosset simulator in C, leading to a 2x speedup. Further speedup would be possible if we switched much of the mathematics to use chars, and it is possible that there could be more efficient ways to implement the calculation itself as my currently version hews close to the B&G version.

## Thoughts on Stabilizer Rank: State of the Union

The stabilizer rank method is all about classical description of a Clifford+Resource picture of quantum mechanics. Given the current focus on contextuality (or, to tie in to Nadish's recent work, logical paradoxes), and it's coincidence with the boundaries of Stabilizer mechanics in odd-prim dimensionality, this makes Stabilizer Rank an intersting way to study the power of quantum computation.

The fact that the stabilizer rank grows slower than might be expected for magic states and arbtirary singlue qubit states is surprisng, but what is not clear is what this tells us about quantum computation. It's clear, from compilation work in the CLifford+T picture, that T-counts grow rapidly. This rapid growth would quickly offset any advantage given to us by the Stabilizer rank, in a sense protecting quantum computing. (It's important to remember, too, that a weak exponential is still eponential).

The advantage in the stabilizer rank is biggest when we have many copies of a state. This in turn trades off against the ballooning resource cost of picking a single non-CLifford gate for our compilation strategy. Naively, the way to maximise the Stabilizer Rank is to use a lot of arbitrary rotations. This is kind of equivalent to saying that the most efficient quantum computation would be if we have full control over the qubits.

Our work on the Stabilizer Rank for arbitrary states suggests that there is little change in stabilizer rank once we go above the third level of the Clifford hierarchy. This is another piece of evidence against any advantage in power from picking gates in higher levels of the hierarchy, but doesn't reflect at all on the resource costs of say synthilalting small-angle rotations versus magic state distillation and gate synethesis. Instead, we just have an abstract observation on the classical complexity of each type of rotation: still exponential, but equal for each rotation type.

What little we know about Stabilizer rank for many qubit states is also interesting. Similarly, the stabilizer rank of a $\ket{CCZ}$ is smaller than that of 4 $\ket{T}$s, and thus a Toffoli and a T have a similar classical complexity in this picture. It's not clear what this means in terms of picking a universal basis set. (My personal feeling would be a compilation scheme that allows us to mix flavours of diagonal injectable unitary, swapping between T, CS, CCZ and small angle rotations.)

It would also be interesting to extend the Stabilizer rank further into discussions of multiqubit unitaries. One example would be controlled roots of Z< such as those consumed in the QFT subroutine. There are few known gadgets for these kinds of gate other than a slightly odd decomposition given in Nielsen & Chuang, and so an analysis of their Stabilizer Rank could be instructive. This would also give us a neat example of the classical complexity of such a subroutine which is generally considered powerful.

### Simulation

The other side of the coin is using the approximate stabilizer rank for simulation. Again, the ideal scheme would be a simulator that can freely switch between the flavour of \9\mathcal{C}_{3}) gate, decomposing whichever flavour is the most efficient. This would likely tie closely to quesitons of gate synthesis, and would need some interesting heuristics on how to pick which is 'best' at any given moment. In any case, combining T and CCZ simulaion should be easy using a combination of Seilinger's T-syntehsis routine for single qubit unitaries, and the H+Toffioli basis for others.