Source: http://fabien.besnard.pagesperso-orange.fr/cours/EPF/complexes.pdf