Pushouts for putting together structures In Sannella and Tarlecki book "Foundations of algebraic specification and formal software development" they describe pushouts as:

Pushouts provide a basic tool for putting together structures of various kinds. Given two objects $A$ and $B$, a pair of morphisms $f:C \rightarrow A$  and $g: C \rightarrow B$ indicates a common source from which "parts" of A and B come. The pushout of $f$ and $g$ puts together $A$ and $B$ while identifying the parts coming from the common source as indicated by $f$ and $g$, but keeping the new parts disjoint.

My question is about the last line. I understand that a pushout puts $A$ and $B$ together but I dont understand what they mean when they say that it's able to identify parts from $C$ and that it keep the new parts disjoint.
I understand that this is a very specific question, thank you for any help.
 A: Consider, as a (very artificial) example, where I've made a slight effort to imagine when a pushout might be relevant in formal software development: $C$ is the integers, $A$ is the set of red vectors of integers, $B$ is the set of blue vectors of integers. (Red and blue mean whatever you want here: abstract labels, how they're displayed on a terminal, whatever.) Let the maps $f:C\to A$ and $g:C\to B$ send each integer to the corresponding length-$1$ vector. Then the pushout is the union of $A$ and $B,$ modulo the equivalence relation identifying $f(n)$ with $g(n)$ for every integer $n.$ That means it consists of two almost disjoint copies of the set of all vectors–red and blue vectors sitting in the same place–except that red and blue vectors of length $1$ become indistinguishable. Thus the "parts from $C$" (the length-1 vectors) have been identified, but the rest (red vectors and blue vectors of length greater than $1$) have been kept disjoint.
A: Suppose that $A$, $B$ and $C$ are sets, and that $f \colon C \to A$ and $g \colon C \to B$ are functions between these sets.
We have two kinds of elements in $A$: those elements which lie in the image of $f$ (and  thus come from $C$ via the map $f$) and those elements that don’t lie in this image.
This gives us a disjoint union
$$
  \newcommand{\dcup}{\mathbin{\dot{\cup}}}
  A = (A ∖ f(C)) \dcup f(C) \,.
$$
Let us abbreviate the set $A ∖ f(C)$ as $A'$, so that
$$
  A = A' \dcup f(C) \,.
$$
We have similarly the disjoint union
$$
  B = B' \dcup g(C)
  \quad \text{where} \quad
  B' = B ∖ g(C) \,.
$$
The sets $f(C)$ and $g(C)$ are the “parts” that come from $C$, whereas the sets $A'$ and $B'$ are the “new parts”.
The pushout in question will be of the form
$$
  A' \dcup I \dcup B' \,,
$$
with the set $I$ given by $(f(C) \amalg g(C)) / {∼}$, where $\sim$ is the equivalence relation generated by the conditions $f(x) ∼ g(x)$ for all $x ∈ C$.
Intuitively speaking, the set $I$ arises by putting the two sets $f(C)$ and $g(C)$ right next to each other, and then stitching them together so that $f(x)$ and $g(x)$ become the same (in $I$).
We thus “identify” $f(x)$ with $g(x)$ for every $x ∈ C$.
We see that the pushout consists of three disjoints parts: the new parts $A'$ and $B'$, and the identified part $I$.
We see in particular that $A'$ and $B'$ stay disjoint.
