Documentation

Graphon.SamplingRounding

The rounding half of the First Sampling Lemma #

This file proves RoundingEvent for all sufficiently large k (rounding_event_of_large_k): conditionally on a.e. sampled points x, the Bernoulli edge rounding G of the weighted sampled graphon H_{W,x} lands within cut distance ε of H_{W,x} with probability ≥ 1 − η. Together with the reduction sampleGoodMassOn_of_events this leaves PointSamplingEvent as the only analytic content of first_sampling_lemma.

The proof is finite probability — no measure-theoretic randomness beyond the finite weighted sums sampleMassAt:

  1. Deterministic cut certificate (cutNormDiff_mkStepGraphon_le_of_cuts): the cut norm of a same-partition step-graphon difference is bounded by the maximum over finitely many vertex cuts A, B : Finset (Fin k) of the corresponding weighted cut sums. A rectangle integral decomposes over cell products (rectIntegralDiff_mkStepGraphon), and a box-constrained bilinear form is maximized at cuts (abs_bilinear_box_le, via the signed-support trick — no induction).
  2. Bad-event decomposition: the bad rounding event is contained in the finite union over cut pairs of per-cut deviation events.
  3. Finite Hoeffding / union bound: the moment generating function of a cut sum factorizes over independent edges (sum_graphs_prod, the powerset bijection), each edge contributing ≤ exp(λ²) for |λ| ≤ 1 (Real.exp_bound); a Chernoff argument over the finite sum and a union bound over ≤ 4^k cut pairs finish. Crude constants throughout — only existence of large k matters.

Layer 1(b): box-constrained bilinear forms are maximized at cuts #

theorem Graphon.abs_sum_box_le {k : } (w φ : Fin k) (M : ) (hM : ∀ (A : Finset (Fin k)), |iA, w i * φ i| M) (u : Fin k) (hu : ∀ (i : Fin k), u i Set.Icc 0 (w i)) :
|i : Fin k, u i * φ i| M

Signed-support trick (linear case): a linear form with box-constrained coefficients is bounded by its values at finite cuts. No induction: the upper bound is witnessed by the cut {i | 0 ≤ φ i}, the lower one by its complement.

theorem Graphon.abs_bilinear_box_le {k : } (w : Fin k) (d : Fin kFin k) (M : ) (hM : ∀ (A B : Finset (Fin k)), |iA, jB, w i * w j * d i j| M) (u v : Fin k) (hu : ∀ (i : Fin k), u i Set.Icc 0 (w i)) (hv : ∀ (j : Fin k), v j Set.Icc 0 (w j)) :
|i : Fin k, j : Fin k, u i * v j * d i j| M

Box-constrained bilinear forms are maximized at cut pairs: two applications of the signed-support trick.

Layer 1(a): rectangle integrals of step differences decompose over cells #

theorem Graphon.setIntegral_mkStepFun {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] (P : MeasurablePartition α μ) (c : Set αSet α) (S' T' : Set α) :
(p : α × α) in S' ×ˢ T', mkStepFun P c p μ.prod μ = SP.parts, TP.parts, (μ (S S')).toReal * (μ (T T')).toReal * c S T

Set integral of a step function over a rectangle: the finite sum of indicators integrates term by term.

