Definition · Cut, crossing edge, spanning treeA cut of a graph is a partition of its vertices into a non-empty proper subset S and the rest. An edge crosses the cut if exactly one of its ends lies in S. A spanning tree is a subset of the edges that connects every vertex and contains no cycle; on a connected graph with V vertices it has exactly V - 1 edges. A minimum spanning tree is one of least total weight; there may be several.
Theorem · The cut propertyLet S be one side of a cut of a connected weighted graph, and let e be a crossing edge of least weight. Then some minimum spanning tree contains e. If e is the unique crossing edge of least weight, then every minimum spanning tree contains it.
Let T be a minimum spanning tree with e not in it, and write e as joining x in S to y outside it. T connects x to y, so adding e creates exactly one cycle, consisting of e and the tree path from y back to x.
That tree path starts outside S and ends inside it, so it contains at least one crossing edge; call one of them g. Then T with e added and g removed is connected — removing an edge of a cycle cannot disconnect anything — and has V - 1 edges, so it is a spanning tree.
Its weight is w(T) + w(e) - w(g), and w(e) ≤ w(g) because e is a lightest crossing edge. So the new tree weighs at most w(T), and since T was minimum it weighs exactly w(T) and is minimum too. That gives the first claim. For the second, if e is strictly lightest then w(e) < w(g) and the new tree would weigh strictly less than T, which is impossible — so no minimum tree can have omitted e.
□
The lab is built to make that proof checkable rather than believable. Give it a graph of at most seven vertices and it enumerates every spanning tree, totals each one, and reports how many are minimum and how many of them contain the lightest crossing edge. The verdict comes off the list.
Example · Six vertices, one cut, eight spanning treesThe lab opens on 1-2 4, 1-3 3, 2-3 2, 2-4 5, 3-4 7, 4-5 1, 5-6 6 with S = {1, 2, 3}. Two edges cross: 2-4 at weight 5 and 3-4 at weight 7, so the lightest crossing edge is 2-4. The enumeration finds 8 spanning trees in total, exactly 1 of them minimum, at weight 17; that tree is 1-3, 2-3, 2-4, 4-5, 5-6, and it contains 2-4. Kruskal's method on the same graph also returns 17.
That graph has distinct weights, so the minimum tree is unique and the distinction between some and every collapses. Sweeping every one of the 62 proper cuts of those six vertices, the lightest crossing edge is in a minimum tree every time, and where it is strictly lightest it is in all of them.
Where the two halves of the lemma come apart
Type a triangle with all three weights equal — 1-2 1, 2-3 1, 3-1 1 — and take S = {1}. Two edges cross, tied at weight 1. There are 3 spanning trees, all 3 minimum at weight 2, and each edge is in exactly 2 of them. So the lightest crossing edge is in SOME minimum tree and not in every one, and the panel reports the some-verdict as yes and the every-verdict as no, with the tie count beside it. That is the whole content of the second sentence of the theorem.
The same picture, read the other way
Theorem · The cycle propertyIf an edge is the unique heaviest edge on some cycle of the graph, then no minimum spanning tree contains it.
The argument is the exchange run backwards: a minimum tree containing that edge, with the edge removed, splits into two pieces, and the rest of the cycle must rejoin them with some strictly lighter edge, giving a lighter tree. The lab prints the per-edge count that settles this. On 1-2 1, 2-3 2, 3-4 3, 4-1 9, 2-4 4 there are 8 spanning trees, 1 of them minimum at weight 6, and two edges appear in none of the minimum trees: 4-1 at weight 9 and 2-4 at weight 4. The second is the interesting one — it is not the heaviest edge in the graph, it is the heaviest on the cycle 2, 3, 4.
Two things the lemma does not say
It does not say that taking the lightest edge at each vertex builds a tree. On 1-2 1, 2-3 5, 3-4 1, 4-5 6, 5-6 1 that rule selects three edges on six vertices and leaves three separate pieces — the lab reports all three figures. Every one of those three edges is in the minimum tree, which is the cut property doing its job; they are simply not enough of it, because the lemma is about one cut at a time and says nothing about what a family of cuts collectively covers.
And it does not say the lightest edge overall is in every minimum tree, although that happens to be true whenever it is uniquely lightest: take S to be one of its endpoints alone and it is the unique lightest crossing edge of that cut. What makes this worth stating is that the same trick does not extend — the second-lightest edge has no such argument, because the cut that isolates its endpoint may be crossed by the lightest edge as well.
The measured figure and the proved claim, one more time. The panel's numbers — 8 spanning trees, 1 minimum, weight 17, verdict yes — are about the graph on screen and the cut you chose. The theorem is about every graph and every cut, and the enumeration cannot reach it: seven vertices is where the lab stops, and it declines above that rather than running slowly. The exchange argument is what covers the rest.