Let [a (1), a (2), ..., a (n-1)] be a sequence of edges selected from E for constructing an MST group G by the Kruskal algorithm (in the order of their choice, weight (a (i) ) <= weight (a (i + 1))).
Now we will consider how the Kruskal algorithm behaves as an input E '= EU {e}. Let i = min {i: weight (e) weight (a (i))}. First, the algorithm decides to select the edges [a (1), ..., a (i - 1)] (e has not yet been processed, so it behaves the same). Then we need to decide that e - if e is omitted, the solution for E 'will be the same as for E. So, let the first i edges selected by the algorithm, [a (1), ..., a (i - 1) , e] - call this new sequence a '. The algorithm continues - while its next options (for j> i) satisfy the condition a (j) = a (j - 1), we are healthy. There are two scenarios that break such a large strip (let them say that the strip is divided into index k + 1):
1) The algorithm selects some edge e ', which is not in T, and the weight (e') <weight (a (k + 1)). Currently "sequence:
[a (1), ..., a (i-1), e, a (i), a (i + 1), ..., a (k-1), a (k), e ']
But if it was possible to add e 'to this list, it would be possible to add it to [a (1), ..., a (k-1), a (k)]. But Kruskal's algorithm did not do this when searching for MST for G. This leads to a contradiction.
2) The algorithm is politely selected:
[a (1), ..., a (i-1), e, a (i), a (i + 1), ..., a (k-1), a (k)]
but decided to omit the edge a (k + 1). But if e was not in the list, the algorithm would decide to add (k + 1). This means that in the graph (V, {a (1), ..., a (k)}), the edge a (k + 1) will connect the same components as the edge e. And this means that after considering along the edge of the algorithm a (k + 1) in the case of G and G ', the division into related components (determined by the set of selected edges) is the same. Therefore, after processing, the algorithm (k + 1) will act identically in both cases.