I'm working my way through MIT's 6.042, here's a question on bipartite graphs that's got me confused;
show union of matchings is bipartite
Here's my reasoning, based on the wording of the question we can't be sure that $G'$ is bipartite.
The definition for bi-partite is that nodes can be partitioned into two subsets of nodes, $V_L$ and $V_R$, where $V = V_L \cup V_R$, so that every edge has one node in $V_L$ and the other node in $V_R$ (or vice versa).
By definition, a matching produces a bipartite graph, because no two edges are incident to a common vertex. Suppose we remove all the edges from $G'$ that belong to $M_2$, to give us a bipartite graph $G* = (V, M_1)$.
Then, for each edge $m \in M_2$, we add it to $G*$, with the following cases,
Case 1: $m \in M_1$. Since the edge already exists, and edges are uniquely added to a set, m is ignored. The bipartite graph is unchanged, so it remains bipartite.
Case 2 $m \ni M_1$. This breaks down into two subcases.
Sub-Case 1: $m = \langle v_a — v_b \rangle. v_a \in V_L, v_b \in V_R$. That is, the edge is not in $M_1$, and connects a node in $V_L$ to a node in $V_R$. This fits the condition for being bipartite, and so the resulting graph is also bipartite.
Sub-Case 2: $m = \langle v_a — v_b \rangle. v_a,v_b \in V_L \text{ or } v_a,v_b \in V_R$. That is, the edge does not connect nodes in different partitions, it connects nodes in the same partition. But then, this means the graph is not bipartite, because not all edges connects nodes in opposite partitions.
So $G'$ is not always bipartite.
Clearly I've misunderstood something, but I can't see what. The top answer from the linked question gives a contradiction, but from what I understand that's only the case if we're talking about a perfect matching, which is not what the question asks. Since $M_1$ and $M_2$ are not perfect matchings, there's no guarantee that any given edge occurs in one, both or either of them.
I've added an example of this with a rendered graph on on my github pages where I'm writing everything up.
Any help with this question would be much appreciated!