Skip to content

Add roadmap: graph regularity, finite weak regularity, and arity-3 hypergraph complexes#66

Open
cameronfreer wants to merge 17 commits into
TauCetiProject:mainfrom
cameronfreer:roadmap/regularity
Open

Add roadmap: graph regularity, finite weak regularity, and arity-3 hypergraph complexes#66
cameronfreer wants to merge 17 commits into
TauCetiProject:mainfrom
cameronfreer:roadmap/regularity

Conversation

@cameronfreer

@cameronfreer cameronfreer commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Status

Ready for roadmap review. The roadmap is self-contained against the pinned Mathlib: Suggested.lean imports 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) regularitystrong 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 input H and regular over the complex's polyads, and induced counting is performed on H' — through an intrinsic placed-count formula — and transferred back to H through 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-r unions 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:

  • narrative 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.lean with compiled sorry-signatures
  • root README.md index entry
  • root TauCetiRoadmap.lean import

Suggested.lean pins 81 top-level declarations across Layers 0–9 that build green against the pinned Mathlib (lake build, verified locally; sorry is allowed in this human-owned roadmap library). It carries 33 sorrys: sixteen data targets whose exact formulas are later milestones — the bounds and schedules refiningRegularityBound / nestedRefinementBound / strongGraphRegularityBound / regularityBound3 / inducedCountingParameter3 / inducedCountingSchedule3 / inducedCountingRank3 / diagonalControl3, the counts and masses Colored3Graph.inducedCopyCount / placedInducedCopyCount / expectedInducedCountAt / expectedInducedCount / exceptionalPredictedMass3 / nontransversalPredictedMass3, and the constructors Subpolyad3.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 no def _ : Prop := sorry placeholders and no contentless Prop fields: predicate bodies that appear state real mathematical clauses in terms of the currently pinned data — in particular editDiscrepancy3 H H' is a real definition (unordered color disagreements between the input and the explicit approximant, at the ordered 6/|V|³ normalization), so Approximates3 has a fully concrete body, and expectedInducedCountAt's docstring pins the product shape of the prediction so it cannot be defined through inducedCopyCount.

