[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"Bn1sHIXwq3":3},"\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"docs/assets/logo.svg\" width=\"150\" alt=\"Total Coloring Lean graph logo\">\n\n# Total Coloring Lean\n\nEvery finite graph $G$ with $|V(G)| \\le 2\\Delta(G)$ has a total coloring with $\\Delta(G)+3$ colors, and every finite member of the matching-plus-star auxiliary class $\\mathcal{A}_D$ has a proper $(D+2)$-edge coloring that is rainbow on its distinguished set; formalized in Lean 4 with Mathlib.\n\n[![Lean CI](https://github.com/chenle02/total-coloring-lean/actions/workflows/ci.yml/badge.svg)](https://github.com/chenle02/total-coloring-lean/actions/workflows/ci.yml)\n[![Lean](https://img.shields.io/badge/Lean-v4.32.0-153e63)](lean-toolchain)\n[![Mathlib](https://img.shields.io/badge/Mathlib-81a5d25-153e63)](https://github.com/leanprover-community/mathlib4/tree/81a5d257c8e410db227a6665ed08f64fea08e997)\n[![Release](https://img.shields.io/badge/release-v0.2.0-153e63)](https://github.com/chenle02/total-coloring-lean/releases/tag/v0.2.0)\n[![License](https://img.shields.io/badge/license-Apache--2.0-153e63)](LICENSE)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23452514.svg)](https://doi.org/10.5281/zenodo.23452514)\n[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-153e63)](https://chenle02.github.io/total-coloring-lean/)\n[![Sponsor](https://img.shields.io/badge/sponsor-GitHub-e11d48?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/chenle02)\n\n[What is proved](#what-is-proved) · [Verification page](docs/verification.md) · [Build](#build-and-verify) · [Cite](#citation)\n\n[Documentation](https://chenle02.github.io/total-coloring-lean/) · [Get started](docs/getting-started.md) · [Exact proof status](docs/proof-status.md) · [Theorem index](docs/theorem-index.md) · [LLM index](llms.txt)\n\n\u003C/div>\n\n## What is proved\n\nThirteen results, each stated exactly in the [verification section](#verification-at-a-glance) below.\nTwo are unconditional:\n\n- **High-degree total coloring**, `TotalColoring.exists_valid_assignment_of_highDegree`. Let $G$ be a\n  finite simple graph with decidable adjacency and $|V| \\le 2\\Delta(G)$. Then $G$ has a valid total\n  coloring with palette `ExtensionPalette (G.maxDegree + 1)`, that is, with $\\Delta(G)+3$ colors. The\n  empty vertex type is included and there is no parity hypothesis.\n- **Auxiliary rainbow edge coloring**, `TotalColoring.MinimalExtraction.hasValidRainbowColoring_of_inAuxiliaryClass`.\n  For every $D$ and every finite $(H,J)$ with `InAuxiliaryClass D H J`, the graph $H$ has a proper edge\n  coloring with palette `Fin (D + 2)` that is rainbow on $J$. It is derived from\n  `TotalColoring.IsOutsideEdgeMinimalNoncolorable.false_of_critical_allD`: no member is noncolorable and\n  minimal in the number of edges outside $J$.\n\nThe other results take their inputs as hypotheses:\n\n- reusable steps: the decoder `TotalColoring.Auxiliary.Extension.decode_valid` (a proper,\n  selector-rainbow edge coloring of $H$ decodes through a supplied extension datum to a valid total\n  coloring of $G$), the matching bound `TotalColoring.MatchingLowerBound.exists_matchingGraph_edgeFinset_card_ge`\n  (minimum degree $k$ and $2k \\le |V|$ give a matching with at least $k$ edges), the membership theorem\n  `TotalColoring.Auxiliary.PairSingletonWitness.isAuxiliaryClassMember_of_highDegree` (for a supplied\n  pair/singleton witness with $|J| = \\Delta(G)+1$ and $|V| \\le 2\\Delta(G)$), the partial-edge selector\n  decoder `TotalColoring.partialEdgeSelectorAssignment_valid`, and the checker soundness theorem\n  `TotalColoring.Certificate.checkExtension_sound`;\n- conditional endpoints: the transfer `TotalColoring.Auxiliary.Extension.exists_valid_decode_of_inAuxiliaryClass`\n  ($D+2$ colors from a supplied extension into an auxiliary-class member whose selectors lie in $J$),\n  the partition entry point\n  `TotalColoring.Auxiliary.EquitableIndependentPartition.exists_valid_assignment_of_highDegreePartition`\n  ($\\Delta(G)+3$ colors from a supplied equitable independent partition into $\\Delta(G)+1$ classes, nonempty\n  $V$), and three $(q+1)$-color endpoints, each from a supplied proper $q$-edge coloring and supplied\n  certificates: `TotalColoring.exists_valid_assignment_of_independentSeedPeel` (independent seed and peel\n  order, $q > 0$), `TotalColoring.exists_valid_assignment_of_totalIndependentSelectorPeel` (selector,\n  core coloring and core peel order) and `TotalColoring.exists_valid_assignment_of_alternatingRainbowPathSelector`\n  (alternating rainbow-path certificate). With $q = \\Delta(G)+1$ these give $\\Delta(G)+2$ colors only\n  once all of those inputs are supplied.\n\nThe [verification page](docs/verification.md) shows each Lean statement beside its statement in words;\nthe same page is rendered [below](#verification-at-a-glance). The [exact proof status](docs/proof-status.md)\ngives the full account, including the provenance of each layer, and\n[`docs/claim-boundary.json`](docs/claim-boundary.json) is its machine-readable mirror.\n\n> [!IMPORTANT]\n> **Not proved here.** The current default branch, including the adapted-spare endpoint, does not\n> establish:\n>\n> - the Total Coloring Conjecture;\n> - an unconditional high-degree or all-graphs `Delta + 2` total-coloring conclusion;\n> - an unconditional total-coloring conclusion from graph hypotheses alone for graphs outside the\n>   explicit high-degree regime `Fintype.card V ≤ 2 * G.maxDegree`;\n> - Vizing's theorem or existence of the proper edge-coloring witness required by the conditional\n>   independent-seed endpoint;\n> - existence of an independent seed and peel certificate for every graph;\n> - existence of a total-independent selector, an actual-list coloring of its core, a core-relative peel\n>   certificate, or the alternating rainbow-path certificate used by the newer decoder;\n> - construction of the adapted-spare sets, a physical donor matching, compatible seed or matching data,\n>   missing/head labels, or a proper edge coloring needed before the vertex endpoint can apply;\n> - the stronger auxiliary `D + 1` palette;\n> - an identification of the checked declaration with a final, author-approved manuscript theorem\n>   (the manuscript's main theorem is still unlocked); or\n> - a novelty claim.\n>\n> The generic transfer does not construct the extension from an arbitrary graph or relate `D` to that\n> graph's maximum degree. The high-degree `Delta + 3` theorem must not be broadened into an unconditional\n> `Delta + 2` result, the Total Coloring Conjecture, or an author-approved manuscript or novelty claim.\n\n## Paper and references\n\nManuscript in preparation.\n\nThe software itself is archived on Zenodo: release `v0.2.0` is\n[doi:10.5281/zenodo.23452514](https://doi.org/10.5281/zenodo.23452514) (all versions:\n[doi:10.5281/zenodo.23452513](https://doi.org/10.5281/zenodo.23452513)). Cite the exact release or commit\nyou used; GitHub reads [`CITATION.cff`](CITATION.cff) and offers a **Cite this repository** menu, and the\n[citation guide](docs/citation.md) lists the commit that first contains each result (release `v0.1.0`\npredates them).\n\nCompanion repositories:\n\n- [`total-coloring-toolkit`](https://github.com/chenle02/total-coloring-toolkit) owns search algorithms,\n  external schemas, and certificate generation.\n- [`total-coloring-data`](https://github.com/chenle02/total-coloring-data) owns reviewed finite artifacts\n  and release manifests.\n\nRaw runs, private drafts, manuscript source, and generated census output do not belong in this\nrepository.\n\n## Build and verify\n\nToolchain Lean `v4.32.0` ([`lean-toolchain`](lean-toolchain)); Mathlib `v4.32.0`, commit\n`81a5d257c8e410db227a6665ed08f64fea08e997` ([`lake-manifest.json`](lake-manifest.json)). On a fresh\nmachine, first install [`elan`](https://lean-lang.org/lean4/doc/setup.html).\n\n```sh\ngit clone https://github.com/chenle02/total-coloring-lean.git\ncd total-coloring-lean\nlake exe cache get\nlake build\nlake env lean docs/examples/Quickstart.lean\n```\n\nThe complete repository gate (including `lake env leanchecker` and the placeholder scan) is in\n[Trust and reproduction](docs/trust.md) and [`AGENTS.md`](AGENTS.md); the\n[getting-started guide](docs/getting-started.md) covers downstream imports and documentation builds.\n\nTo use it from another Lake project:\n\n```toml\n[[require]]\nname = \"TotalColoring\"\ngit = \"https://github.com/chenle02/total-coloring-lean.git\"\nrev = \"v0.2.0\"\n```\n\nthen `import TotalColoring`. The comparator statements are the `Challenge.lean` files under\n[`Audit/`](Audit/) (see [`Audit/README.md`](Audit/README.md)); their `sorry` is intentional and the `Audit`\nlibrary is not part of the default build target.\n\n## Trust and axioms\n\nThe build check at commit `c025d20a1826` recorded `sorry` count 0 and the axioms `propext`,\n`Classical.choice` and `Quot.sound` only, read for all 13 claims. For 8 of the 13 results the comparator\nconfirmed that the proof proves exactly the statement in the corresponding `Audit/*/Challenge.lean`, with\nonly those axioms, and independent kernels replayed it; the other 5 are checked by the build only. The\nbuild ran on Lean `v4.32.0`, which carries lean-pkg toolchain advisories (listed in the generated section).\nThe receipts of release v0.2.0 (lower tier and comparator) were produced on a lab workstation. Details and\nreceipts: [What the checks establish](#what-the-checks-establish); the full gate and the parser boundary:\n[Trust and reproduction](docs/trust.md).\n\n## Built with lean-pkg\n\nDeveloped and verified with [lean-pkg](https://github.com/lean-pkg/lean-pkg)\n([doi:10.5281/zenodo.23272098](https://doi.org/10.5281/zenodo.23272098)). The receipts under\n[`.lean-receipts/`](.lean-receipts/) bind the checks to a source commit, and the verification section below\nis rendered by `lean-pkg page` from [`coverage.yaml`](coverage.yaml), [`claims.yaml`](claims.yaml) and those\nreceipts; `lean-pkg page total-coloring-lean --check` confirms it is current.\n\n## Authors and AI disclosure\n\nLe Chen, Associate Professor, Department of Mathematics and Statistics, Auburn University, and\nSongling Shan (see [`CITATION.cff`](CITATION.cff)). Copyright © 2026 Le Chen and contributors; every Lean\nfile carries the standard Apache header, contributions are accepted under the same license, and Mathlib\nretains its own notices (see [`NOTICE`](NOTICE)).\n\nParts of the Lean development and its documentation were written with AI coding assistance; the commits\nconcerned name it in their `Co-Authored-By` lines. AI assistance is not human mathematical review: Lean\ncompilation and the comparator check the stated theorems only.\n\n[GitHub Sponsors](https://github.com/sponsors/chenle02) supports formalization maintenance, documentation,\nCI and cluster verification, and reproducible releases. Sponsorship does not affect theorem claims or\nproof-review standards.\n\n## Find your way\n\n| If you want to… | Start here |\n| --- | --- |\n| understand exactly what is proved | [Exact proof status](docs/proof-status.md) and [Verification](docs/verification.md) |\n| use a declaration in Lean | [Theorem index](docs/theorem-index.md) |\n| audit the module-level proof | [Proof architecture](docs/architecture.md) (with the proof route at a glance) |\n| contribute a proof or checker | [CONTRIBUTING.md](CONTRIBUTING.md) and [AGENTS.md](AGENTS.md) |\n| use a coding agent safely | [Agent guide](docs/for-agents.md) and [`llms.txt`](llms.txt) |\n| cite the software precisely | [Citation guide](docs/citation.md) and [CITATION.cff](CITATION.cff) |\n\nSmall, reviewable contributions are welcome. Open an issue before changing a mathematical interface or\ntheorem claim, preserve the trust boundary, and run the complete gate in `AGENTS.md`.\n\n\u003C!-- lean-pkg:page:begin -->\n\u003C!-- Generated by `lean-pkg page total-coloring-lean` from coverage.yaml, claims.yaml, the claims ledger and the receipts committed under .lean-receipts/. Do not edit between the markers: change the data and run `lean-pkg page total-coloring-lean --write`. -->\n\n## Verification at a glance\n\n**How to read this page.** Lean has checked every step of the proofs listed here. Each result is exactly its Lean statement: read the statements below to see what is proved. The titles, the words and the notes are the authors' description, which Lean does not check.\n\nUnconditionally, every finite graph with \\|V\\| &lt;= 2 \\* maxDegree has a total coloring with maxDegree + 3 colors, and every finite auxiliary-class member has a (D + 2)-edge coloring rainbow on J; the D + 2 transfer, the partition entry point and the (q + 1)-color endpoints are conditional on supplied inputs, and the Total Coloring Conjecture is not proved.\n\n- Main results: 13; verified: 13 of 13 (for 8 of them a second checker also compared the statement).\n\n## Main results\n\n### Total coloring with maxDegree + 3 colors when \\|V\\| &lt;= 2 \\* maxDegree\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph on the vertex set $V$ with\n$|V| \\le 2\\Delta(G)$. Then $G$ has a total coloring with the\n$\\Delta(G)+3$ colors $\\{0,1,\\dots,\\Delta(G)+2\\}$: adjacent vertices get\ndistinct colors, two distinct edges sharing an endpoint get distinct\ncolors, and every vertex gets a color different from each edge\nincident with it.\n```\n\n**In Lean.** `TotalColoringAudit.HighDegree.exists_total_coloring_of_card_le_two_mul_maxDegree` in [Audit/HighDegree/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/HighDegree/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem exists_total_coloring_of_card_le_two_mul_maxDegree\n    {V : Type*} [Fintype V] [DecidableEq V]\n    (G : SimpleGraph V) [DecidableRel G.Adj]\n    (hdense : Fintype.card V ≤ 2 * G.maxDegree) :\n    ∃ (vertexColor : V → Fin (G.maxDegree + 1 + 2))\n      (edgeColor : G.edgeSet → Fin (G.maxDegree + 1 + 2)),\n      (∀ v w, G.Adj v w → vertexColor v ≠ vertexColor w) ∧\n      (∀ e f, G.lineGraph.Adj e f → edgeColor e ≠ edgeColor f) ∧\n      (∀ (v : V) (e : G.edgeSet), v ∈ (e : Sym2 V) → vertexColor v ≠ edgeColor e)\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Unconditional: the only hypotheses are a finite vertex type, decidable adjacency and the order bound; the empty vertex type is included and there is no parity hypothesis. ExtensionPalette (maxDegree + 1) is Fin (maxDegree + 3).\n\n### Every finite auxiliary-class member has a (D + 2)-edge coloring rainbow on its distinguished set\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $H$ be a finite simple graph and $J$ a finite set of unordered pairs\nof vertices such that $(H,J)$ is in the auxiliary class\n$\\mathcal{A}_D$: there are a vertex $x$ and a set $M$ of pairwise\ndisjoint pairs with $J = M \\cup \\{\\text{edges of } H \\text{ at } x\\}$,\nevery pair of $J$ an edge of $H$, no pair of $M$ containing $x$ or a\nneighbor of $x$, every vertex other than $x$ in exactly one pair of $J$,\n$|J| = D$, $\\Delta(H) \\le D$ and $2 \\le \\deg_H(x) \\le D$. Then $H$ has a\nproper edge coloring with $D+2$ colors in which the edges of $J$ get\npairwise distinct colors.\n```\n\n**In Lean.** `TotalColoringAudit.AuxiliaryClass.exists_rainbow_edge_coloring_of_auxiliaryClass` in [Audit/AuxiliaryClass/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/AuxiliaryClass/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem exists_rainbow_edge_coloring_of_auxiliaryClass\n    {V : Type*} [Fintype V] [DecidableEq V]\n    (D : ℕ) (H : SimpleGraph V) [DecidableRel H.Adj]\n    (J : Finset (Sym2 V)) (x : V) (M : Finset (Sym2 V))\n    (distinguished_edges : ∀ ⦃e⦄, e ∈ J → e ∈ H.edgeSet)\n    (matching : ∀ ⦃e⦄, e ∈ M → ∀ ⦃f⦄, f ∈ M → e ≠ f → ∀ ⦃v⦄, v ∈ e → v ∉ f)\n    (matching_off_center : ∀ ⦃e⦄, e ∈ M → x ∉ e)\n    (matching_avoids_center_neighbors : ∀ ⦃e⦄, e ∈ M → ∀ ⦃v⦄, v ∈ e → ¬H.Adj x v)\n    (decomposition : J = M ∪ H.incidenceFinset x)\n    (exact_coverage : ∀ v, v ≠ x → ∃! e : Sym2 V, e ∈ J ∧ v ∈ e)\n    (card_distinguished : J.card = D)\n    (maxDegree_bound : H.maxDegree ≤ D)\n    (center_degree : 2 ≤ H.degree x ∧ H.degree x ≤ D) :\n    ∃ color : H.edgeSet → Fin (D + 2),\n      (∀ e f, H.lineGraph.Adj e f → color e ≠ color f) ∧\n      (∀ e f : H.edgeSet, (e : Sym2 V) ∈ J → (f : Sym2 V) ∈ J → e ≠ f →\n        color e ≠ color f)\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Unconditional for every D and every finite member; proved by contradiction from the minimal-counterexample theorem below.\n\n### No auxiliary-class member is noncolorable and minimal in the number of edges outside J\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nThere is no finite $(H,J) \\in \\mathcal{A}_D$ such that $H$ has no proper\n$(D+2)$-edge coloring rainbow on $J$, while every $(H',J) \\in\n\\mathcal{A}_D$ on the same vertex set, with the same $J$ and with no such\ncoloring, has at least as many edges outside $J$ as $H$.\n```\n\n**In Lean.** `TotalColoringAudit.CriticalAllD.false_of_critical_allD` in [Audit/CriticalAllD/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/CriticalAllD/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem false_of_critical_allD\n    {V : Type*} [Fintype V] [DecidableEq V]\n    (D : ℕ) (H : SimpleGraph V) [DecidableRel H.Adj] (J : Finset (Sym2 V))\n    (member : ∃ (x : V) (M : Finset (Sym2 V)),\n      (∀ ⦃e⦄, e ∈ J → e ∈ H.edgeSet) ∧\n      (∀ ⦃e⦄, e ∈ M → ∀ ⦃f⦄, f ∈ M → e ≠ f → ∀ ⦃v⦄, v ∈ e → v ∉ f) ∧\n      (∀ ⦃e⦄, e ∈ M → x ∉ e) ∧\n      (∀ ⦃e⦄, e ∈ M → ∀ ⦃v⦄, v ∈ e → ¬H.Adj x v) ∧\n      J = M ∪ H.incidenceFinset x ∧\n      (∀ v, v ≠ x → ∃! e : Sym2 V, e ∈ J ∧ v ∈ e) ∧\n      J.card = D ∧\n      H.maxDegree ≤ D ∧\n      (2 ≤ H.degree x ∧ H.degree x ≤ D))\n    (noncolorable : ¬∃ color : H.edgeSet → Fin (D + 2),\n      (∀ e f, H.lineGraph.Adj e f → color e ≠ color f) ∧\n      (∀ e f : H.edgeSet, (e : Sym2 V) ∈ J → (f : Sym2 V) ∈ J → e ≠ f →\n        color e ≠ color f))\n    (minimal : ∀ (H₁ : SimpleGraph V) [DecidableRel H₁.Adj],\n      (∃ (x : V) (M : Finset (Sym2 V)),\n        (∀ ⦃e⦄, e ∈ J → e ∈ H₁.edgeSet) ∧\n        (∀ ⦃e⦄, e ∈ M → ∀ ⦃f⦄, f ∈ M → e ≠ f → ∀ ⦃v⦄, v ∈ e → v ∉ f) ∧\n        (∀ ⦃e⦄, e ∈ M → x ∉ e) ∧\n        (∀ ⦃e⦄, e ∈ M → ∀ ⦃v⦄, v ∈ e → ¬H₁.Adj x v) ∧\n        J = M ∪ H₁.incidenceFinset x ∧\n        (∀ v, v ≠ x → ∃! e : Sym2 V, e ∈ J ∧ v ∈ e) ∧\n        J.card = D ∧\n        H₁.maxDegree ≤ D ∧\n        (2 ≤ H₁.degree x ∧ H₁.degree x ≤ D)) →\n      (¬∃ color : H₁.edgeSet → Fin (D + 2),\n        (∀ e f, H₁.lineGraph.Adj e f → color e ≠ color f) ∧\n        (∀ e f : H₁.edgeSet, (e : Sym2 V) ∈ J → (f : Sym2 V) ∈ J → e ≠ f →\n          color e ≠ color f)) →\n      (H.edgeSet \\ (J : Set (Sym2 V))).ncard ≤ (H₁.edgeSet \\ (J : Set (Sym2 V))).ncard) :\n    False\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** The minimal-counterexample step behind the rainbow theorem above; the minimality ranges over members on the same vertex type with the same J.\n\n### A proper selector-rainbow auxiliary edge coloring decodes to a valid total coloring\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $G$ and $H$ be simple graphs with an extension datum: a selector\nedge $s(v)$ of $H$ for each vertex $v$ of $G$ and an edge $\\iota(e)$ of\n$H$ for each edge $e$ of $G$, such that adjacent vertices have distinct\nselectors, distinct edges of $G$ sharing an endpoint go to distinct edges\nof $H$ sharing an endpoint, and $s(v)$ and $\\iota(e)$ are distinct and\nshare an endpoint whenever $v$ is an endpoint of $e$. If $c$ is a proper\nedge coloring of $H$ that gives distinct selector edges distinct colors,\nthen coloring each vertex $v$ by $c(s(v))$ and each edge $e$ by\n$c(\\iota(e))$ is a valid total coloring of $G$.\n```\n\n**In Lean.** `TotalColoringAudit.Decode.decode_valid` in [Audit/Decode/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/Decode/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem decode_valid\n    {V : Type*} {W : Type*} {C : Type*} {G : SimpleGraph V} {H : SimpleGraph W}\n    (classEdge : V → H.edgeSet) (originalEdge : G.edgeSet → H.edgeSet)\n    (classEdge_ne_of_adj : ∀ {v w : V}, G.Adj v w → classEdge v ≠ classEdge w)\n    (originalEdge_adj : ∀ {e f : G.edgeSet}, G.lineGraph.Adj e f →\n      H.lineGraph.Adj (originalEdge e) (originalEdge f))\n    (classEdge_adj_original : ∀ {v : V} {e : G.edgeSet}, v ∈ (e : Sym2 V) →\n      H.lineGraph.Adj (classEdge v) (originalEdge e))\n    (color : H.edgeSet → C)\n    (hvalid : ∀ e f, H.lineGraph.Adj e f → color e ≠ color f)\n    (hrainbow : ∀ v w, classEdge v ≠ classEdge w →\n      color (classEdge v) ≠ color (classEdge w)) :\n    (∀ v w, G.Adj v w → color (classEdge v) ≠ color (classEdge w)) ∧\n      (∀ e f, G.lineGraph.Adj e f → color (originalEdge e) ≠ color (originalEdge f)) ∧\n      (∀ (v : V) (e : G.edgeSet), v ∈ (e : Sym2 V) →\n        color (classEdge v) ≠ color (originalEdge e))\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** No finiteness and any color type; the extension data are hypotheses.\n\n### Conditional transfer: a supplied extension into an auxiliary-class member gives a total coloring with D + 2 colors\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check that applies to this result passed (the build; its statement was not compared by a second checker).\n\n**In words.**\n\n```latex\nLet $G$ be a simple graph and $H$ a finite simple graph with\n$(H,J) \\in \\mathcal{A}_D$. If there is an extension datum from $G$ to $H$\n(as in the decoding theorem) every selector edge of which belongs to\n$J$, then $G$ has a valid total coloring with $D+2$ colors.\n```\n\n**In Lean.** `TotalColoring.Auxiliary.Extension.exists_valid_decode_of_inAuxiliaryClass` in [TotalColoring/AuxiliaryTransfer.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/TotalColoring/AuxiliaryTransfer.lean).\n\n```lean\ntheorem exists_valid_decode_of_inAuxiliaryClass\n    [Fintype W] [DecidableEq W]\n    (D : ℕ) (X : Extension G H) [DecidableRel H.Adj]\n    (J : Finset (Sym2 W))\n    (hclassEdge : ∀ vertex, X.classEdge vertex ∈ distinguishedEdgeSet H J)\n    (hmember : InAuxiliaryClass D H J) :\n    ∃ assignment : Assignment G (ExtensionPalette D), assignment.Valid\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Conditional on the supplied extension datum, selector membership in J and the auxiliary-class membership; nothing relates D to the maximum degree of G.\n\n### A matching with at least k edges from minimum degree k and order at least 2k\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $H$ be a finite simple graph on $V$ and $k \\ge 0$. If every vertex\nhas degree at least $k$ in $H$ and $2k \\le |V|$, then $H$ has a subgraph\nin which every vertex has at most one neighbor (a matching) with at\nleast $k$ edges.\n```\n\n**In Lean.** `TotalColoringAudit.MatchingLowerBound.exists_matchingGraph_edgeFinset_card_ge` in [Audit/MatchingLowerBound/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/MatchingLowerBound/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem exists_matchingGraph_edgeFinset_card_ge\n    {V : Type*} [Fintype V]\n    (H : SimpleGraph V) [DecidableRel H.Adj] (k : ℕ)\n    (hdegree : ∀ v, k ≤ H.degree v) (horder : 2 * k ≤ Fintype.card V) :\n    ∃ (M : SimpleGraph V) (_ : DecidableRel M.Adj),\n      M ≤ H ∧ (∀ v, (M.neighborSet v).Subsingleton) ∧ k ≤ M.edgeFinset.card\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n### A pair/singleton partition with maxDegree + 1 classes gives auxiliary-class membership when \\|V\\| &lt;= 2 \\* maxDegree\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph on $V$ and fix a partition of $V$ into\nsingletons and pairs of nonadjacent vertices. On $V \\cup \\{\\ast\\}$ take\na copy of $G$ together with one selector edge per class: $\\ast v$ for a\nsingleton $\\{v\\}$ and $vw$ for a pair $\\{v,w\\}$. Let $J$ be the set of\nselector edges and $M$ the pair selectors. If $|J| = \\Delta(G)+1$ and\n$|V| \\le 2\\Delta(G)$, then this graph is a member of\n$\\mathcal{A}_{\\Delta(G)+1}$ with center $\\ast$, distinguished set $J$\nand matching part $M$.\n```\n\n**In Lean.** `TotalColoringAudit.PairSingleton.isAuxiliaryClassMember_of_highDegree` in [Audit/PairSingleton/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/PairSingleton/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem isAuxiliaryClassMember_of_highDegree\n    {V : Type*} [Fintype V] [DecidableEq V] {G : SimpleGraph V}\n    (partner : V → Option V)\n    (partner_ne : ∀ {v w : V}, partner v = some w → v ≠ w)\n    (partner_symm : ∀ {v w : V}, partner v = some w → partner w = some v)\n    (partner_nonadjacent : ∀ {v w : V}, partner v = some w → ¬G.Adj v w)\n    (selector : V → Sym2 (Option V))\n    (hselector : ∀ v, selector v = (partner v).elim s(none, some v) (fun w ↦ s(some v, some w)))\n    (J : Finset (Sym2 (Option V))) (hJ : J = Finset.univ.image selector)\n    (M : Finset (Sym2 (Option V))) (hM : M = J.filter (fun e ↦ (none : Option V) ∉ e))\n    (A : SimpleGraph (Option V))\n    (hA : A = G.map Function.Embedding.some ⊔ SimpleGraph.fromEdgeSet (J : Set (Sym2 (Option V))))\n    [DecidableRel G.Adj] [DecidableRel A.Adj]\n    (hclasses : J.card = G.maxDegree + 1)\n    (hdense : Fintype.card V ≤ 2 * G.maxDegree) :\n    (∀ ⦃e⦄, e ∈ J → e ∈ A.edgeSet) ∧\n      (∀ ⦃e⦄, e ∈ M → ∀ ⦃f⦄, f ∈ M → e ≠ f → ∀ ⦃v⦄, v ∈ e → v ∉ f) ∧\n      (∀ ⦃e⦄, e ∈ M → (none : Option V) ∉ e) ∧\n      (∀ ⦃e⦄, e ∈ M → ∀ ⦃v⦄, v ∈ e → ¬A.Adj none v) ∧\n      J = M ∪ A.incidenceFinset none ∧\n      (∀ v, v ≠ none → ∃! e : Sym2 (Option V), e ∈ J ∧ v ∈ e) ∧\n      J.card = G.maxDegree + 1 ∧\n      A.maxDegree ≤ G.maxDegree + 1 ∧\n      (2 ≤ A.degree none ∧ A.degree none ≤ G.maxDegree + 1)\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** The pair/singleton witness is a hypothesis here; the high-degree theorem above constructs one from a matching in the complement of G.\n\n### Conditional: a supplied equitable independent partition gives a total coloring with maxDegree + 3 colors\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check that applies to this result passed (the build; its statement was not compared by a second checker).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph on a nonempty vertex set $V$ with\n$|V| \\le 2\\Delta(G)$. If $V$ is partitioned into exactly $\\Delta(G)+1$\nnonempty independent sets whose sizes differ by at most one, then $G$\nhas a valid total coloring with $\\Delta(G)+3$ colors.\n```\n\n**In Lean.** `TotalColoring.Auxiliary.EquitableIndependentPartition.exists_valid_assignment_of_highDegreePartition` in [TotalColoring/EquitablePairSingleton.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/TotalColoring/EquitablePairSingleton.lean).\n\n```lean\ntheorem exists_valid_assignment_of_highDegreePartition\n    (Q : EquitableIndependentPartition G (G.maxDegree + 1))\n    (hdense : Fintype.card V ≤ 2 * G.maxDegree) :\n    ∃ assignment : Assignment G (ExtensionPalette (G.maxDegree + 1)),\n      assignment.Valid\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Conditional on the supplied partition and a nonempty vertex type; retained as an alternate entry point. The high-degree theorem above assumes no partition.\n\n### Conditional independent-seed endpoint: q + 1 colors from a proper q-edge coloring, an independent seed and a peel order\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check that applies to this result passed (the build; its statement was not compared by a second checker).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph and $q > 0$. Suppose $G$ has a proper\nedge coloring with $q$ colors, $A$ is an independent set of vertices,\nand the vertices outside $A$ are listed without repetition as\n$v_1,\\dots,v_m$ (exactly the vertices outside $A$) so that for every $i$\nthe number of neighbors of $v_i$ among $v_{i+1},\\dots,v_m$ is less than\n$q - \\deg_G(v_i)$ (truncated subtraction). Then $G$ has a valid total\ncoloring with $q+1$ colors. For $q = \\Delta(G)+1$ this is\n$\\Delta(G)+2$ colors.\n```\n\n**In Lean.** `TotalColoring.exists_valid_assignment_of_independentSeedPeel` in [TotalColoring/IndependentSeed.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/TotalColoring/IndependentSeed.lean).\n\n```lean\ntheorem exists_valid_assignment_of_independentSeedPeel {q : ℕ}\n    (hq : 0 \u003C q) (phi : EdgeAssignment G (Fin q)) (hphi : phi.Valid)\n    (A : Finset V) (hA : G.IsIndepSet (A : Set V))\n    (cert : IndependentSeedPeelCertificate G A q) :\n    ∃ a : Assignment G (Fin (q + 1)), a.Valid\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Conditional: the edge coloring, the seed and the peel order are hypotheses. Vizing's theorem and the existence of the seed and order are not proved, so the maxDegree + 2 case is not the Total Coloring Conjecture.\n\n### Conditional selector decoder: a fresh-color independent set and matching with a peeled core coloring give q + 1 colors\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check that applies to this result passed (the build; its statement was not compared by a second checker).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph with a proper edge coloring $\\varphi$\nwith $q$ colors. Let $S$ be an independent set, $F$ a matching none of\nwhose edges has an endpoint in $S$, and $K \\supseteq S$ a vertex set\nwith $g_0 \\colon V \\to \\{0,\\dots,q-1\\}$ such that for all\n$v, w \\in K \\setminus S$: $g_0(v) \\ne \\varphi(e)$ for every edge\n$e \\notin F$ at $v$, and $g_0(v) \\ne g_0(w)$ when $v$ and $w$ are\nadjacent. Suppose the vertices outside $K$ are listed without repetition\nas $v_1,\\dots,v_m$ (exactly the vertices outside $K$) so that\n$|N(v_i) \\cap ((K \\setminus S) \\cup \\{v_{i+1},\\dots,v_m\\})| \u003C\nq - \\deg_G(v_i)$ (truncated subtraction) for every $i$. Then $G$ has a\nvalid total coloring with $q+1$ colors.\n```\n\n**In Lean.** `TotalColoring.exists_valid_assignment_of_totalIndependentSelectorPeel` in [TotalColoring/TotalIndependentSelector.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/TotalColoring/TotalIndependentSelector.lean).\n\n```lean\ntheorem exists_valid_assignment_of_totalIndependentSelectorPeel\n    (phi : EdgeAssignment G (Fin q)) (hphi : phi.Valid)\n    (S : Finset V) (hS : G.IsIndepSet (S : Set V))\n    (F : Finset G.edgeSet) (hF : EdgeFinsetIsMatching (G := G) F)\n    (havoid : EdgeFinsetAvoids (G := G) F S)\n    (K : Finset V) (g₀ : V → Fin q)\n    (hcore : SelectorOldColoringGoodOn G phi S F K g₀)\n    (cert : SelectorCorePeelCertificate G S K q) :\n    ∃ a : Assignment G (Fin (q + 1)), a.Valid\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Conditional: the edge coloring, S, F, the core K, the core coloring g0 and the peel order are hypotheses; none of them is constructed.\n\n### Partial-edge selector decoder: old edge colors need only be proper outside the fresh matching\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $G$ be a simple graph, $f \\in \\{0,\\dots,q\\}$ a fresh color, $S$\nan independent set, $F$ a matching none of whose edges has an endpoint\nin $S$, and $\\varphi$ an edge coloring with $q$ colors in which two\ndistinct edges outside $F$ sharing an endpoint get distinct colors. Let\n$g \\colon V \\to \\{0,\\dots,q-1\\}$ satisfy, for $v, w \\notin S$:\n$g(v) \\ne \\varphi(e)$ for every edge $e \\notin F$ at $v$, and\n$g(v) \\ne g(w)$ when $v$ and $w$ are adjacent. Color the vertices of $S$\nand the edges of $F$ with $f$, and every other vertex $v$ and edge $e$\nwith the image of $g(v)$, resp. $\\varphi(e)$, under the order-preserving\nbijection from $q$ colors onto the $q+1$ colors other than $f$. This is\na valid total coloring with $q+1$ colors.\n```\n\n**In Lean.** `TotalColoringAudit.PartialEdgeSelector.partialEdgeSelectorAssignment_valid` in [Audit/PartialEdgeSelector/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/PartialEdgeSelector/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem partialEdgeSelectorAssignment_valid\n    {V : Type*} [DecidableEq V] {G : SimpleGraph V} {q : ℕ}\n    (fresh : Fin (q + 1)) (phi : G.edgeSet → Fin q)\n    (S : Finset V) (F : Finset G.edgeSet) (g : V → Fin q)\n    (hphi : ∀ e f : G.edgeSet, e ∉ F → f ∉ F → G.lineGraph.Adj e f → phi e ≠ phi f)\n    (hS : G.IsIndepSet (S : Set V))\n    (hF : ∀ ⦃e f : G.edgeSet⦄, e ∈ F → f ∈ F → ¬G.lineGraph.Adj e f)\n    (havoid : ∀ ⦃v : V⦄, v ∈ S → ∀ ⦃e : G.edgeSet⦄, e ∈ F → v ∉ (e : Sym2 V))\n    (hallowed : ∀ v, v ∉ S → ∀ e : G.edgeSet, v ∈ (e : Sym2 V) → e ∉ F → phi e ≠ g v)\n    (hproper : ∀ v, v ∉ S → ∀ w, w ∉ S → G.Adj v w → g v ≠ g w) :\n    (∀ v w, G.Adj v w →\n        (if v ∈ S then fresh else fresh.succAbove (g v)) ≠\n          (if w ∈ S then fresh else fresh.succAbove (g w))) ∧\n      (∀ e f, G.lineGraph.Adj e f →\n        (if e ∈ F then fresh else fresh.succAbove (phi e)) ≠\n          (if f ∈ F then fresh else fresh.succAbove (phi f))) ∧\n      (∀ (v : V) (e : G.edgeSet), v ∈ (e : Sym2 V) →\n        (if v ∈ S then fresh else fresh.succAbove (g v)) ≠\n          (if e ∈ F then fresh else fresh.succAbove (phi e)))\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Every input is a hypothesis; no finiteness is assumed.\n\n### Conditional alternating rainbow-path selector: a supplied path certificate gives q + 1 colors\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check that applies to this result passed (the build; its statement was not compared by a second checker).\n\n**In words.**\n\n```latex\nLet $G$ be a finite simple graph with a proper edge coloring $\\varphi_0$\nwith $q$ colors, and $K$ a vertex set. Suppose there are distinct\nvertices $u_0,\\dots,u_k$, exactly the vertices of $K$, with path edges\n$e_i = u_i u_{i+1}$ ($0 \\le i \u003C k$) whose $\\varphi_0$-colors are pairwise\ndistinct; a color $\\sigma \\in \\{0,\\dots,q-1\\}$ of the same palette\nthat no edge receives under $\\varphi_0$; edge sets $L$ and $F$ of $G$,\neach a matching, such that the path edge $e_i$ lies in $L$ exactly for\neven $i$ and in $F$ exactly for odd $i$ ($L$ and $F$ may also contain\nedges off the path), with no edge of $F$ at $u_0$; a function\n$c \\colon V \\to \\{0,\\dots,q-1\\}$ with $c(u_{i+1}) = \\varphi_0(e_i)$;\nand a list without repetition of exactly\nthe vertices outside $K$ satisfying the core peel inequality of the\nselector decoder for $S = \\{u_0\\}$ and $K$. Then $G$ has a valid total\ncoloring with $q+1$ colors.\n```\n\n**In Lean.** `TotalColoring.exists_valid_assignment_of_alternatingRainbowPathSelector` in [TotalColoring/TotalIndependentSelector.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/TotalColoring/TotalIndependentSelector.lean).\n\n```lean\ntheorem exists_valid_assignment_of_alternatingRainbowPathSelector\n    (phi₀ : EdgeAssignment G (Fin q)) (hphi₀ : phi₀.Valid)\n    (K : Finset V) (k : ℕ)\n    (cert : AlternatingRainbowPathSelectorCertificate G phi₀ K k) :\n    ∃ a : Assignment G (Fin (q + 1)), a.Valid\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Conditional: the proper edge coloring and the whole certificate (path, rainbow, spare color, matchings, core colors, peel order) are hypotheses; the existence of the path is not proved.\n\n### Soundness of the executable extension checker\n\n**Verified.** Lean accepts the proof, and lean-pkg's record shows every check of this result passed (the build, and the statement comparison).\n\n**In words.**\n\n```latex\nLet $X$ be an extension datum from a finite graph $G$ to a finite graph\n$H$ and $c$ an edge coloring of $H$ with a color type with decidable\nequality. If the Boolean checker checkExtension accepts $(X, c)$, then\ndecoding $c$ through $X$ gives a valid total coloring of $G$. (The\nchecker accepts exactly when $c$ is proper and gives distinct selector\nedges distinct colors; that equivalence is the separate lemma\ncheckExtension_eq_true_iff, not part of this claim.)\n```\n\n**In Lean.** `TotalColoringAudit.Certificate.checkExtension_sound` in [Audit/Certificate/Challenge.lean](https://github.com/chenle02/total-coloring-lean/blob/c025d20a182644bbacdd96165c93e1b8b2a403c6/Audit/Certificate/Challenge.lean): the statement the proof was checked against (the proof is in a separate file, and a second checker confirmed it proves exactly this).\n\n```lean\ntheorem checkExtension_sound\n    {V : Type*} {W : Type*} {C : Type*} {G : SimpleGraph V} {H : SimpleGraph W}\n    (classEdge : V → H.edgeSet) (originalEdge : G.edgeSet → H.edgeSet)\n    (classEdge_ne_of_adj : ∀ {v w : V}, G.Adj v w → classEdge v ≠ classEdge w)\n    (originalEdge_adj : ∀ {e f : G.edgeSet}, G.lineGraph.Adj e f →\n      H.lineGraph.Adj (originalEdge e) (originalEdge f))\n    (classEdge_adj_original : ∀ {v : V} {e : G.edgeSet}, v ∈ (e : Sym2 V) →\n      H.lineGraph.Adj (classEdge v) (originalEdge e))\n    (color : H.edgeSet → C)\n    [Fintype V] [Fintype W] [DecidableEq W] [DecidableRel H.Adj] [DecidableEq C]\n    (h : (decide (∀ e f : H.edgeSet,\n            (e ≠ f ∧ ∃ x : W, x ∈ (e : Sym2 W) ∧ x ∈ (f : Sym2 W)) → color e ≠ color f) &&\n          decide (∀ v w : V, classEdge v ≠ classEdge w →\n            color (classEdge v) ≠ color (classEdge w))) = true) :\n    (∀ v w, G.Adj v w → color (classEdge v) ≠ color (classEdge w)) ∧\n      (∀ e f, G.lineGraph.Adj e f → color (originalEdge e) ≠ color (originalEdge f)) ∧\n      (∀ (v : V) (e : G.edgeSet), v ∈ (e : Sym2 V) →\n        color (classEdge v) ≠ color (originalEdge e))\n```\n\n**Axioms.** At most `Classical.choice`, `Quot.sound`, `propext` (what the build check records for the whole package).\n\n**Note.** Concerns well-typed Lean values only; parsing external data is outside the theorem.\n\n## What the checks establish\n\n- **Every proof is checked by Lean.** The package builds; no `sorry` (an unfinished proof) remains; the only axioms used are `Classical.choice`, `Quot.sound`, `propext` (allowed: `propext`, `Quot.sound`, `Classical.choice`).\n- **The statements shown are the ones proved.** For 8 statement(s), a second checker (comparator) confirmed that the proof proves exactly the statement shown, with only the permitted axioms, and independent Lean kernels replayed the proof.\n- **Not checked by any tool:** that a title or note describes its Lean statement. A definition listed under *Definitions checked by a person* is compared by name and type only.\n\nThe full account of what each check covers and what it takes on trust is lean-pkg's [trust model](https://github.com/lean-pkg/lean-pkg/blob/main/docs/trust-model.md).\n\n## How this was checked\n\n- lean-pkg's claims ledger: **ready**, every required claim is closed by the recorded receipts; 8 of 8 required claim(s) verified (`sha256:23f4baa46a3fc93d…`).\n- Build check (`lean-pkg gate`) at commit `c025d20a1826`: `sorry` count 0; axioms used: `Classical.choice`, `Quot.sound`, `propext`.\n- Axioms of every claim: read from the built environment (Lean's `collectAxioms`) for all 13 claim(s) in `claims.yaml`, not only the theorems the build prints; none uses an axiom beyond `propext`, `Quot.sound` and `Classical.choice`.\n- Toolchain advisory: the build check ran on Lean `leanprover/lean4:v4.32.0`, which has a known soundness bug fixed in `v4.32.1` ([lean-v4.32.1-kernel-opaque-fvars](https://lean-lang.org/doc/reference/latest/releases/v4.32.1/); lean-pkg's [toolchain advisories](https://github.com/lean-pkg/lean-pkg/blob/main/src/lean_pkg/data/toolchain-advisories.yaml)).\n- Toolchain advisory: the build check ran on Lean `leanprover/lean4:v4.32.0`, which has a known soundness bug fixed in `v4.32.2` ([lean-v4.32.2-kernel-nested-inductive](https://lean-lang.org/doc/reference/latest/releases/v4.32.2/); lean-pkg's [toolchain advisories](https://github.com/lean-pkg/lean-pkg/blob/main/src/lean_pkg/data/toolchain-advisories.yaml)).\n- Toolchain advisory: the build check ran on Lean `leanprover/lean4:v4.32.0`, which has a known soundness bug fixed in `v4.33.1` ([lean-v4.33.1-kernel-and-runtime](https://lean-lang.org/doc/reference/latest/releases/v4.33.1/); lean-pkg's [toolchain advisories](https://github.com/lean-pkg/lean-pkg/blob/main/src/lean_pkg/data/toolchain-advisories.yaml)).\n- Toolchain advisory: the build check ran on Lean `leanprover/lean4:v4.32.0`, which has a known soundness bug fixed in `v4.34.1` ([lean-v4.34.1-runtime-refcounts](https://lean-lang.org/doc/reference/latest/releases/v4.34.1/); lean-pkg's [toolchain advisories](https://github.com/lean-pkg/lean-pkg/blob/main/src/lean_pkg/data/toolchain-advisories.yaml)).\n- Statement comparison (comparator) at commit `c025d20a1826`: 8 configuration(s), 8 theorem(s) compared (each Challenge statement against its Solution proof); permitted axioms: `Classical.choice`, `Quot.sound`, `propext`; definitions compared by name only: none.\n\n### Receipts\n\n| Receipt | Check | Commit | Date | Job | SHA-256 |\n|---|---|---|---|---|---|\n| `.lean-receipts/3f364b51d2c7-comparator.json` | statement comparison | `3f364b51d2c7` | 2026-10-18 | — | `a248b4d7ceeb034d0fb0a3700670e7b59ca7574aa84287f0e2d1589ddd2eeb1e` |\n| `.lean-receipts/3f364b51d2c7-systemd-user-total-coloring-lean-verify.service-26f87e9fdae2438cb4ab302aa085cb30-h-2db2e0fa6029.json` | build | `3f364b51d2c7` | 2026-10-18 | — | `732ee12803528338b33d21df1482fdc51fd2ed169b579a61b589e5e9e0e0ba84` |\n| `.lean-receipts/533f9430cb45-comparator.json` | statement comparison | `533f9430cb45` | 2026-10-08 | — | `c3c1f5d65707f99f56a870714d12541fb7b7c1abd60f3358d4f25bd0bbf907bd` |\n| `.lean-receipts/533f9430cb45-home-workstation-2026-10-08-total-coloring.json` | build | `533f9430cb45` | 2026-10-08 | — | `4ea44f7efdc1ba712e79bf2e9d5f6f2f0e41a350f4c5920197f43e91a16dc966` |\n| `.lean-receipts/55edc8145228-home-workstation-2026-10-06-total-coloring.json` | build | `55edc8145228` | 2026-10-06 | — | `14d42549e43e9fc24cd17655f207a60a901ed0c4e31ec83c379fe871cbb3b66d` |\n| `.lean-receipts/c025d20a1826-comparator.json` (used here) | statement comparison | `c025d20a1826` | 2026-10-18 | — | `120f4a7878339120dbb684b778daa944e2c7241d48d0fee3c99b0fde2f28f09b` |\n| `.lean-receipts/c025d20a1826-systemd-user-total-coloring-lean-verify.service-eff861bf68744993b3eaff1c5e6b37fc-h-2db2e0fa6029.json` (used here) | build | `c025d20a1826` | 2026-10-18 | — | `586b45670d5cfb97a03fa573d036b1c7b2f1bb03d0dd09d5d24488fa1df1d4cd` |\n\n*(used here)*: the receipt the lean-pkg registry holds for this package, which the lines above read. SHA-256 is of the file as committed.\n\n### Reproduce\n\n- Lean toolchain: `leanprover/lean4:v4.32.0`.\n- Mathlib: `81a5d257c8e410db227a6665ed08f64fea08e997` (lake-manifest.json).\n\n```bash\ngit clone https://github.com/chenle02/total-coloring-lean\ncd total-coloring-lean\ngit checkout c025d20a182644bbacdd96165c93e1b8b2a403c6   # the commit the build check binds\nlake exe cache get\nlake build\n```\n\nExpected: `#print axioms` on any declaration above reports a subset of {`Classical.choice`, `Quot.sound`, `propext`} (the union the build check records); `sorryAx` never appears.\n\n## Citation\n\nLe Chen and Songling Shan. *Total Coloring Lean*. Version 0.2.0. [doi:10.5281/zenodo.23452513](https://doi.org/10.5281/zenodo.23452513).\n\nSee [CITATION.cff](CITATION.cff).\n\n## License\n\nReleased under `Apache-2.0`; see [LICENSE](LICENSE).\n\n## Acknowledgments\n\nDeveloped and verified with [lean-pkg](https://github.com/lean-pkg/lean-pkg) ([doi:10.5281/zenodo.23272098](https://doi.org/10.5281/zenodo.23272098)).\n\n\u003C!-- lean-pkg:page:end -->\n",1794686188694]