The fundamental group of a union is the pushout of the groups of two open pieces over their intersection. I will separate the object being defined from the consequence being claimed.
Start locally
The fundamental group \(\pi_1(X,x_0)\) records based loops modulo based homotopy. A covering map \(p:\widetilde X\to X\) turns loop classes into endpoint data upstairs.
There are two layers here: the object \(\mathsf D\) and the law \(\mathsf C\). Writing them separately makes the direction of \(\Longrightarrow\) visible and keeps an accidental converse from slipping in.
Compute before generalising
A worked instance is useful here because it exposes every index that the compressed statement hides.
The global view
The two-row display is also a debugging tool: if the conclusion changes when only notation changes, some hidden choice has entered the argument.
Edge conditions
Basepoints matter for literal homomorphisms. Changing basepoint produces an isomorphism only after choosing a path, and the choice is visible up to conjugation.
I would use the boxed line as a reference later, while returning to the full display whenever a hypothesis becomes uncertain. That division keeps compression from becoming ambiguity.