It fixes the load-bearing choices so contributors don't oscillate:

  • Graphs / partitions: finite graphs are SimpleGraph; partitions are Finpartition (univ) with P ≤ Q meaning P refines Q.
  • Energy: the size-weighted weightedEnergy (the -of-block-average energy, monotone under refinement by Pythagoras), deliberately not Mathlib's unweighted Finpartition.energy (an offDiag average that is not Jensen-monotone under arbitrary refinement). Comparison with the dense graph limits roadmap's analytic graphonPartitionEnergy is optional interoperability, not a required adapter — the finite energy stands alone.
  • Layer-2 bridge: exists_regular_equipartition_almost_refining carries an equipartition hypothesis on P₀, a large-V hypothesis, a complexity bound, and a real AlmostRefines containment clause — so the discrete partition is not a vacuous witness.
  • Finite weak regularity is this roadmap's own (Layer 3): steppedCount, the count-scaled cutDiscrepancy (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 explicit 4^(⌈1/ε²⌉+1) bound; no graphon imports or analytic prerequisites.
  • Strong graph regularity: StrongRegular carries a complexity bound in the starting complexity l₀ (not just uniformity + energy, which the discrete partition satisfies); the Layer 2 → Layer 4 connection is the named nested-equitabilisation bridge exists_regular_exact_refining_equipartition (Layer 2 outputs only an almost-refinement, StrongRegular iterates on exact nesting); and exists_strong_regular is compositional — starting equipartition P₀, requested minimum complexity l, almost-refinement conclusion.
  • Colors: top relations are a total unordered 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).
  • Hierarchy: Polyad3 S is built over a lower skeleton S and stores its three pair colors (not an arbitrary triple-support), with its three pair graphs and the Polyad3.ofData constructor exposed; Subpolyad3 is 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-r test IsTopRegularOverPolyad over unions of subpolyads, with the vertex-box form retained only as the honest weaker IsVertexBoxRegularOverPolyad, never consumed by the counting summit.
  • Summit: TriadicComplex3 κ₃ chooses its own lower pair palette (Fin pairColorCount), so exists_strong_regular_approximation3 does not assume an arbitrary fixed κ₂ works — and it quantifies an explicit approximant H', tied to H by the real editDiscrepancy3, so the discrepancy compares two colorings that both exist. IsStrongRegularApproximation3 H H' C ε F r t₀ bundles approximation-to-H, a real IsPolyadDecomposition (disjoint + covering, so exceptionalPolyadMass is not vacuous), lower-skeleton regularity, (F C.complexity, r)-top-regularity of H' over most polyads (exceptional-mass bound ε), and a complexity bound (via regularityBound3 depending on the top palette size, the rank, and the vertex floor t₀ — the floor must feed the bound, else the summit is false for t₀ above a t₀-independent bound) — where C.complexity is 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 carries VertexCellsControlled C t₀ — equitable vertex cells with a requested complexity floor — the diagonal-gate input the counting layer consumes.
  • Counting: 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 through inducedCopyCount (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 theorem placed_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 where hreg supplies nothing), counting in the approximant H' (per-placement counting in H would be false: a small global edit discrepancy can concentrate inside one placement), at the per-route budget of the ε/6 placed chargerouteBudget3 C k (ε/6) with routeBudget3 = ε / max 1 (q₂^(k choose 2)): a placement admits up to q₂^(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 schedule inducedCountingSchedule3 : ℕ → ℝ (local strengths — LowerSkeletonRegular evaluates it at the lower complexity #cells + #pair-colors, TopRegularOverMostPolyads at C.complexity; positive everywhere by inducedCountingSchedule3_pos, as the summit's hF requires), deliberately separate from the global edit/exceptional parameter inducedCountingParameter3. The global induced_counting_from_strong_regular_complex3 splits the final ε into six explicit ε/6 charges 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 by exceptional_route_mass_le (at most k³·exceptionalPolyadMass·|V|^k tuples) and predicted mass by exceptionalPredictedMass3 / exceptional_route_prediction_mass_le (separate εmass/εcount so the lemma is instantiable without an unpinned comparison; the schedule charged at the lower complexity it is actually supplied at; the route-count factor q₂^(k choose 2) in the slack), their fits pinned by the charge inequalities inducedCountingParameter3_charge (k³·parameter ≤ ε/6) and inducedCountingSchedule3_charge (k³·ℓ^(k choose 2)·schedule(ℓ) ≤ ε/6); (3) the diagonal floor VertexCellsControlled C (diagonalControl3 F₀.k ε) bounding the omitted nontransversal placements — actual and predicted, pinned by nontransversal_actual_and_predicted_mass_le — at its ε/6 charge; (4) the named, inherently global edit transfer inducedCopyCount_edit_transfer from H' to H (fit again by the parameter charge) — predicting the induced count in the original H at the pattern-size error scale |V|^{F₀.k}, with the rank pinned ≥ 1 (one_le_inducedCountingRank3 — rank 0 is vacuous on nonempty polyads).

Prior formalization

Much of the roadmap is already proved in the public Lean 4 library cameronfreer/regularity-lemmatasorry-free, no custom axioms (CI-enforced), whose partition/graph layers are developed for directed relations on an arbitrary Finset host (its hypergraph development is Boolean and unordered); declaration-level claims are pinned at commit f7403c9. 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 the SimpleGraph specialization; 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-r top 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 is cameronfreer/graphon.

Roadmap shape

