Existing in Mathlib · Combinatorics
Tutte’s Perfect-Matching Theorem
A finite graph can pair every vertex with exactly one neighbor if and only if every possible deletion of vertices leaves at most one odd connected component per deleted vertex.
- perfect matchings
- odd components
- vertex deletion
- Tutte violators
- finite simple graphs
Exact theorem
Exact Mathlib statement
theorem SimpleGraph.tutte {V : Type*} {G : SimpleGraph V} [Finite V] : (∃ M : G.Subgraph, M.IsPerfectMatching) ↔ ∀ u : Set V, ¬ G.IsTutteViolator uThe theorem at a glance
Tutte’s Perfect-Matching Theorem at a glance
A visual guide to the theorem's hypotheses, structure, and conclusion; the exact statement gives the formal detail.
Tutte’s Perfect-Matching Theorem at a glance

Detailed visual description
The poster makes the universal condition primary, contrasts it with a count-correct violating-set certificate, and then follows the source through odd-component exits, a maximal matching-free supergraph, clique components or near-matchings, and an alternating-cycle contradiction.
Statement structure
Statement and scope
Read the exact Mathlib declaration
This map summarizes the statement's structure; the exact Mathlib declaration remains authoritative.
Perfect matchings and the odd-component condition

Detailed visual description
One finite graph is viewed through a spanning matching and through the universal deletion test. Stroke, shape, and grouping distinguish matched pairs, removed vertices, odd components, and even components without relying on color alone.
Why it matters
A mathematical landmark
Tutte’s theorem is the definitive structural criterion for perfect matchings in general finite graphs. Mathlib formalizes the obstruction as an explicit Tutte-violator predicate and proves both necessity and sufficiency.
ProofAtlas record
What has been checked
Mathlib is the source of the theorem; the local Lean replay and page review are separate.
Claim boundary
No new theorem is claimed
This page indexes Mathlib’s existence criterion for perfect matchings in arbitrary finite simple graphs. IsTutteViolator expands to |u| < q(G-u), where q counts odd-cardinality connected components after deleting u. The theorem quantifies over every vertex subset and proves existence, not uniqueness, a construction, an efficient algorithm, a weighted or infinite extension, or anything about the Tutte polynomial.
- ProofAtlas did not originate Tutte’s theorem or Mathlib’s declaration.
- The theorem is not a matching algorithm or uniqueness result.
- It concerns finite simple graphs, not multigraphs, weighted graphs, or infinite graphs.
- The generated explanation and visuals are not proof evidence.
Source and local evidence
Where the theorem comes from
- Existing declaration
SimpleGraph.tuttein mathlib- Relationship
- The checked artifact is the upstream declaration itself
- Local Lean evidence
artifact.library.mathlib.tutte-theorem.v001