  We explore in detail the implementation of arbitrary abelian and non-abelian
symmetries in the setting of infinite projected entangled pair states on the
two-dimensional square lattice. We observe a large computational speed-up;
easily allowing bond dimensions $D = 10$ in the square lattice Heisenberg model
at computational effort comparable to calculations at $D = 6$ without
symmetries. We also find that implementing an unbroken symmetry does not
negatively affect the representative power of the state and leads to identical
or improved ground-state energies. Finally, we point out how to use symmetry
implementations to detect spontaneous symmetry breaking.