The roadmap organizes the development into ten layers (0–9):

  1. finite colored graph and 3-uniform vocabulary — UniformHypergraph/edgeDensity, the total unordered top-coloring carrier Colored3Graph κ₃, colored/hypergraph copy-counts and densities (with the card V < r ⇒ density 0 convention)
  2. partitions, block densities, refinement, energy — the size-weighted weightedEnergy and its refinement-monotonicity (Mathlib's increment boost machinery is a proof template — it is stated for the unweighted energy — not a direct consume)
  3. Szemerédi graph regularity bridge — a regular equipartition almost-refining a given equipartition with a complexity bound (bridging to szemeredi_regularity, not duplicating its SimpleGraph statement)
  4. finite weak regularitysteppedCount, the count-scaled cutDiscrepancy with its eliminator cutDiscrepancy_le_iff, and the direct finite Frieze–Kannan theorem frieze_kannan (bound 4^(⌈1/ε²⌉+1)), with frieze_kannan_cutDiscrepancy derived from it — self-contained, no graphon imports or analytic prerequisites
  5. strong graph regularity — the named Layer 2 → 4 nested-equitabilisation bridge exists_regular_exact_refining_equipartition, StrongRegular (coarse/fine equipartitions, uniformity, weighted-energy gap, complexity bound in the starting complexity l₀), and the compositional exists_strong_regular (starting equipartition, minimum complexity, almost-refinement conclusion) plus a counting lemma consuming it
  6. hypergraph complexes; vertex cells and pair-color systems — HypergraphComplex (consumed via the Layer-8 bridge), PairColorSystem (distinct ordered pairs), PairSkeleton3, the skeleton-relative IsPairColorRegular, LowerSkeletonRegular
  7. triads, polyads, subpolyads, relative densities — Polyad3 S over a lower skeleton (cells + three pair colors, with Polyad3.ofData and the three pair graphs pairSupport₀₁/₀₂/₁₂), Subpolyad3 in the NRS subtriad form (arbitrary subgraphs of the parent pair graphs; ofSubcells a constructor), color-indexed relDensityOn / relativeDensity
  8. top-layer regularity over polyads — the rank-r IsTopRegularOverPolyad (per color, over unionSupport of at most r subpolyads; r = 1 is the disc form), with IsVertexBoxRegularOverPolyad the honest weaker predicate
  9. strong arity-3 regular approximation (summit) — TriadicComplex3 κ₃ (chooses its pairColorCount; complexity computed from the structure; toHypergraphComplex bridge), the explicit approximant H' with the real editDiscrepancy3 and Approximates3, IsPolyadDecomposition, exceptionalPolyadMass/TopRegularOverMostPolyads (for H', at rank r), VertexCellsControlled, IsStrongRegularApproximation3 H H' C ε F r t₀ with regularityBound3 q₃ ε F r t₀ (the vertex floor feeds the complexity bound — a t₀-independent bound would make the summit false for large t₀), exists_strong_regular_approximation3 (for every rank r and vertex floor t₀, under regularityBound3 … ≤ |V|; existential over both H' and the complex)
  10. induced counting and embedding — FiniteColored3Pattern, inducedCopyCount, the placement layer PatternPlacement3 (+ Transversal) / PairColorPlacement3 (one pair color per canonically oriented pattern pair i < j — never both marginals) with its route-level control PairColorPlacement3.polyad / IsTopRegularRoute, placedInducedCopyCount and the pinned expectedInducedCountAt / expectedInducedCount H' C F₀, the global parameter inducedCountingParameter3 and the genuine schedule inducedCountingSchedule3 : ℕ → ℝ (+ positivity, needed for the summit's hF; deliberately separate roles), the charge-pinning inequalities inducedCountingParameter3_charge / inducedCountingSchedule3_charge (every global charge fits its ε/6 fraction, the schedule charge carrying the route-count factor ℓ^(k choose 2)), inducedCountingRank3 (pinned ≥ 1) / diagonalControl3 with 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|^k under the floor), the per-route budget routeBudget3 (ε / max 1 (q₂^(k choose 2)) — bare per-route errors cannot sum over the route count to the global bound), the placed local theorem placed_induced_counting3 (the real counting lemma: transversal placements with top-regular routes, counting in the approximant H', at the per-route budget of the ε/6 placed charge), the discarded-route bounds on both sides (exceptional_route_mass_le for actual mass; exceptionalPredictedMass3 / exceptional_route_prediction_mass_le for 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 transfer inducedCopyCount_edit_transfer, and the global induced_counting_from_strong_regular_complex3 (the final ε split into six explicit ε/6 charges 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

README.md                                     (root index entry)
TauCetiRoadmap.lean                           (root import)
TauCetiRoadmap/Regularity/README.md
TauCetiRoadmap/Regularity/Suggested.lean

Verification

  • lake build green at Lean v4.31.0-rc1 / Mathlib 9caeba1000ef8f302920981f4a08651d325abc81 (33 sorry warnings only — the data-def / theorem targets listed above).
  • Suggested.lean imports 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).
  • Consumed Mathlib entry points and the quoted szemeredi_regularity signature checked directly against the pin; every regularity-lemmata declaration 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.

cameronfreer and others added 9 commits July 8, 2026 14:33
… 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>
@cameronfreer cameronfreer changed the title Add roadmap: graph regularity, strong regularity, and arity-3 hypergraph complexes Add roadmap: graph regularity, finite weak regularity, strong regularity, and arity-3 hypergraph complexes Jul 15, 2026
cameronfreer and others added 7 commits July 15, 2026 19:21
…, 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 cameronfreer changed the title Add roadmap: graph regularity, finite weak regularity, strong regularity, and arity-3 hypergraph complexes Add roadmap: graph regularity, finite weak regularity, and arity-3 hypergraph complexes Jul 16, 2026
@cameronfreer
cameronfreer marked this pull request as ready for review July 16, 2026 01:33
@cameronfreer
cameronfreer requested a review from a team as a code owner July 16, 2026 01:33
@tauceti-review-bot
tauceti-review-bot Bot enabled auto-merge (squash) July 16, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant