Source: https://www.imj-prg.fr/~frederic.helein/cours/topo.pdf