theorem Graphon.rectIntegralDiff_mkStepGraphon {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] (P : MeasurablePartition α μ) (c c' : Set αSet α) (hc_symm : SP.parts, TP.parts, c S T = c T S) (hc_mem : SP.parts, TP.parts, c S T Set.Icc 0 1) (hc'_symm : SP.parts, TP.parts, c' S T = c' T S) (hc'_mem : SP.parts, TP.parts, c' S T Set.Icc 0 1) (S' T' : Set α) :
(mkStepGraphon P c hc_symm hc_mem).rectIntegralDiff (mkStepGraphon P c' hc'_symm hc'_mem) S' T' = SP.parts, TP.parts, (μ (S S')).toReal * (μ (T T')).toReal * (c S T - c' S T)

Rectangle integrals of a same-partition step-graphon difference decompose over cell products.

theorem Graphon.cutNormDiff_mkStepGraphon_le_of_cuts {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {k : } (P : MeasurablePartition α μ) (ι : Fin kSet α) (hι_mem : ∀ (i : Fin k), ι i P.parts) (hι_inj : Function.Injective ι) (hι_surj : SP.parts, ∃ (i : Fin k), ι i = S) (c c' : Set αSet α) (hc_symm : SP.parts, TP.parts, c S T = c T S) (hc_mem : SP.parts, TP.parts, c S T Set.Icc 0 1) (hc'_symm : SP.parts, TP.parts, c' S T = c' T S) (hc'_mem : SP.parts, TP.parts, c' S T Set.Icc 0 1) (M : ) (hM : ∀ (A B : Finset (Fin k)), |iA, jB, (μ (ι i)).toReal * (μ (ι j)).toReal * (c (ι i) (ι j) - c' (ι i) (ι j))| M) :
(mkStepGraphon P c hc_symm hc_mem).cutNormDiff (mkStepGraphon P c' hc'_symm hc'_mem) M

Layer 1 — the deterministic cut certificate: the cut norm of a same-partition step-graphon difference is bounded by the maximum weighted cut sum over finitely many vertex cuts A, B : Finset (Fin k). Combines the cell decomposition with the box maximum principle (abs_bilinear_box_le), the box constraint being μ(cell ∩ S') ≤ μ(cell).

Layer 3: the finite Chernoff engine #

Everything here is graphon-free: massOf p G is the Bernoulli graph distribution with abstract edge probabilities p, matching sampleMassAt W x definitionally when p e := W(x_i, x_j).

noncomputable def Graphon.massOf {k : } (p : Sym2 (Fin k)) (G : SimpleGraph (Fin k)) :

The Bernoulli graph mass with abstract edge probabilities.

Equations
Instances For
    theorem Graphon.sum_graphs_prod {k : } (F F' : Sym2 (Fin k)) :
    G : SimpleGraph (Fin k), (∏ eG.edgeFinset, F e) * e.edgeFinset \ G.edgeFinset, F' e = e.edgeFinset, (F e + F' e)

    Independence as algebra: a product functional of the edge states sums over all graphs to the product of per-edge sums (the powerset bijection + Finset.prod_add).

    theorem Graphon.exp_le_one_add_add_sq {s : } (hs : |s| 1) :
    Real.exp s 1 + s + s ^ 2

    Elementary quadratic exponential bound: e^s ≤ 1 + s + s² for |s| ≤ 1 (from Real.exp_bound at order 3).

    theorem Graphon.bernoulli_mgf_le {p t : } (hp : p Set.Icc 0 1) (ht : |t| 1) :
    p * Real.exp (t * (1 - p)) + (1 - p) * Real.exp (-(t * p)) Real.exp (t ^ 2)

    Bernoulli MGF bound (crude Hoeffding-lemma substitute): for p ∈ [0,1] and |t| ≤ 1, the centered Bernoulli MGF satisfies p·e^{t(1−p)} + (1−p)·e^{−tp} ≤ e^{t²}.

    noncomputable def Graphon.cutStat {k : } (p κ : Sym2 (Fin k)) (G : SimpleGraph (Fin k)) :

    The centered cut statistic of a graph: Z(G) = ∑_e κ_e (χ_e(G) − p_e).

    Equations
    Instances For
      theorem Graphon.sum_massOf_exp_cutStat_le {k : } (p κ : Sym2 (Fin k)) (hp : e.edgeFinset, p e Set.Icc 0 1) ( : ∀ (e : Sym2 (Fin k)), |κ e| 2) {lam : } (hlam : |lam| 1 / 2) :
      G : SimpleGraph (Fin k), massOf p G * Real.exp (lam * cutStat p κ G) Real.exp (lam ^ 2 * 4 * .edgeFinset.card)

      MGF factorization + per-edge bound: the exponential moment of a cut statistic is at most exp(λ²·4·|E(⊤)|) for |λ| ≤ 1/2 and |κ| ≤ 2.

      theorem Graphon.massOf_nonneg {k : } {p : Sym2 (Fin k)} (hp : e.edgeFinset, p e Set.Icc 0 1) (G : SimpleGraph (Fin k)) :
      0 massOf p G

      Bernoulli graph masses are nonnegative for [0,1] edge probabilities.

      theorem Graphon.mass_tail_le {k : } (p κ : Sym2 (Fin k)) (hp : e.edgeFinset, p e Set.Icc 0 1) ( : ∀ (e : Sym2 (Fin k)), |κ e| 2) {lam t : } (hlam0 : 0 lam) (hlam : |lam| 1 / 2) :
      G : SimpleGraph (Fin k) with t cutStat p κ G, massOf p G Real.exp (lam ^ 2 * 4 * .edgeFinset.card - lam * t)

      One-sided Chernoff tail for cut statistics.

      theorem Graphon.cutStat_neg {k : } (p κ : Sym2 (Fin k)) (G : SimpleGraph (Fin k)) :
      cutStat p (fun (e : Sym2 (Fin k)) => -κ e) G = -cutStat p κ G

      Negating the coefficients negates the cut statistic.

      theorem Graphon.mass_tail_abs_le {k : } (p κ : Sym2 (Fin k)) (hp : e.edgeFinset, p e Set.Icc 0 1) ( : ∀ (e : Sym2 (Fin k)), |κ e| 2) {lam t : } (hlam0 : 0 lam) (hlam : |lam| 1 / 2) :
      G : SimpleGraph (Fin k) with t |cutStat p κ G|, massOf p G 2 * Real.exp (lam ^ 2 * 4 * .edgeFinset.card - lam * t)

      Two-sided Chernoff tail for cut statistics.

      theorem Graphon.mass_bad_family_le {k : } {ι : Type u_2} [Fintype ι] (p : Sym2 (Fin k)) (κfam : ιSym2 (Fin k)) (hp : e.edgeFinset, p e Set.Icc 0 1) ( : ∀ (i : ι) (e : Sym2 (Fin k)), |κfam i e| 2) {lam t : } (hlam0 : 0 lam) (hlam : |lam| 1 / 2) :
      G : SimpleGraph (Fin k) with ∃ (i : ι), t |cutStat p (κfam i) G|, massOf p G (Fintype.card ι) * (2 * Real.exp (lam ^ 2 * 4 * .edgeFinset.card - lam * t))

      Union bound over a finite family of cut statistics.

      Layer 2(i): almost-everywhere alignment of edge parameters #

      theorem Graphon.graphonEval_symm_ae {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {k : } (W : Graphon α μ) {i j : Fin k} (hij : i j) :
      ∀ᵐ (x : Fin kα) MeasureTheory.Measure.pi fun (x : Fin k) => μ, W.toAEEqFun (x j, x i) = W.toAEEqFun (x i, x j)

      A.e. symmetry at a pair of coordinates (mirror of graphonEval_mem_Icc_ae): the graphon's a.e. symmetry transfers along the pair evaluation map.

      theorem Graphon.ae_all_finset {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} {k : } {β : Type u_2} (s : Finset β) (Φ : β(Fin kα)Prop) (h : bs, ∀ᵐ (x : Fin kα) MeasureTheory.Measure.pi fun (x : Fin k) => μ, Φ b x) :
      ∀ᵐ (x : Fin kα) MeasureTheory.Measure.pi fun (x : Fin k) => μ, bs, Φ b x

      Finite a.e. conjunction over a finset (the standard induction, packaged).

      theorem Graphon.ae_edge_params_aligned {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {k : } (W : Graphon α μ) :
      ∀ᵐ (x : Fin kα) MeasureTheory.Measure.pi fun (x : Fin k) => μ, e.edgeFinset, W.toAEEqFun (x (Quot.out e).1, x (Quot.out e).2) Set.Icc 0 1 min 1 (max 0 (W.toAEEqFun (x (min (Quot.out e).1 (Quot.out e).2), x (max (Quot.out e).1 (Quot.out e).2)))) = W.toAEEqFun (x (Quot.out e).1, x (Quot.out e).2)

      The aligned edge-parameter event: for a.e. sampled points, every edge parameter is in [0,1] and agrees with the clamped (min, max)-ordered evaluation used by the weighted sampled graphon.

      Layer 2(ii): cut coefficients and the edge regrouping #

      noncomputable def Graphon.cutCoeff {k : } (A B : Finset (Fin k)) (e : Sym2 (Fin k)) :

      The number of ordered off-diagonal pairs of the cut A × B mapping to the edge e.

      Equations
      Instances For
        theorem Graphon.cutCoeff_le_two {k : } (A B : Finset (Fin k)) (e : Sym2 (Fin k)) :
        |cutCoeff A B e| 2

        Each edge collects at most its two orientations.

        theorem Graphon.sum_pairs_eq_sum_edges {k : } (A B : Finset (Fin k)) (f : Sym2 (Fin k)) :
        ijA ×ˢ B with ij.1 ij.2, f s(ij.1, ij.2) = e.edgeFinset, cutCoeff A B e * f e

        Edge regrouping: a sum of an edge functional over the off-diagonal ordered pairs of a cut equals the cutCoeff-weighted sum over edges.

        Layer 2(iii): small combinatorial and numeric ingredients #

        theorem Graphon.minmax_out {k : } {i j : Fin k} :
        min (Quot.out s(i, j)).1 (Quot.out s(i, j)).2 = min i j max (Quot.out s(i, j)).1 (Quot.out s(i, j)).2 = max i j

        The (min, max)-normalization of an unordered pair is orientation-independent.

        theorem Graphon.card_diag_pairs_le {k : } (A B : Finset (Fin k)) :
        {ijA ×ˢ B | ij.1 = ij.2}.card k

        The diagonal of a cut has at most k ordered pairs.

        theorem Graphon.eventually_union_bound_small (c η : ) (hc : 0 < c) ( : 0 < η) :
        ∃ (K : ), ∀ (k : ), K k4 ^ k * (2 * Real.exp (-(c * k ^ 2))) η

        The eventual union-bound decay: 4^k · 2·exp(−c·k²) ≤ η for all large k.

        Layer 2(iv): the rounding theorem #

        Collapse of the cell-existential choice through injectivity.

        theorem Graphon.rounding_event_of_large_k {α : Type u_1} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] [StandardBorelSpace α] [MeasureTheory.NullSingletonClass μ] (ε η : ) ( : 0 < ε) ( : 0 < η) :
        ∃ (K : ), ∀ (k : ), K k∀ (x : NeZero k) (W : Graphon α μ), W.RoundingEvent k ε η

        RoundingEvent holds for all sufficiently large k, uniformly in the graphon — the finite-probability half of the First Sampling Lemma. The threshold K depends only on (ε, η).