{
  "artifactId": "artifact.library.mathlib.tutte-theorem.v001",
  "candidateOnly": false,
  "category": "Combinatorics",
  "claimBoundary": "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.",
  "collectionSlug": "landmark-theorems-in-mathlib",
  "exactFormalStatement": "theorem SimpleGraph.tutte {V : Type*} {G : SimpleGraph V} [Finite V] : (∃ M : G.Subgraph, M.IsPerfectMatching) ↔ ∀ u : Set V, ¬ G.IsTutteViolator u",
  "family": "Matching theory",
  "id": "library.mathlib.tutte-theorem.v001",
  "links": {
    "collection": "/collections/landmark-theorems-in-mathlib/",
    "collectionData": "/data/collections/mathlib-landmarks.json",
    "entry": "/library-theorems/tutte-theorem/",
    "entryData": "/data/library-theorems/tutte-theorem.json",
    "evidence": "/proofs/artifact.library.mathlib.tutte-theorem.v001.html",
    "evidenceData": "/data/proofs/artifact.library.mathlib.tutte-theorem.v001.evidence.json",
    "source": "/sources/upstream/tutte-theorem/"
  },
  "landmark": {
    "completeFormalType": "theorem SimpleGraph.tutte {V : Type*} {G : SimpleGraph V} [Finite V] : (∃ M : G.Subgraph, M.IsPerfectMatching) ↔ ∀ u : Set V, ¬ G.IsTutteViolator u",
    "concepts": [
      "perfect matchings",
      "odd components",
      "vertex deletion",
      "Tutte violators",
      "finite simple graphs"
    ],
    "plainLanguage": "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.",
    "poster": {
      "alt": "An editorial theorem poster pairs the perfect-matching criterion with a violating-set obstruction and the source’s contrapositive proof architecture.",
      "byteSize": 2460535,
      "caption": "Perfect matchings exist precisely when no vertex deletion leaves too many odd components.",
      "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.",
      "derivatives": [
        {
          "byteSize": 107314,
          "height": 960,
          "mediaType": "image/webp",
          "publicPath": "/assets/library-theorems/tutte-theorem/theorem-poster-v1-640.webp",
          "sha256": "sha256:3bfe867aefb966e69fc57f8987be845d403cdd57dc3e9752ca12afc15c3e9618",
          "width": 640
        },
        {
          "byteSize": 214420,
          "height": 1536,
          "mediaType": "image/webp",
          "publicPath": "/assets/library-theorems/tutte-theorem/theorem-poster-v1-1024.webp",
          "sha256": "sha256:9d75a983840376188d06bbd9f7b9285807fe67edaa53bc7402ba8d3fa9f9b038",
          "width": 1024
        }
      ],
      "generatedAt": "2026-07-25T01:44:43.920261972-04:00",
      "height": 1536,
      "mediaType": "image/png",
      "modelRequested": "gpt-image-2",
      "publicPath": "/assets/library-theorems/tutte-theorem/theorem-poster-v1.png",
      "sha256": "sha256:ed22a0c538038673f966eb0669d74ed4fa46fd4c3d4d673d83753aded268758b",
      "title": "Tutte’s Perfect-Matching Theorem at a glance",
      "width": 1024,
      "kind": "theorem_poster",
      "transcript": "TUTTE’S PERFECT-MATCHING THEOREM\nFINITE SIMPLE GRAPH G\nG HAS A PERFECT MATCHING\n⇔\nq(G − U) ≤ |U| FOR EVERY U ⊆ V\nq(G − U) = NUMBER OF ODD COMPONENTS AFTER DELETING U\nA VIOLATING SET CERTIFIES FAILURE\nPERFECT MATCHING → DISTINCT EXITS FROM ODD COMPONENTS\nNO MATCHING → MAXIMAL COUNTEREXAMPLE\nCLIQUES OR TWO NEAR-MATCHINGS\nALTERNATING CYCLES FORCE A CONTRADICTION\nEXACT SCOPE\nExistence, not uniqueness · finite simple graphs · not a matching algorithm"
    },
    "visual": {
      "alt": "The same finite graph is shown with a perfect matching and after deleting a vertex set, where odd remaining components are balanced against the deleted vertices.",
      "byteSize": 1987146,
      "caption": "A finite graph has a perfect matching exactly when q(G−U) never exceeds |U|.",
      "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.",
      "derivatives": [
        {
          "byteSize": 36706,
          "height": 427,
          "mediaType": "image/webp",
          "publicPath": "/assets/library-theorems/tutte-theorem/theorem-schematic-v1-640.webp",
          "sha256": "sha256:d10778a565bf1dc2fe225b62122d255f50d40735348138693a7b48d6426587d6",
          "width": 640
        },
        {
          "byteSize": 83660,
          "height": 800,
          "mediaType": "image/webp",
          "publicPath": "/assets/library-theorems/tutte-theorem/theorem-schematic-v1-1200.webp",
          "sha256": "sha256:efdeec4d8e57aa3a3faf7a6e753134c3237d44c79ec079f4876c5f9fa3df0f2a",
          "width": 1200
        }
      ],
      "generatedAt": "2026-07-25T01:50:23.603320986-04:00",
      "height": 1024,
      "mediaType": "image/png",
      "modelRequested": "gpt-image-2",
      "publicPath": "/assets/library-theorems/tutte-theorem/theorem-schematic-v1.png",
      "sha256": "sha256:bad3daebe3d28b789c352289bf8e2dbd9c8c5b988cf45cdb57094307dc0b684b",
      "title": "Perfect matchings and the odd-component condition",
      "width": 1536
    },
    "walkthrough": null,
    "whyLandmark": "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."
  },
  "nonClaims": [
    "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."
  ],
  "publicExportEligible": true,
  "relationship": "upstream_direct",
  "schemaVersion": "library-theorem-entry-data.v1",
  "statementId": "statement.library.mathlib.tutte-theorem.v001",
  "statusAxes": {
    "acceptedAtlasResult": "Not recorded for the preferred artifact",
    "locallyReproduced": "Exact upstream declaration replayed",
    "reviewedPage": "Current public presentation reviewed",
    "upstreamIndexed": "Pinned source bytes verified locally"
  },
  "summary": "A finite simple graph has a perfect matching exactly when deleting any vertex set leaves no more odd components than deleted vertices.",
  "targetId": "target.library.mathlib.tutte-theorem.v001",
  "title": "Tutte’s Perfect-Matching Theorem",
  "upstreamOrigin": {
    "declarationName": "SimpleGraph.tutte",
    "immutableSourceUrl": "https://github.com/leanprover-community/mathlib4/blob/5e932f97dd25535344f80f9dd8da3aab83df0fe6/Mathlib/Combinatorics/SimpleGraph/Tutte.lean#L315",
    "packageName": "mathlib",
    "repositoryUrl": "https://github.com/leanprover-community/mathlib4",
    "sourceArtifactHash": "sha256:47072b914aa564222ef8013092c38fa62227fea8230e308cc3eb5f11afcdffc3",
    "sourceByteLength": 17580,
    "sourceCommit": "5e932f97dd25535344f80f9dd8da3aab83df0fe6",
    "sourceFile": "Mathlib/Combinatorics/SimpleGraph/Tutte.lean",
    "sourceLine": 315,
    "verificationKind": "git_worktree"
  },
  "publicPresentationReview": {
    "status": "reviewed"
  }
}
