the 2D Hubbard model on a torus, has a lot of symmetry. This symmetry can be used to block diagonalize the constraint matrices $\mathcal{L}$, allowing for a reduction of the computational cost of the SDP. Full exploitation of this symmetry allows us to push our calculations to reasonably sized lattices, up to $20\times20$ when only two-index conditions are imposed, and up to $6\times6$ with the three-index conditions included. We will impose three different symmetries: spin symmetry, translational invariance and the point-group symmetry of the lattice.

### Spin Symmetry

The invariance of the Hubbard Hamiltonian under rotations in spin space can be exploited by introducing the spin-averaged ensemble [@atomic]. The $\mathcal{G}$ condition, when defined in a spin-averaged way as: $$\mathcal{G}(\Gamma)^S_{ab;cd} = \frac{1}{2\mathcal{S} + 1}\sum_{\mathcal{M}}{\langle \Psi^{\mathcal{SM}}|}\left[a^\dagger_a \otimes \tilde{a}_b\right]^S \left(\left[a^\dagger_c \otimes \tilde{a}_d\right]^S\right)^\dagger{|\Psi^{\mathcal{SM}}\rangle}~,
\label{G_spin_averaged}$$ breaks down into four blocks, one $S=0$ block and three degenerate $S = 1$ blocks. This does not change the scaling of the algorithm, but elementary matrix computations are performed 32 times faster. Analogous results are obtained for the other constraints.

### Translational invariance

Because periodic boundary conditions are assumed, the Hamiltonian is invariant under lattice translations in both the $x$ and $y$ direction. It is straightforward to exploit this 