Add roadmap: graph regularity, finite weak regularity, and arity-3 hypergraph complexes#66
Open
cameronfreer wants to merge 17 commits into
Open
Add roadmap: graph regularity, finite weak regularity, and arity-3 hypergraph complexes#66cameronfreer wants to merge 17 commits into
cameronfreer wants to merge 17 commits into
Conversation
… hypergraph complexes New roadmap (README.md definitive + Suggested.lean sorry-signatures), root index entry TauCetiProject#14 and root import. Builds the finite combinatorial regularity tower — graph regularity → strong graph regularity → an arity-3 strong hypergraph regularity + induced-counting package — consuming Mathlib's Szemerédi stack and the dense graph limits roadmap (graphons/cut norm/Frieze–Kannan, via finite adapters), and stopping at strong hypergraph regularity + counting (applications are named consumers). Suggested.lean pins ~35 declarations across Layers 0–9 with real bodies for every predicate and structure field (no `def _ : Prop := sorry`); `sorry` only for data-def bodies and the existence / counting theorems. Key pinned choices: `Finpartition (univ)` with `P ≤ Q` = refines; the size-weighted `weightedEnergy` (monotone under refinement) rather than Mathlib's unweighted `Finpartition.energy`; the Layer-2 bridge `exists_regular_equipartition_almost_refining` with an equipartition/large-V hypothesis, a complexity bound, and a real `AlmostRefines` containment clause; `StrongRegular` with a complexity bound; a total unordered `Colored3Graph κ₃` with a separate pair palette `κ₂`; `Polyad3` over role-ordered injective triples; top regularity over `Subpolyad3` and color-indexed; and the summit `IsStrongRegularApproximation3` (approximation + lower-skeleton + top-over-most-polyads + complexity) feeding `induced_counting_from_strong_regular_complex3`. v1 Suggested.lean imports only Mathlib; the graphon-handoff adapters are README prose until the dense graph limits roadmap lands upstream. `lake build` green (sorry warnings only). Roadmap drafted by Claude (Opus 4.8) with extensive review by Codex (GPT 5.5), and human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nforce Preempt "prose promises more than the compiled object enforces" review nits: - SubCellPair: it's structurally four finsets with s'⊆s, t'⊆t — not bound to a skeleton's vertex cells. Docstring now says the cell-pair binding is an intended later invariant, not enforced here (regularity is tested against these distinguished sub-cells, not arbitrary subsets). - Polyad3: the structure does not enforce one-representative-per-role-assignment normalization; docstring + README now flag it as a later invariant (a normalization field can be added when a counting milestone needs it), rather than claiming orderings are already de-duplicated. - exceptionalPolyadMass: pin the zero-denominator convention (no polyads / all-empty supports ⇒ mass 0 via Lean's _/0 = 0; substantive statements assume positive total support). Docstring/prose only; lake build green, still exactly 11 sorry warnings. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (pre-draft review)
Address a structural review: the Suggested.lean data structures under-enforced the hierarchy the
README advertised. Changes (README kept in sync):
- Pair colors on distinct ordered pairs: PairColorSystem.color : {p : V × V // p.1 ≠ p.2} → κ₂,
with a total colorOfPair : V → V → Option κ₂; pairColorDensity counts distinct pairs. Excludes
loops in the lower skeleton, matching the injective top supports.
- Polyad3 is now built over a lower skeleton S : PairSkeleton3: it stores the three vertex cells
(∈ S.vertexPart.parts), the three pair colors, and a support pinned by mem_support_iff to those
cells and pair colors — a polyad is determined by cells + lower pair colors, not an arbitrary
triple-support.
- Subpolyad3 is a genuine lower-skeleton restriction (sub-cells ⊆ P's cells; support = P.support
restricted to them), not an arbitrary sub-support. IsTopRegularOverPolyad tests against these.
- TriadicComplex3 κ₃ V now chooses its lower pair palette (pairColorCount : ℕ, skeleton over
Fin pairColorCount, polyads over that skeleton); the summit existential ranges over it, so it no
longer assumes an arbitrary fixed κ₂ works.
- Added IsPolyadDecomposition (polyad supports pairwise disjoint + covering the injective triples)
to IsStrongRegularApproximation3, so exceptionalPolyadMass is not vacuous.
- Split TopRegularOverMostPolyads H C η ε: local top-regularity parameter η = F C.complexity vs
exceptional-mass bound ε as separate arguments. regularityBound3 now depends on the top palette
size (Fintype.card κ₃).
- Induced counting: expectedInducedCount takes H and C; error scale is the pattern size
ε·|V|^F₀.k (not |V|³); README notes the placed/part-respecting version is the finer local target.
- Softened the Layer-8 r=2 gate to a shadow comparison (no literal specialization claim).
lake build green; 11 sorry warnings (data-def + theorem targets); no `def _ : Prop := sorry`.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Close the last "hierarchy not enforced" residue: IsPairColorRegular quantified over an arbitrary free SubCellPair (four unrelated finsets), so lower-skeleton regularity only used the vertex partition through the cell count. Make it skeleton-relative — IsPairColorRegular (S : PairSkeleton3) now quantifies over ordered pairs of actual vertex cells A, B ∈ S.vertexPart.parts and large sub-cells A' ⊆ A, B' ⊆ B. Dropped the now-redundant SubCellPair structure; LowerSkeletonRegular delegates to it at F #vertex-cells. README + reviewer checklist synced. lake build green; 11 sorry warnings; no `def _ : Prop := sorry`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ngth; fix normalization prose Self-review before wider draft review, two fixes: - The induced-counting theorem used the same ε as approximation error, local top-regularity parameter, exceptional mass, AND counting error — over-tight (standard counting needs the regularity strength small in terms of the error, pattern size, and palette size). Added the V-independent data target inducedCountingParameter3 (q₃ k : ℕ) (ε : ℝ) : ℝ (+ a positivity target), and the theorem now takes hreg at that parameter while concluding the ε·|V|^F₀.k bound. - The README still said polyad-support normalization "remains a later invariant", but mem_support_iff pins the support exactly (it cannot be thinned). Reworded: distinct cells admit at most one matching role-assignment per unordered triple; repeated-cell orderings are de-duplicated in the counting layer, not by thinning the support. Checklist synced. lake build green; 13 sorry warnings (the data-def/theorem targets); no `def _ : Prop := sorry`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… at the handoff Audit findings against the pinned toolchain and the graphon roadmap's current state (PR TauCetiProject#53): - The consume section now carries the "Entry points checked" note, after verifying every cited name at the pin: SimpleGraph.Copy / copyCount / labelledCopyCount / Free, szemeredi_regularity (+ SzemerediRegularity.bound, signature as quoted), IsUniform / nonUniforms / nonuniformWitness, equitabilise + exists_equipartition_card_eq (in Regularity/Equitabilise.lean, covered by the cited file list), edgeDensity, and the Energy/Chunk/Increment files. The "no hypergraph type in Mathlib" claim also checks out. - Layer 3 now consumes the block-averaged stepGraphonAvg by name (the actual Frieze-Kannan output in the graphon roadmap, whose Layer-2 public API is block-average based) alongside stepGraphon, and gains the energy bridge: Layer 1's finite weightedEnergy is the finite counterpart of the graphon roadmap's analytic graphonPartitionEnergy, with the compatibility through finiteGraphGraphon an adapter target -- so the two L2-of-block-average energies are bridged, not parallel developments. Layer 1 gets the forward pointer; the Layer-3 gate now also demands the bridge. Nothing regularity-related has landed in TauCeti main (no Combinatorics/ directory), so no as-landed status notes apply. Suggested.lean builds green (sorry warnings only) and complies with the Prop-placeholder ban (all Props carry real bodies; sorry only on data defs and theorems). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ions Review fixes on the audit commit: - The Layer-3 energy bridge is now type-correct in prose: pinned to G : SimpleGraph (Fin m) with 0 < m and P : Finpartition (univ : Finset (Fin m)) (matching finiteGraphGraphon's carrier), with the graphon-side partition of I spelled out (unions of the equal vertex subintervals over each P-part), a proposed adapter name graphonPartitionEnergy_finiteGraphGraphon (the graphon roadmap's homDensity_finiteGraphGraphon naming pattern), transport along V = Fin (Fintype.card V) for generic finite V, and the no-normalization-mismatch note (edgeDensity counts ordered pairs, matching the |A||B|/m^2 weights, diagonal blocks included). - The Partitions citation is now maximally unambiguous: equitabilise and exists_equipartition_card_eq are both cited at Combinatorics/SimpleGraph/Regularity/Equitabilise.lean directly, rather than through the joint file list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The pinned bridge assumes 0 < m, so the generic-V transport clause now says nonempty finite V and notes the empty case is degenerate on both sides. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nt, cite regularity-lemmata Layer 3 becomes self-contained finite weak regularity - steppedCount, cutDiscrepancy with its eliminator, and a direct finite Frieze-Kannan theorem, now pinned in Suggested.lean - independent of the dense graph limits roadmap: the finite and analytic theories are parallel formulations, neither derived from the other, with all comparisons demoted to an optional-interoperability paragraph that gates nothing. The Layer-8 summit now quantifies an explicit approximant H': the edit discrepancy editDiscrepancy3 H H' gains a real body (unordered color disagreements at the ordered 6/|V|^3 normalization), top regularity is asserted for H' over the complex's polyads, and Layer-9 counting is performed on H' and transferred back to H through the edit bound - previously the discrepancy referred to an induced top coloring the complex did not carry. TriadicComplex3.complexity is now computed from the structure (vertex cells + pair colors + polyads) rather than a free stored field, so ComplexityBounded and F C.complexity genuinely control the complex. Now that cameronfreer/regularity-lemmata is public, per-layer prior-formalization notes record what is proved there (partition/graph layers in directed-relation generality; Boolean precursors of the arity-3 summits; the binary-palette counting blueprint for Layer 9) and the shape deviations a TauCeti implementation must reconcile, with a summary section, Tao and Zhao references, and acknowledgements. Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, diagonal gate, Layer 2-4 bridge Four review-driven strengthenings ahead of formal roadmap review: - Subpolyad3 becomes the Rodl-Schacht/NRS subtriad: arbitrary subgraphs of the parent polyad's three pair graphs (Polyad3.pairSupport01/02/12, with the vertex-subcell restriction ofSubcells only a constructor), and IsTopRegularOverPolyad becomes the rank-r test over unions of at most r subpolyads (r = 1 the disc form; IsVertexBoxRegularOverPolyad kept as the honest weaker predicate, never consumed by the counting summit) - vertex-box discrepancy alone is not the counting-ready strength. - expectedInducedCount is intrinsically specified: PatternPlacement3 and PairColorPlacement3 (with Polyad3.ofData), placedInducedCopyCount, and expectedInducedCountAt with the product shape pinned (cell-size factor x pair-color densities x top-color relative densities in H', never via inducedCopyCount); placed_induced_counting3 is pinned as the real counting lemma the global theorem is assembled from. - The diagonal-gate route gets its load-bearing hypotheses: VertexCellsControlled (equitable vertex cells, complexity floor t0) in the summit's conclusion and diagonalControl3 in the global counting theorem. - The Layer 2 -> Layer 4 connection is a named target, exists_regular_exact_refining_equipartition (nested equitabilisation), StrongRegular's bound gains the starting complexity l0, and exists_strong_regular becomes compositional (P0, minimum complexity l, almost-refinement conclusion). Smaller: TriadicComplex3.toHypergraphComplex keeps the generic complex consumed; the regularity-lemmata migration source is pinned at commit f7403c9; Mathlib's increment machinery is called a proof template, not a consume; the title gains "finite weak regularity" (README heading, root index, module docstring); inducedCopyCount's docstring reserves "part-respecting" for the placed statement. Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…calize counting to the approximant Three signature repairs in Layers 8-9: - regularityBound3 gains the vertex floor t0 (and IsStrongRegularApproximation3 with it): the summit demands both t0 <= #vertex-cells <= C.complexity and C.complexity <= the bound, so a t0-independent bound made the summit false for t0 above it; the large-host hypothesis becomes regularityBound3 ... r t0 <= |V|. - placed_induced_counting3 now counts in the approximant H' and only at transversal placements (PatternPlacement3.Transversal): a small global edit discrepancy can concentrate inside one placement, so the previous per-placement bound on H-counts was false; the H'-to-H step is the new named global lemma inducedCopyCount_edit_transfer (k^3 * editDiscrepancy3 * |V|^k), and the global theorem is the assembly placed-over-transversal + diagonal gate + edit transfer. - PairColorPlacement3 assigns one pair color per canonically oriented pattern pair i < j (polyad_mem for i < j < l): multiplying both orientations' marginal densities assumed an independence IsPairColorRegular does not provide (reverse colors could always equal forward colors); one oriented bigraph per role pair also matches the primary-source triad shape. Smaller: Convention 2 and the Layer-1 wording no longer claim Mathlib's increment machinery is consumed directly; exists_strong_regular's docstring says the Layer-2 wrapper guarantees only almost-refinement (rather than claiming exact refinement impossible next to the nested target that produces one). Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…the exceptional-route bound The strong approximation controls top regularity only over MOST polyads, but placed_induced_counting3 quantified over arbitrary routes - a route through an exceptional polyad has no counting control, so the local theorem was too strong. Now: - PairColorPlacement3.polyad names the polyad a route induces at a pattern triple, and PairColorPlacement3.IsTopRegularRoute requires every induced polyad to be (eta, r)-top-regular for the approximant; placed_induced_counting3 takes that hypothesis. - exceptional_route_mass_le is the named step-2 union bound (tuples meeting an exceptional polyad's support number at most k^3 * exceptionalPolyadMass * |V|^k, under the decomposition hypothesis), so the exceptional-route step is explicit rather than another hidden bridge. - The global theorem's docstring states the four-step assembly: placed counting on transversal top-regular routes; the exceptional-route mass bound; the diagonal gate for nontransversal placements; the global edit transfer from H' to H. Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…edule, predicted exceptional mass Two linked Layer-9 accounting gaps, closed: - Route budget: a placement admits up to pairColorCount^(k choose 2) lower-color routes, so the placed theorem's bare per-route error eps * prod |cell_i| could not sum to the claimed global eps * |V|^k. placed_induced_counting3 now concludes at the explicit per-route budget routeBudget3 C k eps = eps / max 1 (q2^(k choose 2)). The regularity hypotheses now run at a genuine schedule inducedCountingSchedule3 : N -> R (not a constant), deliberately separate from the global edit/exceptional parameter; and LowerSkeletonRegular evaluates its schedule at the lower complexity (#vertex-cells + #pair-colors) rather than the cell count alone, following the published architecture's lower error at the pairs complexity (Terry, arXiv:2404.02030, now cited). - Predicted exceptional mass: exceptional_route_mass_le bounds only the actual tuples touching exceptional polyads, but expectedInducedCount sums predictions over all routes including discarded ones; the companion exceptionalPredictedMass3 / exceptional_route_prediction_mass_le (consuming lower-skeleton regularity at the schedule) bounds the predicted side, and the global theorem's four-step assembly names both. Also pinned: one_le_inducedCountingRank3 (rank 0 makes the top-regularity test vacuous on nonempty polyads). Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-mass lemma's parameters The four-step error accounting now closes: - The final eps splits into six explicit eps/6 charges (placed counting; actual discarded mass; predicted discarded mass; predicted lower-route slack; diagonal; edit transfer). placed_induced_counting3 concludes at routeBudget3 C k (eps/6) - the full eps allocated to step 1 would already exhaust the budget before the other steps - and the charge-pinning inequalities inducedCountingParameter3_charge (k^3 * parameter <= eps/6) and inducedCountingSchedule3_charge (k^3 * l^(k choose 2) * schedule(l) <= eps/6, route-count factor included) show every charge fits its fraction. - exceptional_route_prediction_mass_le takes separate epsmass/epscount (the global theorem supplies the mass bound at the parameter but the schedule at the final error - one shared eps was not instantiable without an unpinned comparison), charges the schedule at the lower complexity #cells + #pair-colors (the evaluation point hlower actually supplies, not C.complexity), and its slack carries the route-count factor q2^(k choose 2) (k^2 * schedule did not account for accumulation over routes). Also: inducedCountingSchedule3_pos (required for the summit's hF), and inducedCountingParameter3's stale docstring now describes it as the global edit/exceptional bound rather than the local regularity parameter. Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The diagonal charge was the one of the six asserted only in prose: nontransversal_actual_and_predicted_mass_le now pins it - under VertexCellsControlled at diagonalControl3 F0.k eps, the sum of BOTH sides omitted by transversal counting (the actual injective tuples with two coordinates in a common cell, stated as a concrete filter, plus the predicted mass of nontransversal placements, nontransversalPredictedMass3) is at most eps/6 * |V|^k. The global theorem's step 3 and the README's "each charge closed by a pinned target" now reference it. Roadmap revision drafted by Claude (Fable 5), and human-reviewed, corrected, and directed by me. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cameronfreer
marked this pull request as ready for review
July 16, 2026 01:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status
Ready for roadmap review. The roadmap is self-contained against the pinned Mathlib:
Suggested.leanimports only Mathlib, and no layer depends on any other in-flight roadmap — in particular, not on the dense graph limits roadmap (#53), which is an independent parallel analytic development (see Summary). (#53 and this PR both currently claim root-index position 14; whichever merges second needs a trivial index/import rebase.)Summary
Adds a roadmap for a Tau Ceti library entry on the finite combinatorial regularity tower: graph regularity → finite weak (Frieze–Kannan) regularity → strong graph regularity → an arity-3 strong hypergraph regularity and induced-counting package. Mathlib already carries the finite-graph regularity ecosystem (
SimpleGraph, edge densities,Finpartition/IsEquipartition/equitabilise,szemeredi_regularity, triangle counting/removal,SimpleGraph.Copy). The dense graph limits roadmap (graphons, the analytic cut norm, cut distance, analytic Frieze–Kannan, sampling) is an independent parallel analytic development: neither theory's theorems are derived from the other's, nothing here waits on it, and every finite–analytic comparison is an optional downstream adapter — never a layer dependency or an acceptance gate.The local summit is deliberately stronger than a weak 3-uniform lemma: an arity-3 regular approximation of a hierarchy — vertex cells → ordered pair-color systems → pair cut-regularity → triads/polyads → relative top densities over polyads → top-type regularity — with an explicit approximant: the summit produces a colored 3-graph
H'within a pinned edit discrepancy of the inputHand regular over the complex's polyads, and induced counting is performed onH'— through an intrinsic placed-count formula — and transferred back toHthrough the edit bound. Top regularity is the counting-ready Rödl–Schacht/NRS test: subpolyads select arbitrary subgraphs of the parent polyad's three pair graphs, and regularity is tested against rank-runions of them (vertex-box discrepancy is kept only as an honest weaker predicate). Top relations are colored/typed (not Boolean edge-only) precisely so induced counting controls both presence and absence. v1 stops at strong hypergraph regularity plus counting; induced removal, arithmetic applications, and exchangeable-array representations are named consumers, not the peak.The roadmap follows the existing TauCetiRoadmap format:
README.md(conventions with inline rationale, consumed-Mathlib inventory, cross-roadmap dependency table, layer plan with per-layer prior-formalization notes, acceptance gates, an optional-interoperability paragraph, non-goals, references, reviewer checklist)Suggested.leanwith compiledsorry-signaturesREADME.mdindex entryTauCetiRoadmap.leanimportSuggested.leanpins 81 top-level declarations across Layers 0–9 that build green against the pinned Mathlib (lake build, verified locally;sorryis allowed in this human-owned roadmap library). It carries 33sorrys: sixteen data targets whose exact formulas are later milestones — the bounds and schedulesrefiningRegularityBound/nestedRefinementBound/strongGraphRegularityBound/regularityBound3/inducedCountingParameter3/inducedCountingSchedule3/inducedCountingRank3/diagonalControl3, the counts and massesColored3Graph.inducedCopyCount/placedInducedCopyCount/expectedInducedCountAt/expectedInducedCount/exceptionalPredictedMass3/nontransversalPredictedMass3, and the constructorsSubpolyad3.ofSubcells/TriadicComplex3.toHypergraphComplex— and seventeen theorem targets (energy monotonicity, the Layer-2 bridge,frieze_kannan, nested equitabilisation, strong regularity, the arity-3 summit, parameter and schedule positivity, the two charge-pinning inequalities, the rank lower bound, the placed counting theorem, the exceptional-route bounds on both the actual and predicted sides, the nontransversal actual-plus-predicted bound, the edit-transfer lemma, and the global counting theorem). Following the roadmap-writing guide, there are nodef _ : Prop := sorryplaceholders and no contentlessPropfields: predicate bodies that appear state real mathematical clauses in terms of the currently pinned data — in particulareditDiscrepancy3 H H'is a real definition (unordered color disagreements between the input and the explicit approximant, at the ordered6/|V|³normalization), soApproximates3has a fully concrete body, andexpectedInducedCountAt's docstring pins the product shape of the prediction so it cannot be defined throughinducedCopyCount.It fixes the load-bearing choices so contributors don't oscillate:
SimpleGraph; partitions areFinpartition (univ)withP ≤ QmeaningPrefinesQ.weightedEnergy(theL²-of-block-average energy, monotone under refinement by Pythagoras), deliberately not Mathlib's unweightedFinpartition.energy(anoffDiagaverage that is not Jensen-monotone under arbitrary refinement). Comparison with the dense graph limits roadmap's analyticgraphonPartitionEnergyis optional interoperability, not a required adapter — the finite energy stands alone.exists_regular_equipartition_almost_refiningcarries an equipartition hypothesis onP₀, a large-Vhypothesis, a complexity bound, and a realAlmostRefinescontainment clause — so the discrete partition is not a vacuous witness.steppedCount, the count-scaledcutDiscrepancy(deliberately not called a "cut norm" — the analytic cut norm is the graphon roadmap's independent object), and a direct finite Frieze–Kannan theorem with the explicit4^(⌈1/ε²⌉+1)bound; no graphon imports or analytic prerequisites.StrongRegularcarries a complexity bound in the starting complexityl₀(not just uniformity + energy, which the discrete partition satisfies); the Layer 2 → Layer 4 connection is the named nested-equitabilisation bridgeexists_regular_exact_refining_equipartition(Layer 2 outputs only an almost-refinement,StrongRegulariterates on exact nesting); andexists_strong_regularis compositional — starting equipartitionP₀, requested minimum complexityl, almost-refinement conclusion.Colored3Graph κ₃; pair colors use a separate palette on distinct ordered pairs ({p : V × V // p.1 ≠ p.2} → κ₂). Pair regularity is skeleton-relative (over actual cell pairs and their sub-cells).Polyad3 Sis built over a lower skeletonSand stores its three pair colors (not an arbitrary triple-support), with its three pair graphs and thePolyad3.ofDataconstructor exposed;Subpolyad3is the Rödl–Schacht/NRS subtriad — arbitrary subgraphs of the parent's three pair graphs (vertex-subcell restriction only a constructor); top regularity is the color-indexed rank-rtestIsTopRegularOverPolyadover unions of subpolyads, with the vertex-box form retained only as the honest weakerIsVertexBoxRegularOverPolyad, never consumed by the counting summit.TriadicComplex3 κ₃chooses its own lower pair palette (Fin pairColorCount), soexists_strong_regular_approximation3does not assume an arbitrary fixedκ₂works — and it quantifies an explicit approximantH', tied toHby the realeditDiscrepancy3, so the discrepancy compares two colorings that both exist.IsStrongRegularApproximation3 H H' C ε F r t₀bundles approximation-to-H, a realIsPolyadDecomposition(disjoint + covering, soexceptionalPolyadMassis not vacuous), lower-skeleton regularity,(F C.complexity, r)-top-regularity ofH'over most polyads (exceptional-mass boundε), and a complexity bound (viaregularityBound3depending on the top palette size, the rank, and the vertex floort₀— the floor must feed the bound, else the summit is false fort₀above at₀-independent bound) — whereC.complexityis computed from the structure (vertex cells + pair colors + polyads), never a free stored field, so the bound genuinely controls the complex. The summit's conclusion additionally carriesVertexCellsControlled C t₀— equitable vertex cells with a requested complexity floor — the diagonal-gate input the counting layer consumes.expectedInducedCount H' C F₀is intrinsically specified — a sum over placements (PatternPlacement3,PairColorPlacement3) of a pinned product of cell-size, pair-color-density, and top-color-relative-density factors, never defined throughinducedCopyCount(which would hide the counting theorem inside the definition) — with pair colors assigned to one canonical orientation per pattern pair (i < j), never both marginals, whose joint correlation pair regularity does not control. The real counting lemma is the placed local theoremplaced_induced_counting3— at transversal placements with top-regular routes (IsTopRegularRoute: every polyad the route induces is one the approximation actually controls — the strong approximation guarantees top regularity only over most polyads, so an unrestricted route could pass through an exceptional polyad wherehregsupplies nothing), counting in the approximantH'(per-placement counting inHwould be false: a small global edit discrepancy can concentrate inside one placement), at the per-route budget of theε/6placed charge —routeBudget3 C k (ε/6)withrouteBudget3 = ε / max 1 (q₂^(k choose 2)): a placement admits up toq₂^(k choose 2)routes, and allocating the fullεto placed counting would exhaust the budget before the remaining steps. The regularity runs at a genuine scheduleinducedCountingSchedule3 : ℕ → ℝ(local strengths —LowerSkeletonRegularevaluates it at the lower complexity#cells + #pair-colors,TopRegularOverMostPolyadsatC.complexity; positive everywhere byinducedCountingSchedule3_pos, as the summit'shFrequires), deliberately separate from the global edit/exceptional parameterinducedCountingParameter3. The globalinduced_counting_from_strong_regular_complex3splits the finalεinto six explicitε/6charges across four steps, each closed by a pinned target: (1) the budgeted placed theorem on transversal, top-regular routes; (2) the discarded routes bounded on both sides — actual mass byexceptional_route_mass_le(at mostk³·exceptionalPolyadMass·|V|^ktuples) and predicted mass byexceptionalPredictedMass3/exceptional_route_prediction_mass_le(separateεmass/εcountso the lemma is instantiable without an unpinned comparison; the schedule charged at the lower complexity it is actually supplied at; the route-count factorq₂^(k choose 2)in the slack), their fits pinned by the charge inequalitiesinducedCountingParameter3_charge(k³·parameter ≤ ε/6) andinducedCountingSchedule3_charge(k³·ℓ^(k choose 2)·schedule(ℓ) ≤ ε/6); (3) the diagonal floorVertexCellsControlled C (diagonalControl3 F₀.k ε)bounding the omitted nontransversal placements — actual and predicted, pinned bynontransversal_actual_and_predicted_mass_le— at itsε/6charge; (4) the named, inherently global edit transferinducedCopyCount_edit_transferfromH'toH(fit again by the parameter charge) — predicting the induced count in the originalHat the pattern-size error scale|V|^{F₀.k}, with the rank pinned≥ 1(one_le_inducedCountingRank3— rank0is vacuous on nonempty polyads).Prior formalization
Much of the roadmap is already proved in the public Lean 4 library
cameronfreer/regularity-lemmata—sorry-free, no custom axioms (CI-enforced), whose partition/graph layers are developed for directed relations on an arbitraryFinsethost (its hypergraph development is Boolean and unordered); declaration-level claims are pinned at commitf7403c9. Proved there: the mass-weighted energy layer; the two-partition almost-refining bridge (the self-regular form remains this roadmap's open Layer-2 target); the finite Frieze–Kannan theorem, of which Layer 3's targets are theSimpleGraphspecialization; a strong-witness theorem plus a closely related binary-palette counting analogue (Layer 4's gate itself stays open); Boolean precursors of the arity-3 summits — including the edited summit whose deletion-only subgraph is the Boolean specialization precedent for Layer 8's explicit-approximant architecture, and the disc/polyad test surfaces (IsDiscRegularAt,IsPolyadRegularAt … r) that Layer 7's rank-rtop regularity aligns with by design; and the transversal/diagonal-gate counting architecture behind Layer 9. The roadmap's per-layer Prior formalization notes record the exact shape deviations a TauCeti implementation must reconcile. The analytic parallel iscameronfreer/graphon.Roadmap shape
The roadmap organizes the development into ten layers (0–9):
UniformHypergraph/edgeDensity, the total unordered top-coloring carrierColored3Graph κ₃, colored/hypergraph copy-counts and densities (with thecard V < r ⇒ density 0convention)weightedEnergyand its refinement-monotonicity (Mathlib'sincrementboost machinery is a proof template — it is stated for the unweighted energy — not a direct consume)szemeredi_regularity, not duplicating itsSimpleGraphstatement)steppedCount, the count-scaledcutDiscrepancywith its eliminatorcutDiscrepancy_le_iff, and the direct finite Frieze–Kannan theoremfrieze_kannan(bound4^(⌈1/ε²⌉+1)), withfrieze_kannan_cutDiscrepancyderived from it — self-contained, no graphon imports or analytic prerequisitesexists_regular_exact_refining_equipartition,StrongRegular(coarse/fine equipartitions, uniformity, weighted-energy gap, complexity bound in the starting complexityl₀), and the compositionalexists_strong_regular(starting equipartition, minimum complexity, almost-refinement conclusion) plus a counting lemma consuming itHypergraphComplex(consumed via the Layer-8 bridge),PairColorSystem(distinct ordered pairs),PairSkeleton3, the skeleton-relativeIsPairColorRegular,LowerSkeletonRegularPolyad3 Sover a lower skeleton (cells + three pair colors, withPolyad3.ofDataand the three pair graphspairSupport₀₁/₀₂/₁₂),Subpolyad3in the NRS subtriad form (arbitrary subgraphs of the parent pair graphs;ofSubcellsa constructor), color-indexedrelDensityOn/relativeDensityrIsTopRegularOverPolyad(per color, overunionSupportof at mostrsubpolyads;r = 1is the disc form), withIsVertexBoxRegularOverPolyadthe honest weaker predicateTriadicComplex3 κ₃(chooses itspairColorCount;complexitycomputed from the structure;toHypergraphComplexbridge), the explicit approximantH'with the realeditDiscrepancy3andApproximates3,IsPolyadDecomposition,exceptionalPolyadMass/TopRegularOverMostPolyads(forH', at rankr),VertexCellsControlled,IsStrongRegularApproximation3 H H' C ε F r t₀withregularityBound3 q₃ ε F r t₀(the vertex floor feeds the complexity bound — at₀-independent bound would make the summit false for larget₀),exists_strong_regular_approximation3(for every rankrand vertex floort₀, underregularityBound3 … ≤ |V|; existential over bothH'and the complex)FiniteColored3Pattern,inducedCopyCount, the placement layerPatternPlacement3(+Transversal) /PairColorPlacement3(one pair color per canonically oriented pattern pairi < j— never both marginals) with its route-level controlPairColorPlacement3.polyad/IsTopRegularRoute,placedInducedCopyCountand the pinnedexpectedInducedCountAt/expectedInducedCount H' C F₀, the global parameterinducedCountingParameter3and the genuine scheduleinducedCountingSchedule3 : ℕ → ℝ(+ positivity, needed for the summit'shF; deliberately separate roles), the charge-pinning inequalitiesinducedCountingParameter3_charge/inducedCountingSchedule3_charge(every global charge fits itsε/6fraction, the schedule charge carrying the route-count factorℓ^(k choose 2)),inducedCountingRank3(pinned≥ 1) /diagonalControl3with its charge pinned as a theorem (nontransversalPredictedMass3/nontransversal_actual_and_predicted_mass_le: the sum of both sides omitted by transversal counting — actual repeated-cell tuples plus predicted nontransversal mass — at mostε/6·|V|^kunder the floor), the per-route budgetrouteBudget3(ε / max 1 (q₂^(k choose 2))— bare per-route errors cannot sum over the route count to the global bound), the placed local theoremplaced_induced_counting3(the real counting lemma: transversal placements with top-regular routes, counting in the approximantH', at the per-route budget of theε/6placed charge), the discarded-route bounds on both sides (exceptional_route_mass_lefor actual mass;exceptionalPredictedMass3/exceptional_route_prediction_mass_lefor predicted mass — with separateεmass/εcount, the schedule charged at the lower complexity it is supplied at, and the route-count factor in the slack), the named global edit transferinducedCopyCount_edit_transfer, and the globalinduced_counting_from_strong_regular_complex3(the finalεsplit into six explicitε/6charges across four steps: budgeted placed counting on transversal top-regular routes + discarded-route bounds (actual, predicted mass, predicted route-slack) + diagonal gate + edit transfer)It also records the eight pinned design conventions (with inline rationale), the entry-point-checked consumed-Mathlib inventory, the cross-roadmap dependency table (Mathlib / dense graph limits as independent parallel theory / exchangeability), per-layer prior-formalization notes with a summary section, the acceptance gates, the optional-interoperability paragraph, a non-goals section, and a reviewer checklist.
Files changed
Verification
lake buildgreen at Leanv4.31.0-rc1/ Mathlib9caeba1000ef8f302920981f4a08651d325abc81(33sorrywarnings only — the data-def / theorem targets listed above).Suggested.leanimports only Mathlib because the finite roadmap is self-contained: Layer 3 is finite weak regularity with no graphon prerequisites, and analytic comparison adapters are out of scope (the README's Optional interoperability paragraph).szemeredi_regularitysignature checked directly against the pin; everyregularity-lemmatadeclaration cited in the README verified to resolve in that repository; no existing Mathlib hypergraph carrier was found to reuse.Authorship
Authored by Cameron Freer, with the assistance of GPT Pro 5.5, Claude Code (Opus 4.8 and Fable 5), Codex (GPT 5.5 and 5.6 Sol), lean4-skills, and lean-lsp-mcp.