CoreGapRemoval #
Counting the deleted edges #
The 2-cliques lost when passing to a subgraph are at most the edges lost: the endpoint map
Sym2 V → Finset V sends the deleted edges onto the deleted 2-cliques.
A triangle-free graph has fractional triangle packing number 0.
The removal branch #
The removal branch. A graph with fewer than triangleRemovalBound(ε)·|V|³ triangles has
ν₃* ≤ ε|V|².
Mathlib's triangle removal lemma produces a triangle-free spanning subgraph G' obtained by
deleting fewer than ε|V|² edges. Since G' has no triangle, every triangle of G contains a
deleted edge, so the entire fractional packing is carried by the deleted edges, each of load at
most 1.
The removal branch, as a packing-gap bound. For every ε > 0 there is κ > 0 such that
every graph with fewer than κ|V|³ triangles has packing gap at most ε|V|².
The residual, restricted to triangle-rich graphs #
The core packing-gap statement at parameters (ε, δ), for triangle-rich graphs. As
Nibble.AX1.CoreGapAt ε δ, but only for graphs with at least κ|V|³ triangles.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The residual restricted to triangle-rich graphs, at the removal-lemma threshold.
Equations
- Nibble.AX1.CoreGapRichResidual = ∀ (ε : ℝ), 0 < ε → ∀ (δ : ℝ), 0 < δ → Nibble.AX1.CoreGapAtRich ε δ (SimpleGraph.triangleRemovalBound ε)
Instances For
Lowering the richness threshold strengthens the statement.
The reduction. The full core residual follows from its triangle-rich restriction: the triangle-poor instances are discharged outright by the removal branch.
The converse. The restricted residual is a weakening of the full one, so the two are equivalent: no strength has been smuggled in.
AX1 from the triangle-rich residual.
WeightedNibble #
The maximum in the definition of ν₃ is attained: there is a triangle packing of size
exactly ν₃ G.
Every triangle of G shares an edge with a maximum packing: otherwise it could be added.
ν₃* ≤ 3·ν₃. The 3ν₃ edges covered by a maximum triangle packing form a triangle cover,
and the total weight of any fractional packing is at most the number of edges in a cover.
|E(G)| ≤ |V|²/2, sharpening Nibble.YusterE.edge_card_le_card_sq.
An unconditional n²/9 bound on the packing gap. Since a maximum packing covers a set of
3ν₃ edges meeting every triangle, ν₃* ≤ 3ν₃, so the gap is at most ⅔ν₃*; and
ν₃* ≤ |E|/3 ≤ |V|²/6.
CoreGapAt ε δ for every ε ≥ 1/9, unconditionally — a genuine extension of the previously
proved range ε ≥ 1/3 (Nibble.AX1.coreGapAt_of_third).
The degree of the edge-based triangle hypergraph #
The triangle hypergraph has maximum degree at most |V|: a triangle through a fixed edge
e is insert v e for one of the |V| vertices v.
ν₃* ≥ 0.
A proved instance of the weighted nibble: the near-regular case #
Every fractional matching of an r-uniform hypergraph has total weight at most |W|/r.
The weighted nibble holds for nearly regular hypergraphs, as an immediate consequence of the
proved regular nibble Nibble.nibbleTheoremMostCeil_holds: the matching it produces already covers
all but a β-fraction of the ground set, and every fractional matching has total weight at most
|W|/r. This conclusion relies on the stated near-regularity hypotheses.
CoreGapNearComplete #
Edge counting #
The number of 2-cliques is at most the number of edges.
Few vertices of low degree in an edge-rich graph. With L the set of vertices of degree
below t, one has |L|·(|V| − t) ≤ |V|² − 2|E|.
The deletion at a set of vertices #
Deleting all edges at the vertices of L destroys at most |L|·|V| edges.
Deleting the edges at L lowers each degree outside L by at most |L|.
The near-complete branch #
The near-complete branch. For every ε > 0 there is η > 0 such that every large graph
with at least (1/2 − η)|V|² edges has packing gap at most ε|V|².
A universal constant below 1/9 #
A universal packing-gap constant below 1/9. There is c < 1/9 with
ν₃* − ν₃ ≤ c|V|² for every large graph: near-complete graphs are handled by
Nibble.AX1.gap_le_of_near_complete, all others by ν₃* ≤ |E|/3 together with ν₃* ≤ 3ν₃.
CoreGapRegularDegrees #
The triangle degree of an edge: the number of triangles of G containing it.
Equations
- Nibble.AX1.edgeTriangleDegree G e = {t ∈ G.cliqueFinset 3 | e ⊆ t}.card
Instances For
The triangle degree of an edge is its degree in the edge-based triangle hypergraph.
The near-regular branch. For every ε > 0 there are μ, η > 0 and d₀ > 0 such that any
graph whose edges all have triangle degree at most (1+μ)d, and at least (1−μ)d outside an
exceptional set of at most η|E| edges, for some d ≥ d₀, has packing gap at most ε|V|².
The triangle hypergraph is 3-uniform with codegree at most 1 ≤ μd, so these hypotheses are
exactly the input of the unconditional nibble Nibble.nibbleTheoremMostCeil_holds; the resulting
matching covers all but a 3ε-fraction of the edges, which is the packing-gap accounting
Nibble.AX1.gap_le_of_sub_matching.
The near-regular branch, no exceptional edges.
The near-regular branch, up to a small deletion. If a graph becomes near-regular in its
triangle degrees after deleting at most (ε/2)|V|² edges, its packing gap is at most ε|V|²:
deleting k edges moves ν₃* by at most k and can only decrease ν₃
(Nibble.AX1.gap_le_core_gap).
This is to Nibble.AX1.gap_le_of_regular_triangle_degrees what
Nibble.AX1.nibbleGap_of_dense_core is to the dense branch.
The complementary branch: uniformly small triangle degrees #
The small-degree branch. For every ε > 0 there is ρ > 0 such that a graph all of whose
edges lie in at most ρ|V| triangles has packing gap at most ε|V|².
The handshake identity ∑_e t(e) = 3·#triangles turns the degree bound into
#triangles ≤ ρ|V|³/6, which is the removal branch Nibble.AX1.nu3star_le_of_few_triangles.
Together with Nibble.AX1.gap_le_of_regular_triangle_degrees this leaves only the graphs whose
triangle degrees are simultaneously large somewhere and far from regular.
Deleting the heavy edges #
G with every edge of triangle degree above c deleted.
Equations
Instances For
The 2-cliques deleted by Nibble.AX1.deleteHeavy are exactly heavy edges.
Triangle degrees only decrease when passing to a subgraph.
The few-heavy-edges branch. For every ε > 0 there is ρ > 0 such that if the edges lying
in more than ρ|V| triangles number at most (ε/2)|V|², then the packing gap is at most ε|V|²:
delete them (which costs at most that many edges of the gap) and apply
Nibble.AX1.gap_le_of_small_triangle_degrees to what is left.
So the only graphs left open are those with at least (ε/2)|V|² edges each lying in more than
ρ|V| triangles.
CoreGapRegularDecomp #
Colour classes of an edge colouring #
The spanning subgraph of G consisting of the edges e with P e.
Equations
Instances For
Equations
- Nibble.AX1.instDecidableRelEdgeSelect G P x✝¹ x✝ = Classical.dec ((Nibble.AX1.edgeSelect G P).Adj x✝¹ x✝)
The i-th colour class of the edge colouring col.
Equations
- Nibble.AX1.colorPart G col i = Nibble.AX1.edgeSelect G fun (e : Finset V) => col e = i
Instances For
Equations
- Nibble.AX1.instDecidableRelColorPart G col i = Nibble.AX1.instDecidableRelEdgeSelect G fun (e : Finset V) => col e = i
Every edge of a triangle of the i-th colour class has colour i.
Hyperedges of a triangle hypergraph are nonempty.
Superadditivity of ν₃ over the colour classes of an edge colouring.
The colour classes are
edge-disjoint, so maximum packings of the classes unite to a packing of G.
The nibble, as a lower bound on ν₃ #
The nibble as an integral packing bound. For every β > 0 there are μ, η > 0 and d₀
such that a graph with near-regular triangle degrees at a scale d ≥ d₀ has
ν₃ ≥ (1−β)|E|/3.
The structural residual #
A near-regular decomposition at parameters (ε, μ, η, d₀). Every large graph carries an
edge colouring whose colour classes have near-regular triangle degrees — each at its own scale
d i ≥ d₀, with the lower bound allowed to fail on at most an η-fraction of that class's edges —
and whose total edge count is at least 3ν₃*(G) − 3ε|V|².
Equations
- One or more equations did not get rendered due to their size.
Instances For
The structural residual: a near-regular decomposition at every window of parameters.
Equations
Instances For
The reduction. A near-regular decomposition of every large graph implies the AX1 core
residual: the nibble packs each colour class up to a (1−β)-fraction of its edges
(Nibble.AX1.nu3_ge_of_regular_triangle_degrees), the classes are edge-disjoint so the packings
unite (Nibble.AX1.nu3_sum_colorParts_le), and the decomposition's edge count recovers ν₃*.
AX1 from the structural residual.
The residual is satisfiable: the one-colour witness #
Colouring every edge 0 leaves the graph unchanged.
The one-colour witness. A graph whose own triangle degrees are near-regular at a scale
d ≥ d₀ satisfies the requirement of Nibble.AX1.RegularDecompAt with the trivial one-colour
decomposition. So the structural residual is exactly the assertion that every large graph can be
edge-coloured into near-regular classes without losing more than ε|V|² of the fractional optimum:
it is a genuine statement about colourings, non-vacuous and satisfied by the regular graphs.
CoreGapRegularFamily #
Edge-disjoint families and the colouring they induce #
The first k members of the family H are pairwise edge-disjoint.
Equations
Instances For
A pair {x, y} of distinct vertices is a 2-clique of H iff x and y are adjacent.
The 2-cliques of two equal graphs agree, whatever the decidability instances.
Triangle degrees of two equal graphs agree, whatever the decidability instances.
The edge colouring induced by an edge-disjoint family: an edge gets the index of the member of
the family containing it, and the junk colour k if there is none.
Equations
- Nibble.AX1.familyColoring H k e = if h : ∃ i < k, e ∈ (H i).cliqueFinset 2 then Nat.find h else k
Instances For
The colour classes of Nibble.AX1.familyColoring are exactly the members of the family.
The family form of the structural residual #
A near-regular family for G at parameters (ε, μ, η, d₀): pairwise edge-disjoint
subgraphs H 0, …, H (k−1) of G, each with near-regular triangle degrees at its own scale
d i ≥ d₀ (the lower bound being allowed to fail on at most an η-fraction of that member's
edges), whose total edge count is at least 3ν₃*(G) − 3ε|V|².
Equations
- One or more equations did not get rendered due to their size.
Instances For
Weakening the accuracy of a near-regular family.
A family for a spanning subgraph is a family for the graph. If G' ≤ G and the fractional
optimum drops by at most c|V|² when passing to G', a near-regular family for G' is one for
G at accuracy ε + c.
The triangle-poor branch. A graph with fewer than triangleRemovalBound(ε)·|V|³ triangles
has ν₃* ≤ ε|V|², so the empty family is already a near-regular family.
From families to colourings #
A near-regular family gives the data required by Nibble.AX1.RegularDecompAt.
The reduction to the family form. If every large graph has a near-regular family, then the
structural residual Nibble.AX1.RegularDecompAt holds.
The converse. A colour decomposition is an edge-disjoint family, so the family form is
equivalent to Nibble.AX1.RegularDecompAt: nothing has been smuggled in.
Cleaning: passing to the regularity-reduced graph #
The cleaning step. Mathlib's SimpleGraph.regularityReduced keeps only the edges lying in
an ε₁/8-uniform pair of parts of density at least ε₁/4; for a uniform equipartition with enough
parts it discards fewer than ε₁|V|² edges
(SimpleGraph.regularityReduced_edges_card_aux), and deleting m edges costs the fractional
optimum at most m (Nibble.AX1.nu3star_le_add_deleted). So a near-regular family for the reduced
graph is one for G, at accuracy ε + ε₁.
The reduced residual #
The reduced residual at parameters (ε, μ, η, d₀) and regularity scale ε₁: every
regularity-reduced graph — the subgraph of a large graph G consisting of the edges inside the
ε₁/8-uniform pairs of density at least ε₁/4 of an ε₁/8-uniform equipartition P with a
bounded number of parts — which is triangle-rich carries a near-regular family recovering 3ν₃*
up to 3ε|V|².
This is what remains of Nibble.AX1.RegularDecompResidual after Szemerédi regularity and the
triangle removal lemma have been applied: all pairs of parts carrying edges are uniform and dense,
so the missing mathematics is the Haxell–Rödl splitting of each uniform pair among the cluster
triples together with the sparsification making the triangle degrees of each triple concentrate at
a common scale.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The reduced residual: at every window of parameters, for some regularity scale ε₁ as
small as one likes. The scale is existentially quantified — the cleaning loss it causes is paid for
out of the accuracy ε — so a proof is free to run the regularity lemma as finely as it needs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The reduction of the structural residual to the reduced one. Given ε, apply Szemerédi's
regularity lemma at the scale ε₁ ≤ ε/2 supplied by the residual; the reduced graph is either
triangle-poor — and then the empty family already works, by the triangle removal lemma — or
triangle-rich, and then the reduced residual applies. Cleaning costs at most ε₁|V|² ≤ (ε/2)|V|²
of the fractional optimum.
The converse. The reduced residual is a weakening of Nibble.AX1.RegularDecompResidual
(reduced graphs are graphs), so by Nibble.AX1.regularDecompResidual_of_reducedFamily the two are
equivalent: the passage to regularity-reduced graphs smuggles in no strength.
AX1 from the reduced residual.