Source: https://webusers.imj-prg.fr/~francois.le-maitre/enseignements/1718/logiqueetcomplexite/TD-1-corrige.pdf