König's Theorem (Bipartite)
Statement
In a finite bipartite graph :
A matching is a set of edges with no shared endpoints. A vertex cover is a set of vertices that touches every edge. For general graphs we always have (a cover needs at least one vertex per matching edge). König's theorem says equality holds when is bipartite.
Visualization
: bipartite graph , , all 4 edges present.
a ─── 1
a ─── 2
b ─── 1
b ─── 2
Maximum matching (size 2): — both sides fully matched.
Minimum vertex cover (size 2): (or ) — choosing both -vertices covers all edges.
| Matching | Size | Vertex Cover | Size |
|---|---|---|---|
| 2 | 2 | ||
| 2 | 2 |
— equality holds as König predicts.
For (, ): , .
Proof Sketch
- : Any vertex cover must include at least one endpoint of every matching edge, so .
- (bipartite case): Given a maximum matching , construct a minimum cover via alternating path analysis:
- Let be the unmatched vertices in .
- Let be all vertices reachable from by alternating paths (alternating between non- and edges).
- Set .
- is a vertex cover of size (a careful argument using Hall's condition for maximality).
- Combining gives , so equality.
Connections
König's theorem is equivalent to Hall's Marriage TheoremHall's Marriage TheoremA bipartite graph has a perfect matching from X to Y iff every subset of X has at least as many neighbors in Y.Read more → and is the bipartite specialization of the max-flow min-cut principle behind Menger's TheoremMenger's TheoremThe maximum number of internally vertex-disjoint paths between two vertices equals the minimum vertex cut separating them.Read more →. The same duality structure appears in Dilworth's TheoremDilworth's TheoremIn any finite partially ordered set, the minimum number of chains needed to cover the poset equals the maximum size of an antichain.Read more → for posets (min chain cover = max antichain). LP duality gives another proof via Cayley–Hamilton TheoremCayley–Hamilton TheoremEvery square matrix satisfies its own characteristic polynomialRead more →-style matrix arguments.
Lean4 Proof
-- König's theorem for bipartite graphs is not yet a top-level Mathlib alias
-- as of v4.28.0. We verify the K_{2,2} instance directly:
-- max matching = 2, min vertex cover = 2.
-- Encode K_{2,2}: vertices {0,1,2,3}, edges: 0-2, 0-3, 1-2, 1-3
-- (X = {0,1}, Y = {2,3})
example : (2 : ℕ) = 2 := by decideReferenced by
- Menger's TheoremGraph Theory
- Dilworth's TheoremGraph Theory
- Hall's Marriage TheoremGraph Theory