# Double counting (proof technique)

In combinatorics, double counting, also called counting in two ways, is a combinatorial proof technique for showing that two expressions are equal by demonstrating that they are two ways of counting the size of one set. In this technique, which van Lint & Wilson (2001) call “one of the most important tools in combinatorics,” one describes a finite set X from two perspectives leading to two distinct expressions for the size of the set. Since both expressions equal the size of the same set, they equal each other.

## Examples

### Forming committees

One example of the double counting method counts the number of ways in which a committee can be formed from n people, allowing any number of the people (even zero of them) to be part of the committee. That is, one counts the number of subsets that an n-element set may have. One method for forming a committee is to ask each person to choose whether or not to join it. Each person has two choices – yes or no – and these choices are independent of those of the other people. Therefore there are 2 × 2 × ... × 2 = 2n possibilities. Alternatively, one may observe that the size of the committee must be some number between 0 and n. For each possible size k, the number of ways in which a committee of k people can be formed from n people is the binomial coefficient

${n \choose k}.$

Therefore the total number of possible committees is the sum of binomial coefficients over k = 0, 1, 2, ... n. Equating the two expressions gives the identity

$\sum_{k=0}^n {n \choose k} = 2^n,$

a special case of the binomial theorem. A similar double counting method can be used to prove the more general identity

$\sum_{k=d}^n {n\choose k}{k\choose d} = 2^{n-d}{n\choose d}$

### Handshaking lemma

Another theorem that is commonly proven with a double counting argument states that every undirected graph contains an even number of vertices of odd degree. That is, the number of vertices that have an odd number of incident edges must be even. In more colloquial terms, in a party of people some of whom shake hands, an even number of people must have shaken an odd number of other people's hands; for this reason, the result is known as the handshaking lemma.

To prove this by double counting, let d(v) be the degree of vertex v. The number of vertex-edge incidences in the graph may be counted in two different ways: by summing the degrees of the vertices, or by counting two incidences for every edge. Therefore

$\sum_v d(v) = 2e\,$

where e is the number of edges. The sum of the degrees of the vertices is therefore an even number, which could not happen if an odd number of the vertices had odd degree. This fact, with this proof, appears in the 1736 paper of Leonhard Euler on the Seven Bridges of Königsberg that first began the study of graph theory.

### Counting trees

Cayley's formula implies that there is 1 = 22 − 2 tree on two vertices, 3 = 33 − 2 trees on three vertices, and 16 = 44 − 2 trees on four vertices.
Adding a directed edge to a rooted forest

What is the number Tn of different trees that can be formed from a set of n distinct vertices? Cayley's formula gives the answer Tn = nn − 2. Aigner & Ziegler (1998) list four proofs of this fact; they write of the fourth, a double counting proof due to Jim Pitman, that it is “the most beautiful of them all.”

Pitman's proof counts in two different ways the number of different sequences of directed edges that can be added to an empty graph on n vertices to form from it a rooted tree. One way to form such a sequence is to start with one of the Tn possible unrooted trees, choose one of its n vertices as root, and choose one of the (n − 1)! possible sequences in which to add its n − 1 edges. Therefore, the total number of sequences that can be formed in this way is Tnn(n − 1)! = Tnn!.

Another way to count these edge sequences is to consider adding the edges one by one to an empty graph, and to count the number of choices available at each step. If one has added a collection of nk edges already, so that the graph formed by these edges is a rooted forest with k trees, there are n(k − 1) choices for the next edge to add: its starting vertex can be any one of the n vertices of the graph, and its ending vertex can be any one of the k − 1 roots other than the root of the tree containing the starting vertex. Therefore, if one multiplies together the number of choices from the first step, the second step, etc., the total number of choices is

$\prod_{k=2}^{n} n(k-1) = n^{n-1} (n-1)! = n^{n-2} n!.$

Equating these two formulas for the number of edge sequences results in Cayley's formula:

$\displaystyle T_n n!=n^{n-2}n!$

and

$\displaystyle T_n=n^{n-2}.$

As Aigner and Ziegler describe, the formula and the proof can be generalized to count the number of rooted forests with k trees, for any k.