  The quantum logic gates used in the design of a quantum computer should be
both universal, meaning arbitrary quantum computations can be performed, and
fault-tolerant, meaning the gates keep errors from cascading out of control. A
number of no-go theorems constrain the ways in which a set of fault-tolerant
logic gates can be universal. These theorems are very restrictive, and
conventional wisdom holds that a universal fault-tolerant logic gate set cannot
be implemented natively, requiring us to use costly distillation procedures for
quantum computation. Here, we present a general framework for universal
fault-tolerant logic with stabiliser codes, together with a no-go theorem that
reveals the very broad conditions constraining such gate sets. Our theorem
applies to a wide range of stabiliser code families, including concatenated
codes and conventional topological stabiliser codes such as the surface code.
The broad applicability of our no-go theorem provides a new perspective on how
the constraints on universal fault-tolerant gate sets can be overcome. In
particular, we show how non-unitary implementations of logic gates provide a
general approach to circumvent the no-go theorem, and we present a rich
landscape of constructions for logic gate sets that are both universal and
fault-tolerant. That is, rather than restricting what is possible, our no-go
theorem provides a signpost to guide us to new, efficient architectures for
fault-tolerant quantum computing.
