1. Compilation/
  2. (Clifford + T) Gate Set

(Clifford + T) Gate Set

The (Clifford + T) gate set typically refers to the set of gates

(Clifford+T):={H,S,CNOT,T}.(\text{Clifford} + T) := \{H, S, \text{CNOT}, T\}.

It is universal in the sense that any quantum circuit can be approximated to arbitrary precision by this set of gates. One distinguishes between Clifford and non-Clifford gates, where the TT gate is a special case of a non-Clifford gate. In many fault-tolerant quantum computing settings, TT gates are considered the most expensive gates to implement, and their count is often the target metric to minimize in quantum compilation routines (see this blog post on T-gate optimization).

In most quantum error correction codes like the surface code, (Clifford + T) is the target gate set.

Inputs

  • Arbitrary circuit UU

Outputs

  • Approximated circuit U(Clifford + T)U_\text{(Clifford + T)}

Example

A Pauli rotation about a multiple of π2\frac{\pi}{2} is a Clifford operation. For example, we have

RZ(π2)=eiπ4S. R_Z\left(\frac{\pi}{2}\right) = e^{-i \frac{\pi}{4}} S.

However, in general, Pauli rotations are realized by a series consisting of phase gates SS, Hadamard gates HH and, in particular, TT gates. For example, RZ(π128)R_Z\left(\frac{\pi}{128}\right) is realized by the series

SHTHTHTHTHTHTHTSHTHTHTHTSHTHTHTHTHTSHTSH THTHTHTHTSHTHTHTSHTSHTHTSHTSHTSHTHTHTHTS HTHTHTHTHTSHTSHTHTSHTHTSHTSHTSHTSHTHTSHT SHTSHTSHTHTHTSHTSHTSHTHTHTHTSHTHTSHTHTHT SHTHTHTHTSHTHTSHTHTSHTSHTSHTHTHTHTHTHTHT SHTHTSHTHTHTSHTSHTHTHTSHTSHTSHTHTSHTHTHT HTSHTSHTSHSSS

with a precision of 101010^{-10}.

Depending on the definition, Toffoli gates are not considered to be in (Clifford + T), but they can be decomposed in this gate set in the following way.

import pennylane as qml toffoli = qml.Toffoli([0, 1, 2]).decomposition() print(qml.draw(lambda: [qml.apply(op) for op in toffoli])())
0: ───────────╭●───────────╭●────╭●──T──╭●─┤ 1: ────╭●─────│─────╭●─────│───T─╰X──T†─╰X─┤ 2: ──H─╰X──T†─╰X──T─╰X──T†─╰X──T──H────────┤

Typical usage

In most error correction schemes, quantum circuits are assumed to be executed in the (Clifford + T) gate set, where Clifford gates are executed in a fault-tolerant way and TT gates are performed via magic state injection. A magic state H=0+eiπ41|H\rangle = |0 \rangle + e^{i \frac{\pi}{4}} |1\rangle can be used as a resource from an auxiliary wire to apply TT on an arbitrary state ψ|\psi\rangle in the following way.

0 : |ψ> ─╭●───────S─┤ T|ψ> aux: |H> ─╰X──┤↗├──║─┤ ╚═══╝

This is called magic state injection. Magic states can be created in a noisy way and purified using magic state distillation to arbitrary precision.

References

[1] "Universal Quantum Computation with ideal Clifford gates and noisy ancillas", Sergei Bravyi, Alexei Kitaev, arXiv:quant-ph/0403025, 2004

[2] "The Solovay-Kitaev algorithm", Christopher M. Dawson, Michael A. Nielsen arXiv:quant-ph/0505030, 2005

[3] "Optimal ancilla-free Clifford+T approximation of z-rotations", Neil J. Ross, Peter Selinger, arXiv:1403.2975, 2014


Cite this page

@misc{PennyLane-Clifford_T,
title={(Clifford + T) Gate Set},
howpublished={\url{https://pennylane.ai/compilation/clifford-t-gate-set}},
year={2025}
}

Page author(s)

Korbinian Kottmann

Korbinian Kottmann

Quantum simulation & open source software