Two short proofs of the Perfect Forest Theorem

A perfect forest is a spanning forest of a connected graph $G$, all of whose components are induced subgraphs of $G$ and such that all vertices have odd degree in the forest. A perfect forest generalised a perfect matching since, in a matching, all components are trees on one edge. Scott first proved the Perfect Forest Theorem, namely, that every connected graph of even order has a perfect forest. Gutin then gave another proof using linear algebra. We give here two very short proofs of the Perfect Forest Theorem which use only elementary notions from graph theory. Both our proofs yield polynomial-time algorithms for finding a perfect forest in a connected graph of even order.


Introduction
We consider a graph G on n vertices. A spanning subgraph F of a graph G is called a perfect forest if • F is a forest • the degree of every vertex in F is odd • each subtree of F is an induced subgraph of G.
An important graph structure is a matching, which is a set of pairwise non-adjacent edges, that is without common vertices. A maximum matching is a matching that contains the largest possible number of edges, and such a matching is said to be perfect if it includes all the vertices in the graph [5]. It is well-known that a perfect/maximum matching in a graph can be found in polynomial time [2].
In the case of a connected graph G on n vertices, n is even, without a perfect matching, one would like to find other structures that are in a sense reminiscent of perfect matchings. Clearly in a perfect matching each edge is induced and both degrees are odd. This leads to the above definition of perfect forests. Establishing the existence of a perfect forest, and finding one in polynomial time are comparable to such questions with respect to perfect matchings.
Taking another point of view, the question of the maximum size of an induced subgraph of G with all degrees odd has also been treated in several papers, and is also related to perfect forests [1,6,7].
Scott [8] proved that every connected graph G with an even number of vertices contains a perfect forest. We call this the Perfect Forest Theorem. Scott's relatively long proof is graph theoretical and constructive. Gutin [3] provides a shorter proof using simple linear algebra arguments, which in turn can give a polynomial-time algorithm to find a perfect forest.
Gutin and Yeo have considered perfect forests in directed graphs in [4]. They consider four generalizations to directed graphs of the concept of a perfect forest and extend Scott's theorem to digraphs in a non-trivial way.
An interesting algorithmic application of perfect forests can be found in [9], where Sharan and Wigderson use perfect forests, which they call pseudomatchings, in an algorithm which yields a perfect matching in a bipartite cubic graph. This again justifies finding short proofs for the Perfect Forest Theorem, which yield a polynomial time algorithm.
Motivated by this interest, we provide two simple graph theoretic proofs of the Perfect Forest Theorem, one by induction on the number of vertices, and the other by induction on the number of edges. Both proofs yield a polynomialtime algorithm for finding a perfect forest in a graph with an even number of vertices.
In our proofs, we define the union of two graphs G 1 and G 2 , denoted by G 1 ∪G 2 , as the graph with vertex set V (G 1 )∪V (G 2 ) and edge set E(G 1 )∪E(G 2 ).

Two short proofs
We start with a simple lemma which will be used in the first proof.
Lemma 2.1. Let G be a connected graph on n vertices where n is even, and G is not a tree. Then G has a spanning tree with at least two vertices of even degree.
Proof. Let T be a spanning tree of G. Then clearly, the number of vertices of even degree must be even since the total number of vertices is even.
Let us assume that all vertices of T have odd degree. Since G is not a tree, there must be at least one edge e ∈ E(G\T ). Let this edge join the vertices u and v. Consider the tree T * obtained from T by adding the edge e and deleting the edge connecting u to w where w is the unique neighbour of u on the path from u to v in T . Then the degree of v and w are now even, and the spanning tree T * is as required.
Theorem 2.2. Let G be a connected graph on n vertices where n is even. Then G has a perfect forest.
Proof. First proof.
We prove this by induction on n. For n = 2, the statment is clearly true. So suppose n ≥ 4 is even.
1. If G is a tree with all degrees odd, then G is the required perfect forest.
2. If G is a tree with at least one vertex w of even degree, let the branches of w be B 1 , . . . , B t , where t is even. Then at least one of these branches, say B 1 , contains an even number of vertices, otherwise the number of vertices in G is odd. Let G 1 be the induced subgraph of G on B 1 , and G 2 the subgraphs induced by w and B 2 , . . . , B t . Clearly G 1 and G 2 are both connected and have even order, and hence by induction, there exists perfect forests F 1 and F 2 in G 1 and G 2 respectively. Hence, F 1 ∪ F 2 is a perfect forest of G.
3. If G is not a tree, then by Lemma 2.1, G has a spanning tree T with at least two vertices of even degree, and hence by the same argument presented in (2) above, T enables us to split G into two vertex-disjoint connected components each of even order, G 1 and G 2 , and applying induction on both components gives a perfect forest.
Remark: This proof tells us that either G is a tree with all vertices having odd degree or V (G) can be split as V = A ∪ B, A ∩ B = ∅ and both A and B induce connected components each of even order (hence induction applies) .
Now we give the second proof.

Second Proof.
We now use induction on the number of edges m. The case m = 1 is trivial. So assume m ≥ 2 and n is even. Consider G − e, for some e ∈ E(G).
1. Consider the case where G − e is disconnected. If the two components G 1 and G 2 each have an even number of vertices, then by the induction hypothesis, they each have a perfect forest F 1 and F 2 respectively, and F 1 ∪ F 2 is a perfect forest in G − e and hence in G.
If G 1 and G 2 each have an odd number of vertices, then consider G ′ 1 = G 1 + e and G ′ 2 = G 2 + e. Each has an even number of vertices because we are adding a new vertex to each, and hence by the induction hypothesis, they each have a perfect forest F ′ 1 and F ′ 2 respectively. But then F ′ 1 ∪ F ′ 2 is a perfect forest for G. So we put back the edge e into H − E(C), giving the graph H ′ , in which all vertices, including u and v, have odd order. Also, H ′ is induced in G by the key fact pointed out above. Therefore F ′ , the forest containing the union of H ′ and K rather than H and K, is a perfect forest in G.

If
Remark: Clearly, both proofs are constructive and can be implemented in polynomial time.

Conclusion
Perfect forests have attracted the attention of various graph theorists as one natural extension of the idea of perfect matchings. In the literature two proofs of the Perfect Forest Theorem were known, one using techniques from linear algebra. We here give two very short proofs which use only elementary notions from graph theory, both of which yield polynomial-time algorithms for finding a perfect forest in a graph of even order.