BoxPlacementCount #
The cell sets of a prescribed size in one cluster.
Equations
Instances For
The placements of a copy with prescribed sizes u: one cell set per cluster.
Equations
- Nibble.AX1.BoxCount.plc P u = Fintype.piFinset fun (a : ZMod 3) => Nibble.AX1.BoxCount.subs P (u a)
Instances For
Counting the cell sets of one cluster #
Counting the placements #
BoxPlacementEdge #
The ground set of the placement hypergraph: the cell-pair slots and the copy tokens.
Equations
- Nibble.AX1.PlaceVtx ι κ P = (Nibble.AX1.Slot ι P ⊕ κ)
Instances For
The slot of the cell pair (i, j) of the cluster pair (S, T), written in the orientation
prescribed by idx.
Instances For
The rectangle that the placement A of the copy c occupies in the cluster pair
(cl c a, cl c (a+1)).
Equations
- Nibble.AX1.rect idx cl c A a = Finset.image (fun (p : Fin P × Fin P) => Sum.inl (Nibble.AX1.orient idx (cl c a) (cl c (a + 1)) p.1 p.2)) (A a ×ˢ A (a + 1))
Instances For
The edge of the placement A of the copy c: its token and its three rectangles.
Equations
- Nibble.AX1.placeEdge idx cl c A = insert (Sum.inr c) (Finset.univ.biUnion (Nibble.AX1.rect idx cl c A))
Instances For
Occupying a slot. The placement A of c occupies the slot of the cell pair (i, j) in
the cluster pair (cl c p, cl c q) whenever i ∈ A p and j ∈ A q.
The slots of an edge. The placement A of c occupies the slot (S, T, i, j) exactly
when S and T are two clusters of c, in the orientation prescribed by idx, and i, j are
cells of the corresponding two sets of A.
A cell pair of an edge.
The size of an edge: the token plus the three rectangles.
A placement is recoverable from its edge.
Box placement hypergraph #
The number of placements of the copy c.
Equations
- Nibble.AX1.BoxPlace.placeCard P sz c = (Nibble.AX1.BoxCount.plc P (sz c)).card
Instances For
The placement hypergraph: all placements of all copies.
Equations
- Nibble.AX1.BoxPlace.placeFam P idx cl sz = Finset.univ.biUnion fun (c : κ) => Finset.image (Nibble.AX1.placeEdge idx cl c) (Nibble.AX1.BoxCount.plc P (sz c))
Instances For
The weight of a placement: the reciprocal of the number of placements of its copy, so that
the placements of a copy carry total weight 1.
Equations
- Nibble.AX1.BoxPlace.placeWt P sz U = ∑ c : κ, if Sum.inr c ∈ U then (↑(Nibble.AX1.BoxPlace.placeCard P sz c))⁻¹ else 0
Instances For
The edges of the placement hypergraph are the placements.
The contribution of one copy to the demand of the cluster pair (S, T).
Equations
Instances For
Sums over the placement hypergraph #
A sum over the placement hypergraph is a sum over copies and placements.
A filtered sum over the placement hypergraph.
The weight of a placement of c is the reciprocal of the number of placements of c.
The total weight is the number of copies.
Every edge is nonempty and has at most 1 + 3s₀² vertices.
The count of the placements of one copy through a prescribed slot #
The placements of c occupying a prescribed slot: either there are none, or the slot is
the cell pair (i, j) of two clusters cl c p, cl c q of c, and then they are at most a
sz(c,p)·sz(c,q)/P² fraction of all placements.
The placements of c through a slot of (S,T) are a demand/P² fraction.
The same count is at most s₀²/P².
Two slots pin a copy down in a third coordinate. This is the estimate that makes the codegrees of the placement hypergraph small, and it is where the small-box restriction enters.
The loads and the codegrees #
The load of a token is exactly 1.
Only the slots oriented by idx are occupied.
The load of a slot is at most the normalised demand of its cluster pair.
Two tokens are never together in an edge.
The codegree of a slot and a token is at most 9 s₀²/P².
The codegree of two slots is O(s₀/P) times the normalised demand: two placements sharing
two slots are pinned down in one further coordinate. This is where the small-box restriction is
used.
All weighted codegrees are O(s₀/P).
Weighted nibble for box placement #
There are not too many copies. Every copy demands at least one cell pair in the cluster pair of its first two clusters, so the number of copies is at most the total capacity.
The default allocation of a copy: an initial segment of the cells of the right size.
Equations
- Nibble.AX1.BoxPlace.defaultAlloc P sz hszP c a = (Finset.range (sz c a)).attachFin ⋯
Instances For
The small-box allocation residual, for a fixed accuracy and a fixed box bound.
The small-box allocation residual.
Unconditional AX1 #
The coupled block-cover residual follows from the closed box-allocation theorem.
The cover-side AX1 statement holds for every graph.
The fractional–integral triangle-packing gap is uniformly o(n²).
Finite near-regular hypergraph rounding: basic statement #
The public statement records the finite near-regular hypergraph rounding interface used by the nibble method. The underlying finite definitions are kept in the internal library.
The finite ceiling-carrying nibble interface for near-regular hypergraphs.
Equations
Instances For
Nibble rounding infrastructure #
This module makes the ceiling-carrying finite nibble interface available to the final assembly. The full development remains internal so that the public API is limited to stable theorem-level statements.
The finite nibble-rounding theorem in the public interface.
Finite near-regular hypergraph rounding #
Public entry point for the finite, ceiling-carrying near-regular hypergraph nibble theorem.
The fractional and integral triangle-packing optima differ by o(n²), uniformly over finite
graphs.
The fractional triangle-cover optimum exceeds the integral triangle-packing optimum by at
most o(n²), uniformly over finite graphs.