Add roadmap: Dense graph limits and graphons (Lovász LNGL Part 3) - #53
Add roadmap: Dense graph limits and graphons (Lovász LNGL Part 3)#53cameronfreer wants to merge 46 commits into
Conversation
Math-first layer plan (objects/API, counting, regularity, the L0 view, compactness, coupling-map agreement, separation, applications, representability, sampling); conventions pinned (strict carrier with one quotient, coupling-primary cut distance, simple Sym2 graphs); repo/axiom provenance kept secondary. README-only entry (cf. OneParameterSemigroups). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Cameron Freer <cameronfreer@gmail.com> Co-authored-by: Michael R Douglas <mdouglas@cmsa.fas.harvard.edu>
…e it in Split the inline prototype signatures into a compiled Targets.lean and import it from TauCetiRoadmap.lean. The signatures fold in the review corrections: Graphon.const (p : I) with homDensity_const = (p : ℝ) ^ e(F); coupling-primary cross-carrier cutDist + triangle; GraphonSpace as a Quotient; the counting lemma on the kernel difference U - W; the AE-invariance trio (Layer 3); a mod-null both-ways transport target to (I, volume); separation (Layer 6a); and sampleGraph_const recovering Mathlib's binomialRandom / G(V,p). Elaborates against Mathlib as sorry-signatures; weak regularity and the 6b convergence equivalence stay README prose to avoid premature API choices. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per review: GraphonSpace / graphonSetoid now require [StandardBorelSpace Ω] (where the gluing triangle makes cutDist = 0 a genuine equivalence); the separation theorem adds [NoAtoms μ] (separation over atomless standard Borel, the roadmap convention); overlay takes an explicit IsCoupling hypothesis; the AE-bridge docstring says "AE / AEEqFun view" not "L⁰ view"; and sampleGraph carries an IsProbabilityMeasure instance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reposition the roadmap to connect graphons and cut distance to Mathlib's existing finite-graph regularity/extremal/probabilistic ecosystem, and sync the prose to the new Targets.lean: - math-first title; enriched, path-checked "What Mathlib already has" inventory (Szemeredi regularity, triangle removal, Turan, measurable simple graphs, G(V,p), Levy-Prokhorov / Portmanteau / Tight weak convergence, kernel comp-product / disintegration, Finpartition / PreVariation); "the one missing piece" -> "Reusable infrastructure to build here" - inline prototype signatures replaced by a pointer to Targets.lean - layer prose synced: cross-carrier cutDist / IsCoupling / overlay, GraphonSpace over standard Borel + GraphonSpaceI, AE view + invariance trio, Layer 6 split into 6a/6b, mod-null transport, sampleGraph <-> binomialRandom, Frieze-Kannan vs Szemeredi, Finpartition adapter - no-wrapper note, per-layer acceptance lines, reviewer checklist; shortened coordination note; (I, volume) aligned throughout; the four mathematical choices kept intact Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- "homomorphism counts" -> "the graph-homomorphism API (SimpleGraph.Hom) and copy-counting" (don't claim a non-injective hom-count API we haven't pinned) - "MeasureTheory.Measure.NoAtoms" -> "NoAtoms (MeasureTheory/Measure/Typeclasses/NoAtoms)" (NoAtoms is the class; cite the actual file) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Split the Mathlib "consume" inventory so the reusable Frieze–Kannan input is the energy machinery (Finpartition.energy, the increment lemmas, equitabilise); list szemeredi_regularity separately as related ecosystem — the strong (tower-bound) lemma, a comparison point, not an input theorem to or the source of weak regularity. Layer-2 prose updated to match. Addresses M. Douglas's review of the dense graph limits roadmap (with a Gemini adjudication pass): seeded by the review, drafted by Claude (Opus 4.8), human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the single cutDist_eq_zero_iff_forall_homDensity_eq (which quantified F
over {V : Type} = universe 0, the lone universe-restricted statement) with an
unconditional forward (forall_homDensity_eq_of_cutDist_eq_zero) and a converse
under [StandardBorelSpace][NoAtoms] (cutDist_eq_zero_of_forall_homDensity_eq),
both quantifying finite graphs over SimpleGraph (Fin n).
Addresses M. Douglas's review of the dense graph limits roadmap (with a Gemini
adjudication pass): seeded by the review, drafted by Claude (Opus 4.8),
human-edited and directed by me.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The README uses step graphons in the Layer-2 acceptance gates and as the Frieze–Kannan output, but Targets.lean had no compiled object. Add a minimal stepGraphon — a graphon constant on the rectangles of a measurable Finpartition (⊤ : Set Ω), subtype-indexed values, concrete symmetry — plus stepGraphon_apply exposing the constant-on-rectangles value. Addresses M. Douglas's review of the dense graph limits roadmap (with a Gemini adjudication pass): seeded by the review, drafted by Claude (Opus 4.8), human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Layer 9 pins sampleGraph but lacked the injective estimator. Add homDensityFin and injHomDensity (via Nat.card, no decidability on the target graph), with the denominator the falling factorial m.descFactorial k — not Nat.choose m k, which would bias the estimator by k!. Add the hom-vs-injective closeness bound (0 < m) and the unbiasedness anchor injHomDensity_integral_sampleGraph (card V ≤ m), the identity that pins (n)_k. README conventions + Layer-9 prose record the rule. Addresses M. Douglas's review of the dense graph limits roadmap (with a Gemini adjudication pass): seeded by the review, drafted by Claude (Opus 4.8), human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add cheap computed-value acceptance backstops (t(K₂,W_K4)=3/4, t(K₃,W_C5)=0, the Erdős–Rényi p^e(F) numerics) and reviewer-checklist items. Sync the file-header and the "Compiled there" paragraph to the new declarations (stepGraphon, the 6a split over Fin n, the Layer-9 injective density), and note set-form/signed cut norm and the L⁰→strict representative as prose-only cleanup targets. Addresses M. Douglas's review of the dense graph limits roadmap (with a Gemini adjudication pass): seeded by the review, drafted by Claude (Opus 4.8), human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add cutNormSet — the concrete textbook set form, sup over measurable S,T of
|∫_{S×T} K| — that cutNorm is pinned against (cutNorm_eq_cutNormSet), the bridge
to Mathlib's rectangle/energy regularity. Add cutNormSigned (the [-1,1]
test-function form) and the standard factor sandwich
cutNorm ≤ cutNormSigned ≤ 4·cutNorm.
Cleanup follow-up to M. Douglas's review (S3, non-blocking): drafted by Claude
(Opus 4.8), human-directed by me.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add exists_graphon_repr: every a.e. class on μ ⊗ μ that is a.e. [0,1]-valued and a.e. symmetric is realized by a strict Graphon representative — the lossy reverse of toAEEqFun, needed to consume AEEqFun-native results. Sync the README "Compiled there" list to record S3/S4 as now pinned. Cleanup follow-up to M. Douglas's review (S4, non-blocking): drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…hree-agent review) - PolishSpace.measurableEquiv -> PolishSpace.Equiv.measurableEquiv (inventory) and PolishSpace.measurableEquivOfNotCountable (the atomless mod-null-transport input, Layer 5) - szemeredi_regularity is root-namespace (drop the SimpleGraph. prefix) - weak-convergence: Tight -> IsTightMeasureSet (exact decl) Verified against Mathlib v4.31.0-rc1. Path-only; no math/type changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Douglas's 5c3d9de fixed the consume-inventory bullet, but a second `Tight` remained in the Layer-9 sampling paragraph; `IsTightMeasureSet` is the exact Mathlib decl (Measure/Tight.lean, verified against v4.31.0-rc1). Path-only, no math/type change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nd-2) Addresses the two substantive points from M. Douglas's follow-up review, plus the three prose-promise-closing API items. Changes are interleaved across both files, so they land as one review-response commit; lake build is green (sorry-targets only). Substantive: - Cross-carrier Layer-6a separation. The forward now matches the coupling-primary public equality cutDist μ₁ μ₂ U W = 0: forall_homDensity_eq_of_cutDist_eq_zero (cross-carrier, no StandardBorelSpace/NoAtoms — the easy counting direction), proved via the new counting_lemma_coupling; the same-carrier statement is now a corollary (forall_homDensity_eq_of_cutDistSame_eq_zero). The converse stays same-carrier under [StandardBorelSpace][NoAtoms]. Also pins isProbabilityMeasure_of_isCoupling so the [IsProbabilityMeasure π] hypothesis on the coupling lemma reads as documented API. - Analytic graphon partition energy. Mathlib's Finpartition.energy is the finite edge-density energy, not the kernel energy the measurable-Finpartition FK route needs; reword so equitabilise/Finpartition are reusable infrastructure and finite energy is a proof template, and BUILD graphonPartitionEnergy (‖E[W|P⊗P]‖²) with _mono/_nonneg/_le_one (the bounded monotone potential). The quantitative L²-Pythagoras increment is flagged as the deferred FK driver. Prose-promise-closers: - GraphonSpaceI := GraphonSpace I (volume) (was referenced, never defined). - MetricSpace (GraphonSpace Ω μ) instance (so Layer-4/6b are statable). - homDensityOnSpace + _mk, Fin-indexed (the descent of t(F,·) to the quotient). Deferred (follow-up ergonomics): stepGraphonAvg, an IsCoupling structure refactor, the cross-carrier converse, and the quantitative L²-Pythagoras energy increment. Addresses M. Douglas's round-2 review: seeded by the review, drafted by Claude (Opus 4.8), human-edited and directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (round-2 polish) Follow-up polish to the round-2 review response (lake build green): - dist_graphonSpace_mk_mk: the GraphonSpace metric computes as cutDist on representatives — pins how users actually calculate with the quotient metric. - homDensityOnSpace is now a real Quotient.lift (well-defined by the cross-carrier forward separation), with homDensityOnSpace_mk by rfl — one fewer opaque placeholder. - isCoupling_prod: the product coupling witnesses that cutDist's infimum is taken over a nonempty class. Addresses M. Douglas's round-2 polish suggestions: drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…onverse (follow-up) Folds in the deferred round-2 items (lake build green, sorry-targets only): - stepGraphonAvg + stepGraphonAvg_apply: the block-averaged step graphon (E[W|P⊗P] as a step function), the Frieze–Kannan output. - Analytic energy stack: l2sq (+ l2sq_nonneg), graphonPartitionEnergy_eq (energy = l2sq of stepGraphonAvg), and the quantitative L²-Pythagoras graphonPartitionEnergy_increment; _mono and _nonneg are now real corollaries of it. - Cross-carrier separation: cutDist_eq_zero_of_forall_homDensity_eq_cross (converse) and the assembled cutDist_eq_zero_iff_forall_homDensity_eq_cross. An IsCoupling structure/class is deliberately NOT introduced — a coupling of given marginals is not canonical, so a typeclass would resolve to an arbitrary one; the Prop + isProbabilityMeasure_of_isCoupling is the right pattern. Addresses M. Douglas's round-2 follow-up items: drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…6a checklist item - Layer 2: the weak-regularity output is the block-averaged stepGraphonAvg (= E[W|P⊗P]); stepGraphon stays the general constant-on-rectangles object. - Reviewer checklist: the 6a forward is cross-carrier with minimal hypotheses, plus a converse under atomless standard-Borel hypotheses (both same-carrier and cross-carrier now pinned). Roadmap-prose polish from M. Douglas's review: drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…pling↔map, convergence) Round-3 review response (lake build green, sorry-targets only). Endpoint signatures (Targets.lean; GraphonSpaceI is now an abbrev so the instance-based targets resolve through it): - weak_regularity_frieze_kannan (Layer 2; 4^⌈1/ε²⌉ complexity bound, ∃ P hP over stepGraphonAvg) - CompactSpace / CompleteSpace GraphonSpaceI (Layer 4; completeness by inferInstance from compactness) - cutDistPullback + cutDist_eq_cutDistPullback (Layer 5 coupling↔map; m.p. maps from (I,volume)) - tendsto_graphonSpace_iff_forall_homDensity + continuous_homDensityOnSpace (Layer 6b culmination) - finiteGraphGraphon + homDensity_finiteGraphGraphon (Layer 7 compatibility gate; carries 0 < m) - graphonSpace_ext_homDensity (quotient-level separation) Wording: - Layer 2 reframed as block-average based (stepGraphonAvg / finite rectangle averages); the AE/conditional-expectation interface is introduced at Layer 3 — resolves the Layer 2/3 tension. - IsCoupling documented as a named Prop (not a structure/typeclass); carrier convention softened (a.e. equality is not raw equality); zero-measure block set-average note; "entry points checked". - Root index title -> "Dense graph limits and graphons". Addresses the round-3 review: drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…GraphGraphon Round-3 follow-up polish (lake build green): - stepGraphonAvg / graphonPartitionEnergy_eq / graphonPartitionEnergy_increment docstrings now lead with block averages (stepGraphonAvg over rectangles), noting the conditional-expectation identification is a Layer-3 relation — matching the Layer 2/3 boundary the review pushed for. - Worked-examples: W_G is finiteGraphGraphon G (now pinned), a step graphon of the finite graph. Drafted by Claude (Opus 4.8), human-directed by me. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…TauCetiProject#55) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
388b5e7 to
8e46621
Compare
… note to Suggested.lean Follow-up to TauCetiProject#55's Suggested.lean adoption: add the standard opening note (README.md is the definitive roadmap document, Suggested.lean is not exhaustive) that the mechanical rename skipped — matching the note TauCetiProject#55 added to the roadmaps that lacked it — and rename the README section heading to "Suggested signatures". Docs only; lake build green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…m/cutDist API (review nits) Two review nits (lean-lsp verified, lake build green): - overlay → overlayDiff: it is the overlaid DIFFERENCE kernel (U−W transported along the coupling) whose cut norm controls the density gap (counting_lemma_coupling), not a neutral overlay of the two graphons. Renamed the def, the counting_lemma_coupling usage, and the README references, and sharpened the docstring. - Pin the basic seminorm / metric API that was previously implicit: cutNorm_nonneg / _zero / _neg / _add_le / _smul, and cutDist_nonneg / _comm / _self (triangle and the quotient metric were already pinned). Synced the README "Compiled there" list. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…utDistSame_self Per review: pin the basic API directly on cutDist (cutDist μ μ U U = 0), matching the README's cutDist_nonneg / _comm / _self wording, rather than stating it via cutDistSame. cutDistSame_self is the named same-carrier specialization (a defeq corollary). lake build green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ection positivity over Fin n (kim-em round 2)
Two review comments from kim-em:
- IsIsoInvariant / IsMultiplicative / IsNormalized were `def … : Prop := sorry` — a named
proposition with no content, so three of the representability hypotheses asserted nothing
(the failure mode the guide forbids). All three now carry real bodies: agreement along ≃g;
multiplicativity over ⊕g with the disjoint union reindexed to Fin (n₁+n₂) along
finSumFinEquiv; f 1 ⊥ = 1.
- IsReflectionPositive quantified over {ι : Type*} in every universe, against the roadmap's
Fin-representative convention. The generality is not load-bearing (any finite ι reindexes to
Fin (Fintype.card ι) with PSD preserved), so it now quantifies over Fin n families;
connectionMatrix itself stays polymorphic.
Synced the Layer-8a prose and added a checklist item barring `Prop := sorry` predicates.
lake build green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…hta regularity formalization Provenance: record the earliest community pointer in this direction — Mauricio Collares, in the October 2021 Zulip thread on the Dillies-Mehta Szemerédi-regularity formalization, flagged the graphon / cut-norm-compactness sequel (quoting the message, linking it, and noting it pointed to §5 of Lovász-Szegedy's "Szemerédi's Lemma for the Analyst"). References: add that Lovász-Szegedy paper (weak regularity + compactness, Layers 2/4) and the Dillies-Mehta ITP 2022 paper whose Mathlib regularity / triangle-removal development this roadmap consumes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n "earliest" to "an early" The live Zulip URL needs a login for non-web-public views and can rot; the leanprover-community archive link is durable and readable unauthenticated — keep both. "Earliest community pointer" is hard to prove globally; "An early community pointer" claims only what we checked. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… roadmap The graph-regularity roadmap (in review) declares this roadmap the owner of graphons / cut norm / Frieze-Kannan and consumes them via finite adapters, but the boundary was one-directional: nothing here acknowledged the companion or warned implementors that Layer-2/Layer-9 objects have a downstream consumer. - Szemeredi bullet: strong graph regularity and arity-3 hypergraph-complex regularity are out of scope here (the companion roadmap's subject), which consumes cutNorm / stepGraphon / weak_regularity_frieze_kannan without redefining them - so those names and shapes are load-bearing downstream. - Layer 9: the companion's plain-graph densities are slated to refactor onto homDensityFin / injHomDensity once this roadmap lands. Prose-only cross-reference (no path link, no layer number pinned) so nothing here depends on the unmerged sibling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Backtick cutNorm alongside the other consumed declaration names, and say "planned downstream consumer" -- the graph-regularity roadmap is still in review and its adapters are prose-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The pinned signatures over-hypothesized the carrier. Janson (arXiv:1009.2376) proves the coupling theory in far greater generality, so the targets now match: - cutDist_triangle: drop StandardBorelSpace on all three carriers. Janson Lemma 6.5 proves the coupling triangle for arbitrary probability spaces (step-graphon approximation reduces gluing to the finite case - no disintegration, hence no regularity needed). - graphonSetoid / GraphonSpace / MetricSpace instance / dist_graphonSpace_mk_mk / homDensityOnSpace(_mk): drop StandardBorelSpace - the quotient metric only needs the carrier-free triangle. - cutDist_eq_cutDistPullback: drop NoAtoms (keep StandardBorelSpace). Every standard Borel probability space - atoms allowed - receives a m.p. map from (I, volume) (Janson Thm A.9), so any coupling is realized by a pair of maps from I (Thm 6.9). New target exists_measurePreserving_from_unitInterval pins that input, separate from the atomless mod-null equivalence (Thm A.7), which stays as the stronger Layer-4/5 transport. - Inverse counting: the cross-carrier converse is now the primary, pinned with NO carrier hypotheses (Janson Thm 8.10, after Borgs-Chayes-Lovasz); the same-carrier converse becomes its specialization with a real body, mirroring the forward direction. The separation iff is likewise hypothesis-free. README synced (conventions, why-these-choices, Layers 1/5/6a, reusable infrastructure, compiled-there list, upstream list, reviewer checklist) and Janson added to References with the theorem numbers used. lake env lean green (sorry warnings only). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s a corollary LNGL Thm 5.54 is the finite weighted-graph representation with connection-rank bounds (Freedman-Lovasz-Schrijver), not graphon representability. The correct source is Lovasz-Szegedy, "Limits of dense graph sequences" (arXiv:math/0408173), Thm 2.2: f = t(.,W) iff f is normalized, multiplicative and reflection positive. That theorem also shows explicit [0,1]-boundedness is redundant, so lovasz_szegedy_representability is now a four-condition iff (IsIsoInvariant stays explicit because GraphParam is representation-sensitive; L-S bake iso-invariance into their notion of graph parameter), and the range bound is pinned as the derived corollary graphParam_mem_Icc_of_isReflectionPositive. README Layer 8b, compiled-there list, and reviewer checklist synced; L-S 2006 added to References. lake env lean green (sorry warnings only). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…abels glue returned only Sigma m, SimpleGraph (Fin m) -- enough for one connection-matrix entry, but not for the promised gluing algebra: it blocked iterated gluing and any associativity/commutativity statement. Now - LabeledGraph.glue : LabeledGraph k -> LabeledGraph k -> LabeledGraph k (the identified labeled vertices keep their labels, still distinct -- this is Lovasz-Szegedy's product of k-labeled graphs); - LabeledGraph.forgetLabels returns the underlying unlabeled graph (real body); - connectionMatrix_apply pins the entry as f on ((A i).glue (A j)).forgetLabels. README Layer 8a, compiled-there list, and reviewer checklist synced. lake env lean green (sorry warnings only). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eses graphParam_mem_Icc_of_isReflectionPositive consumed all four representability axioms, so the name misleadingly suggested reflection positivity alone suffices. Now graphParam_mem_Icc_of_representability_axioms, with a docstring note pinning the naming rationale. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nson Thm 7.1) The hypothesis-free separation converse claimed a route through (I, volume) representatives, but exists_measurePreserving_from_unitInterval only handles standard Borel carriers -- the arbitrary-carrier reduction was unowned. New target exists_graphon_unitInterval_cutDist_eq_zero: every graphon on an arbitrary probability carrier is at cut distance zero from a graphon on (I, volume) (Janson Thm 7.1, via the countably generated sub-sigma-algebra of Lemma 7.3 and the atomless transport). The converse docstring, Layer-6a prose, compiled-there list, and the Janson reference now route through it; the cross-carrier theorem remains the public summit. lake env lean green (sorry warnings only). Co-Authored-By: Claude Fable 5 <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>
|
🤖 Codex says: Thanks—the five earlier review threads are addressed in the current head, and I have resolved them. I think three specification gaps remain before approval:
|
cameronfreer/graphon is now sorry-free with no custom axioms (the three sorries previously listed - Rokhlin common extension, algebraic determination, the determination theorem - are closed; issue TauCetiProject#70 closed 2026-07-02 via the Cai-Govorov descent, the first sampling lemma proved 2026-07-08). Pin the reviewed commit (6eccca5), expand the per-layer supply lines to the newly landed sampling / exchangeable-graph-law / mixture-representation / extremality stack, and update the migration-first vs discharge-target split accordingly (canonical-carrier Layers 0-7 and 9 migration-first; cross-carrier Janson generality and Layer 8b remain discharge work). Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
sampleGraph W n is a marginal law per n, so the almost-sure sampling claims were unstateable as written. Pin the joint object and the two convergence modes, deliberately distinct: - infiniteSampleLaw W: the law of the infinite W-random graph on one probability space (iid positions + one uniform per pair), with the finite-marginal identification infiniteSampleLaw_map_restrictFin realizing G(n,W) for every n as restrictions of one object (Mathlib's MeasurableSpace (SimpleGraph V) covers V = N, no new sigma-algebra). - In probability: sampleGraph_cutDist_tendsto_inProbability (second sampling lemma, LNGL 10.16), on the marginals, via the two-stage point-sampling (Azuma) + rounding (union bound over cuts) decomposition. - Almost surely: infiniteSampleLaw_ae_tendsto_cutDist, on the joint space, via per-coordinate concentration (sampleGraph_injHomDensity_concentration, LNGL Prop 11.32 shape, summable tails), Borel-Cantelli per fixed F, countable intersection, and the Layer-6b convergence equivalence - not through the two-stage cut-distance lemma. The weak-convergence stack previously cited for these targets is no longer load-bearing here, and the graph-regularity density cross- reference is rephrased as optional interoperability (matching that roadmap's decoupling). Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
…om array-level Aldous-Hoover The Layer-9 endpoint was one unpinned sentence naming exchangeable arrays / Aldous-Hoover with no dependency story. Now pinned, decoupled: - ExchangeableGraphLaw (consistent finite marginals under every label injection), sampleExchangeableLaw with its consistency theorem, the upperMass observable with the sampling anchor P(F <= G(k,W)) = t(F,W), IsDissociated with isDissociated_sampleExchangeableLaw, and the extremality target exists_graphon_of_isDissociated (dissociated laws are exactly the sample laws - the Layer-8b spine's key input). - The infinite form InfiniteExchangeableGraphLaw with the compactness extension exchangeableGraphLawEquivInfinite, the Borel structure of the cut metric on GraphonSpaceI, and the summit graphonMixtureLawEquiv : ProbabilityMeasure GraphonSpaceI ~= InfiniteExchangeableGraphLaw with its Dirac anchor - uniqueness on the graphon quotient, never among raw kernel representatives. Named the Diaconis-Janson graphon-mixture representation, a graph-level Aldous-Hoover consequence; deliberately not labeled "Aldous-Hoover". - The array-level Aldous-Hoover representation stays the Exchangeability roadmap's Layer 8 as independent parallel theory - the prior formalization proves the graph-level correspondence with no array input - joined by one named future interface (exchangeable graph laws = symmetric irreflexive jointly exchangeable Boolean-array laws), described rather than sorry-pinned until that array API exists. Diaconis-Janson (2008) added to References. Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
…h Layer 9's graph-law layer Layer 8b jumped from the reflection-positivity predicates to the full representability theorem. The route is now a chain of named targets: - graphParamMobius (f-dagger, a real definition: the supergraph Mobius transform), graphParamMobius_nonneg (reflection positivity makes the fully-labelled blocks PSD; the Mobius congruence preserves it), and graphParamMobius_sum_eq_one (telescoping + multiplicativity/ normalization) - f-dagger is a probability mass at every level. - paramExchangeableLaw (the random graph law L_f with masses f-dagger), paramExchangeableLaw_upperMass (Mobius inversion: upperMass L_f = f), isDissociated_paramExchangeableLaw (multiplicativity dissociates). - Layer 9's extremality exists_graphon_of_isDissociated then yields L_f = sampleExchangeableLaw W, and the sampling anchor closes f F = t(F, W). Layer 8b consumes Layer 9's graph-law representation/extremality infrastructure only - not the graphon-sampling concentration theorems (no representing graphon exists while the spine runs; a classical random-graphs route would additionally need an f-dagger-specific variance or simultaneous-selection lemma). The Ordering section now states the real build order Layer 8a -> Layer 9 graph-law layer -> Layer 8b, and the module docstring lists the new pins. Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
…on bridges Two specification bridges the representation subsection still lacked: - graphonMixtureLawEquiv_upperMass: for every mixing measure P, the represented law's upper mass at F is the P-average of the hom-density, upperMass F = integral of t(F, .) dP on the quotient. Upper masses determine each finite marginal by Mobius inversion, so the correspondence is pinned beyond its Dirac fibers - an arbitrary permuting Equiv can no longer satisfy the spec (precedent: infiniteMixtureLawEquiv_law_map_restrictFin). - infiniteSampleLaw_eq_extension: the explicit joint sampler IS the compactness extension of the sampling marginals - certifying the sampler's exchangeability and connecting the sampling, graph-law, and mixture subsections (precedent: map_sampleInfinite). Also: the array interface gets a proposed identifier (graphLawArrayLawEquiv) and is called a documented future interface; the Suggested-signature inventory and the reviewer checklist gain the Layer-9 and Layer-8b targets; Provenance now says the library is parameterized over a fixed standard-Borel carrier (what remains is primarily this roadmap's coupling-based cross-carrier generality). Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
- The weak-convergence Mathlib stack now supports the mixture existence/representation side of Layer 9 (measures on GraphonSpaceI, the compactness extension); the sampling-convergence targets explicitly do not consume it. - The build-here list gains the Layer-9 sampling stack, the exchangeable graph laws and their mixture representation, and the Layer-8 gluing algebra and representability spine, pointing at the per-layer sections and the Suggested-signatures inventory for the full lists - so the checklist's "all non-Mathlib objects listed under build here" holds. - Provenance: "Already formalized over a fixed standard-Borel carrier, making the canonical specializations migration-first"; cross-carrier generality named as discharge work alongside the remaining headline discharge target, Layer 8b. Designed by Cameron Freer, implemented by Fable 5 high, reviewed by GPT 5.6 Sol xhigh
|
🤖 Fable 5 (directed by Cameron and reviewed by GPT 5.6 Sol) says: Thanks — the three gaps are addressed across the six new commits (plus a merge of 1. The Aldous–Hoover endpoint — pinned, but decoupled rather than made a dependency. Layer 9 now ends at a fully pinned graph-level target: 2. Joint sampling architecture — pinned. 3. The Layer-8b spine — pinned as a chain of named targets, and the dependency on Layer 9 is now explicit in the ordering. The route: reflection positivity →
Directed by Cameron Freer, written by Fable 5 high, reviewed by GPT 5.6 Sol xhigh. |
Thanks for this review. As noted in the longer reply, my cameronfreer/graphon repo is now farther along, and it contains a lot of new relevant details. Also I think it makes more sense for this roadmap to target the graphon-specific variant of Aldous-Hoover, while the jointly (or separately) exchangeable array versions could be later extensions to the Exchangeability roadmap and eventually meet up with this one somehow. The other two points were more straightforward. |
… 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>
Summary
Adds a roadmap for a Tau Ceti library entry on dense graph limits and graphons, after Part 3 of Lovász, Large Networks and Graph Limits (LNGL). The spine is
Graphon → homDensity → cutNorm → cutDist → GraphonSpace → counting → regularity → compactness → separation → convergence, culminating in the equivalence of cut-distance convergence with convergence of all homomorphism densities. It connects graphons and cut distance to Mathlib's existing finite-graph ecosystem (Szemerédi regularity, partition /equitabiliseinfrastructure, triangle counting/removal, Turán, the binomial random graphG(V,p), measurable simple graphs) rather than rebuilding it.Two prior Lean formalizations are pinned migration sources (API warnings and proof routes, not the mathematical specification):
math-commons/graphons(strict-function carrier, couplingcutDist,sorry-free modulo four audited classical axioms) andcameronfreer/graphon(AEEqFuncarrier, measure-preserving-mapcutDist, no custom axioms with concentratedsorrys). The roadmap is the intendedsorry-free / axiom-free synthesis both can upstream into.The roadmap follows the existing TauCetiRoadmap format:
README.md(conventions, layer plan, consumed-Mathlib inventory, acceptance gates, provenance, references)Suggested.leanwith compiledsorry-signaturesREADME.mdindex entryTauCetiRoadmap.leanimportSuggested.leanpins the prototype types assorry-signatures that build green against the pinned Mathlib (lake build, verified locally;sorryis allowed in this human-owned roadmap library). Several structural predicates (IsCoupling; the Layer-8IsIsoInvariant/IsMultiplicative/IsNormalized/IsReflectionPositive) are defined outright; theorem-scale endpoints remainsorry-targets. It fixes the load-bearing choices so contributors don't oscillate. The cut norm acts on kernels (so a differenceU − Wis well-typed), with a concrete set formcutNormSetand a signed-form factor sandwich.cutDistis coupling-primary and cross-carrier, with its triangle inequality — hence theGraphonSpacemetric quotient — on arbitrary probability carriers (Janson, Graphons, cut norm and distance, Lemma 6.5). The constant-graphon and sampling targets share theunitIntervalconvention withSimpleGraph.binomialRandom. The Layer-6a separation is carrier-free in both directions (Janson, Thm 8.10) — the forward via the coupling counting lemma, the hard converse pinned cross-carrier with no standard-Borel / atomless hypotheses and the same-carrier forms as specializations — overSimpleGraph (Fin n). Layer 2 is block-average based: Frieze–Kannan weak regularity consumesequitabilise/Finpartitioninfrastructure and builds the analytic graphon energy‖E[W|P⊗P]‖²as theL²norm of the block-average step graphon (Mathlib's finiteFinpartition.energyis a proof template, not an input), with Szemerédi's strong lemma a related comparison point. And the injective sampling densityt₀is normalized by the falling factorial(n)_k(Nat.descFactorial), neverNat.choose.Roadmap shape
The roadmap organizes the development into ten layers (0–9):
ℝ-module,Graphon,homDensity,cutNorm(with the set form and the signed/factor-sandwich forms), the coupling-primary cross-carriercutDistwith its arbitrary-carrier triangle inequality (Janson, Lemma 6.5), and theGraphonSpacequotient — a genuine metric quotient over any probability carrier, no standard-Borel hypothesis (withGraphonSpaceIand aMetricSpaceinstance whose distance computes ascutDist)counting_lemma_couplingand thehomDensityOnSpacedescent), Frieze–Kannan weak regularity (weak_regularity_frieze_kannan) built on the block-averagestepGraphonAvgand its energy Pythagoras, and total boundednessAEEqFunview, with the named invariance lemmas and the L⁰→strict representative bridgeCompactSpace/CompleteSpace GraphonSpaceI)cutDistPullback+cutDist_eq_cutDistPullback, via the measure-preserving map from(I, volume)onto any standard Borel probability space — Janson, Thm A.9)[0,1]reduction (exists_graphon_unitInterval_cutDist_eq_zero; Janson, Thm 7.1) — and the convergence equivalence (tendsto_graphonSpace_iff_forall_homDensity), with quotient-levelgraphonSpace_ext_homDensityfiniteGraphGraphon,0 < m), Goodman, Mantel, Sidorenko-C₄, and computed-value gates (t(K₂,W_{K₄})=3/4,t(K₃,W_{C₅})=0)LabeledGraph.glue : LabeledGraph k → LabeledGraph k → LabeledGraph k, so gluing iterates and the gluing algebra is expressible;forgetLabelsfor the underlying unlabeled graph), finite connection matrices withMatrix.PosSemidef, and Lovász–Szegedy representability as the four-condition iffIsIsoInvariant/IsMultiplicative/IsNormalized/IsReflectionPositiveover the canonical(I, volume)carrier (Lovász–Szegedy, Limits of dense graph sequences, Thm 2.2), with the[0,1]range a derived corollary (graphParam_mem_Icc_of_representability_axioms), never a hypothesissampleGraph, the injective densityt₀with the hom-vs-injective closeness and unbiasedness anchors, and the Aldous–Hoover representationIt also records the five pinned design conventions (carrier, cut-distance, finite-graph, carrier-generality, and vocabulary / object-kind choices) — with the rationale for the two load-bearing ones (coupling-primary
cutDist, the strict carrier) inlined in the roadmap itself — the entry-point-checked consumed-Mathlib inventory, the reusable infrastructure to build (the(I, volume)transport targets: the measure-preserving map from(I, volume)onto any standard Borel probability space, whose target may have atoms; the atomless mod-null equivalence; and the representation-on-[0,1]reduction; plus dyadic martingaleL¹-convergence lemmas), the acceptance gates, and a reviewer checklist.Files changed
Verification
lake buildgreen; expectedsorrywarnings only.Authorship
Authored by Michael R. Douglas and Cameron Freer, with the assistance of GPT Pro, Claude Code (Opus 4.8 and Fable 5), Codex (GPT 5.5 and 5.6 Sol), Gemini, lean4-skills, and lean-lsp-mcp.