Simple graph interface for the sum-zero triangle packing #
This file translates the finite edge-set formulation of the sum-zero construction into Mathlib's
SimpleGraph API. It leaves the constructive implementation in SumZeroTriangles.lean while
providing graph-valued triangles, their union, and a complete-graph corollary stated using graph
disjointness and degree.
The simple graph consisting of the edges spanned by the vertices in t.
Equations
Instances For
The simple graph consisting of all edges covered by the triples in P.
Equations
Instances For
@[instance_reducible]
instance
SumZeroTriangles.instDecidableAdjTriangleGraph
{V : Type u_1}
[DecidableEq V]
(t : Finset V)
:
@[instance_reducible]
instance
SumZeroTriangles.instDecidableAdjPackingGraph
{V : Type u_1}
[DecidableEq V]
(P : Finset (Finset V))
:
@[instance_reducible]
instance
SumZeroTriangles.instFintypeEdgeSetTriangleGraph
{V : Type u_1}
[DecidableEq V]
(t : Finset V)
:
Fintype ↑(triangleGraph t).edgeSet
@[instance_reducible]
instance
SumZeroTriangles.instFintypeEdgeSetPackingGraph
{V : Type u_1}
[DecidableEq V]
(P : Finset (Finset V))
:
Fintype ↑(packingGraph P).edgeSet
@[simp]
@[simp]
theorem
SumZeroTriangles.edgeSet_packingGraph
{V : Type u_1}
[DecidableEq V]
(P : Finset (Finset V))
:
@[simp]
@[simp]
theorem
SumZeroTriangles.edgeFinset_packingGraph
{V : Type u_1}
[DecidableEq V]
(P : Finset (Finset V))
:
theorem
SumZeroTriangles.exists_simpleGraph_triangle_packing
{V : Type u_1}
[DecidableEq V]
[Fintype V]
:
∃ (P : Finset (Finset V)),
(∀ t ∈ P, ⊤.IsNClique 3 t) ∧ (∀ t ∈ P, ∀ t' ∈ P, t ≠ t' → Disjoint (triangleGraph t) (triangleGraph t')) ∧ ∀ (v : V), (⊤ \ packingGraph P).degree v ≤ 3
Every finite complete graph has a packing by edge-disjoint triangles whose uncovered graph has maximum degree at most three.