Source: https://www.lpthe.jussieu.fr/~teber/Teaching/poly_TQC_part.pdf