An edge of a graph is called a bridge if removing it increases the number of connected components. A graph is called [tex]2[/tex]-edge-connected if it is connected and remains connected after removing any one of its edges (a graph with one vertex is also considered [tex]2[/tex]-edge-connected). The [tex]2[/tex]-edge-connected components of a graph are its maximal [tex]2[/tex]-edge-connected subgraphs. Prove that every simple graph [tex]G[/tex] satisfies [tex]|\mathrm{br}(G)|=c_2(G)-c(G)[/tex], where [tex]|\mathrm{br}(G)|[/tex] is the number of bridges, [tex]c_2(G)[/tex] is the number of [tex]2[/tex]-edge-connected components and [tex]c(G)[/tex] is the number of connected components of [tex]G[/tex].
Solution:
Fact [tex]1[/tex]: an edge [tex]e=xy[/tex] is a bridge if and only if it lies on no cycle. If [tex]e[/tex] lies on a cycle [tex]C[/tex], every walk using [tex]e[/tex] can be rerouted along the path [tex]C-e[/tex], so removing [tex]e[/tex] disconnects nothing. Conversely, if [tex]e[/tex] is not a bridge, then [tex]x[/tex] and [tex]y[/tex] are joined by a path in [tex]G-e[/tex], and this path together with [tex]e[/tex] forms a cycle.
Fact [tex]2[/tex]: removing a bridge [tex]e=xy[/tex] increases the number of components by exactly [tex]1[/tex]. Indeed, only the component containing [tex]e[/tex] changes, and every vertex [tex]w[/tex] of it is joined to [tex]x[/tex] in [tex]G[/tex] by a path; cutting this path at its first use of [tex]e[/tex] (if any) gives a path in [tex]G-e[/tex] from [tex]w[/tex] to [tex]x[/tex] or to [tex]y[/tex]. So this component splits into at most two parts, and into exactly two, because [tex]e[/tex] is a bridge.
Now let [tex]B[/tex] be the set of bridges of [tex]G[/tex] and let [tex]H=G-B[/tex] (the same vertices, without the bridges).
Step [tex]1[/tex]: [tex]c(H)=c(G)+|B|[/tex]. Remove the bridges one at a time. Removing edges creates no new cycles, so by Fact [tex]1[/tex] every remaining edge of [tex]B[/tex] is still a bridge of the current graph, and by Fact [tex]2[/tex] each removal increases the number of components by exactly [tex]1[/tex].
Step [tex]2[/tex]: the components of [tex]H[/tex] are exactly the [tex]2[/tex]-edge-connected components of [tex]G[/tex].
Every component [tex]K[/tex] of [tex]H[/tex] is [tex]2[/tex]-edge-connected. Let [tex]e[/tex] be an edge of [tex]K[/tex]. It is not a bridge, so by Fact [tex]1[/tex] it lies on a cycle [tex]C[/tex] of [tex]G[/tex]. No edge of [tex]C[/tex] is a bridge (each of them lies on [tex]C[/tex]), so [tex]C\subseteq H[/tex], and since [tex]C[/tex] is connected and contains [tex]e[/tex], we have [tex]C\subseteq K[/tex]. Replacing [tex]e[/tex] by the path [tex]C-e[/tex] in any walk in [tex]K[/tex] shows that [tex]K-e[/tex] is connected.
Every [tex]2[/tex]-edge-connected subgraph [tex]S[/tex] of [tex]G[/tex] lies in one component of [tex]H[/tex]. If [tex]S[/tex] contained a bridge [tex]e=xy[/tex], then [tex]S-e[/tex] would be connected, so [tex]x[/tex] and [tex]y[/tex] would be connected in [tex]G-e[/tex] and [tex]e[/tex] would lie on a cycle, contradicting Fact [tex]1[/tex]. Thus [tex]S\subseteq H[/tex], and being connected, [tex]S[/tex] lies in one component of [tex]H[/tex].
By these two statements, every component of [tex]H[/tex] is a maximal [tex]2[/tex]-edge-connected subgraph of [tex]G[/tex], and every maximal [tex]2[/tex]-edge-connected subgraph is contained in a component of [tex]H[/tex], hence equal to it (isolated vertices of [tex]H[/tex] are one-vertex components). Therefore
[tex]c_2(G)=c(H)=c(G)+|B|\ \Rightarrow\ |\mathrm{br}(G)|=c_2(G)-c(G)[/tex]