Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
4fc0ab7
Import Goldberg-Seymour edge-coloring theorem
Vilin97 Nov 5, 2026
4a7384d
Prune unused Goldberg-Seymour interfaces and narrow dependencies
Vilin97 Nov 5, 2026
3661f74
Preserve private helper imports during dependency minimization
Vilin97 Nov 5, 2026
f1f8c0a
Share index-bound proofs across dependent hierarchy contracts
Vilin97 Nov 5, 2026
95be6b2
Generalize hierarchy utilities and bridge Mathlib multigraphs
Vilin97 Nov 5, 2026
8b8bd48
refactor(GoldbergSeymour): share coloring and assembly facts
Vilin97 Nov 5, 2026
45810e7
Share Goldberg–Seymour transport proofs and elementary facts
Vilin97 Nov 6, 2026
b379527
Share tree and Kempe facts and remove redundant proof contracts
Vilin97 Nov 6, 2026
c8299d3
Generalize missing-color transport and simplify split-swap preparation
Vilin97 Nov 6, 2026
83a7892
Share Goldberg-Seymour proof facts and remove private forwarding layers
Vilin97 Nov 6, 2026
48f4097
Share and generalize Goldberg-Seymour proof infrastructure
Vilin97 Nov 6, 2026
fccfd81
Integrate concurrent shared Goldberg-Seymour proof facts
Vilin97 Nov 6, 2026
cc2347e
Share Goldberg-Seymour tree, walk and series transport facts
Vilin97 Nov 6, 2026
7ddd402
Remove unused Goldberg-Seymour condition helper
Vilin97 Nov 6, 2026
053fbd6
Share Goldberg-Seymour graph arguments and shorten embedded proofs
Vilin97 Nov 6, 2026
606e50e
Share terminal routes and advancement facts
Vilin97 Nov 6, 2026
7c2452a
Share hierarchy transport and tail color arguments
Vilin97 Nov 6, 2026
b2910bf
Share closed-component and certified-series reconstruction facts
Vilin97 Nov 6, 2026
326e25c
Share hierarchy prefix and two-color component facts
Vilin97 Nov 6, 2026
57bdca3
Share nonparallel and hierarchy field transport facts
Vilin97 Nov 6, 2026
b1ab898
Use intrinsic correspondence and first-position invariants
Vilin97 Nov 6, 2026
2279afc
Share terminal transport and remove unused proof subtrees
Vilin97 Nov 7, 2026
b1327b0
Share certified coloring and first-entry path facts
Vilin97 Nov 7, 2026
b146d8b
Use explicit proofs for revisiting-prefix context goals
Vilin97 Nov 7, 2026
660e9c8
Share exit path swaps, symmetry and color counting
Vilin97 Nov 7, 2026
545d084
Reuse first-position invariance and explicit arithmetic bounds
Vilin97 Nov 7, 2026
3482acd
Share first-position witnesses and prefix agreement
Vilin97 Nov 7, 2026
f81a020
Share endpoint and prefix proofs, simplify hierarchy transport
Vilin97 Nov 7, 2026
8233cdb
Reuse hierarchy and certified-series nesting APIs
Vilin97 Nov 7, 2026
d83be76
Remove discarded constructions and share route transport
Vilin97 Nov 7, 2026
e67914b
Share terminal certificates and streamline hierarchy transport
Vilin97 Nov 7, 2026
f76d36a
Share hierarchy continuations and tighten proof interfaces
Vilin97 Nov 7, 2026
5c05dae
Share exit-path proofs and series-data transports
Vilin97 Nov 8, 2026
db640f1
Share endpoint proofs and make hierarchy dispatch explicit
Vilin97 Nov 8, 2026
20b6fa8
Reuse path and swap facts and narrow hierarchy proof interfaces
Vilin97 Nov 8, 2026
7cebafc
refactor(GoldbergSeymour): share prefix and missing-color facts
Vilin97 Nov 8, 2026
69fb928
refactor(GoldbergSeymour): share missing-color degree and segment com…
Vilin97 Nov 8, 2026
9a4535e
refactor(GoldbergSeymour): share stability and hierarchy arguments
Vilin97 Nov 8, 2026
bc74c92
refactor(GoldbergSeymour): share closure and series assembly
Vilin97 Nov 8, 2026
7b7481d
refactor(GoldbergSeymour): share augmentation and numeric comparisons
Vilin97 Nov 8, 2026
9c15253
refactor(GoldbergSeymour): share route transport and elementary facts
Vilin97 Nov 8, 2026
83ada76
refactor(GoldbergSeymour): share routes and restrict cardinality simp…
Vilin97 Nov 9, 2026
cfb7813
refactor(GoldbergSeymour): share component-swap incidence preservation
Vilin97 Nov 9, 2026
d98983e
refactor(GoldbergSeymour): reuse series casts and theorem aliases
Vilin97 Nov 9, 2026
8f48186
refactor(GoldbergSeymour): share component colors and walk regions
Vilin97 Nov 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 42 additions & 0 deletions LeanPool/GoldbergSeymour.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/-
Copyright (c) 2026 Wesley Pegden. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Wesley Pegden
-/

