nLab
Seifert-van Kampen theorem