module

public import LeanPool.GoldbergSeymour.MathlibGraph

/-!
# The Goldberg–Seymour edge-coloring theorem

Source: arxiv:1901.10316v2, url:https://github.com/wpegden/goldberg_seymour/tree/88d98c1d1a59d1f1bf7c4eb58e73f3945f6daf12
Authors: Wesley Pegden
Status: verified
Main declarations: `GoldbergSeymour.goldbergSeymour`, `GoldbergSeymour.GeneralHighIndexElementary`
Tags: graph-theory, edge-coloring, multigraphs, tashkinov-trees
MSC: 05C15
-/

/-!
Formalized by Trellis, operated by Wesley Pegden, following the mathematical
theorem of Guantao Chen, Guangming Jing and Wenan Zang, arXiv:1901.10316v2.
Adapted from wpegden/goldberg_seymour at
88d98c1d1a59d1f1bf7c4eb58e73f3945f6daf12.
-/

@[expose] public section

namespace GoldbergSeymour

/-- The Goldberg–Seymour bound for the chromatic index of a finite loopless multigraph. -/
theorem goldbergSeymour {V E : Type*} [Fintype V] [Fintype E]
(G : LooplessMultigraph V E) :
ChromaticIndex G ≤ max (MaximumDegree G + 1) (DensityCeil G) := by
classical
exact ThmGS G

end GoldbergSeymour

end
1,508 changes: 1,508 additions & 0 deletions LeanPool/GoldbergSeymour/AbsentOwnerReplacement.lean

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions LeanPool/GoldbergSeymour/AbsorbingVertex.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/-
Copyright (c) 2026 Wesley Pegden. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Wesley Pegden
-/
module

public import LeanPool.GoldbergSeymour.TreeFreeColors
public import LeanPool.GoldbergSeymour.TwoColorComponent

/-!
# Absorbing Vertex

Part of the dependency closure of the Goldberg–Seymour edge-colouring theorem.
Adapted from Wesley Pegden’s Trellis formalization at
88d98c1d1a59d1f1bf7c4eb58e73f3945f6daf12; module paths and namespace changed.
-/

@[expose] public section

namespace GoldbergSeymour

/--
An outside vertex whose two-color components select unique missing-color witnesses in the tree. -/
def AbsorbingVertex {V E : Type*} [Fintype E] {G : LooplessMultigraph V E} {k : ℕ}
{e0 : E} (T : TreeSequence G e0) (phi : PartialEdgeColoring E k) (v : V) : Prop :=
v ∉ TreeSequenceVertexSet T ∧
∀ delta ∈ MissingColors G phi v,
∀ gamma ∈ TreeFreeColors phi T,
gamma ≠ delta →
∃ u : V,
u ∈ TreeSequenceVertexSet T ∧
gamma ∈ MissingColors G phi u ∧
Sum.inl u ∈ TwoColorComponent G phi gamma delta (Sum.inl v) ∧
∀ w ∈ TreeSequenceVertexSet T, gamma ∈ MissingColors G phi w → w = u

end GoldbergSeymour

end
31 changes: 31 additions & 0 deletions LeanPool/GoldbergSeymour/AbsorbingVertices.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/-
Copyright (c) 2026 Wesley Pegden. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Wesley Pegden
-/
module

public import LeanPool.GoldbergSeymour.AbsorbingVertex

/-!
# Absorbing Vertices

Part of the dependency closure of the Goldberg–Seymour edge-colouring theorem.
Adapted from Wesley Pegden’s Trellis formalization at
88d98c1d1a59d1f1bf7c4eb58e73f3945f6daf12; module paths and namespace changed.
-/

@[expose] public section

namespace GoldbergSeymour

/-- Outside vertices satisfying the absorbing-vertex condition for the given coloring and tree. -/
noncomputable def AbsorbingVertices {V E : Type*} [Fintype V] [Fintype E]
{G : LooplessMultigraph V E} {k : ℕ} {e0 : E} (T : TreeSequence G e0)
(phi : PartialEdgeColoring E k) : Finset V := by
classical
exact Finset.univ.filter fun v => AbsorbingVertex T phi v

end GoldbergSeymour

end
28 changes: 28 additions & 0 deletions LeanPool/GoldbergSeymour/AdjacentEdges.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/-
Copyright (c) 2026 Wesley Pegden. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Wesley Pegden
-/
module

public import LeanPool.GoldbergSeymour.Incident

/-!
# Adjacent Edges

Part of the dependency closure of the Goldberg–Seymour edge-colouring theorem.
Adapted from Wesley Pegden’s Trellis formalization at
88d98c1d1a59d1f1bf7c4eb58e73f3945f6daf12; module paths and namespace changed.
-/

@[expose] public section

namespace GoldbergSeymour

/-- Two edges are adjacent when they have a common incident vertex. -/
def AdjacentEdges {V E : Type*} (G : LooplessMultigraph V E) (e f : E) : Prop :=
∃ v, Incident G v e ∧ Incident G v f

end GoldbergSeymour

end
Loading
Loading