Documentation

TauCeti.Combinatorics.DenseGraphLimits.Kernel.Basic

Symmetric kernels #

A symmetric kernel on a measure space (Ω, μ) is an honest, everywhere-defined function Ω → Ω → ℝ that is symmetric, jointly measurable, and uniformly bounded. It is the carrier the dense graph limit theory is built on: a graphon is a [0, 1]-valued symmetric kernel, and the cut norm is defined on kernels rather than on graphons precisely so that a difference U - W of two graphons is in its domain.

Strict, not AEEqFun. The kernel carries a genuine function, not an a.e.-equivalence class. The a.e. identification is taken once and later, at GraphonSpace, rather than being built into the basic object. Two things follow, and they are why the roadmap makes this choice. First, the strict kernel is a pointwise ℝ-module — (U - W) x y = U x y - W x y holds on the nose, so cut-norm estimates never carry a null-set side condition. Second, pointwise hypotheses such as ∀ x y, W x y ∈ Set.Icc 0 1 are stateable at all, which an a.e. class cannot support without choosing a representative.

The measure is a phantom parameter. SymmKernel Ω μ does not mention μ in any field: none of symmetry, measurability, or boundedness refers to it. It is carried in the type so that kernels over different measures on the same space are not silently interchangeable, and so that later measure-dependent structure (the cut norm, the GraphonSpace quotient) has somewhere to attach. Consequently the algebra below needs no hypothesis on μ at all — in particular not IsProbabilityMeasure.

Main definitions #

Main results #

Implementation #

Each operation must re-establish all three fields. Symmetry and measurability are immediate. Boundedness is where the constants are chosen: C + D for a sum or difference, C for a negation, and |c| * C for a scalar multiple. Since the bound is existential (∃ C, ∀ x y, |K x y| ≤ C) rather than a fixed constant, no sharpness is claimed or needed.

The algebraic instances are then transported along the injective coercion with Function.Injective.addCommGroup and Function.Injective.module, which is what makes the pointwise formulas definitional.

References #

A symmetric kernel: an everywhere-defined symmetric, jointly measurable, uniformly bounded function Ω → Ω → ℝ.

The measure is a phantom parameter — no field mentions it — but it is carried in the type so that kernels over different measures do not unify, and so that the measure-dependent theory built on top has somewhere to attach.

Instances For
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_mk {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (f : Ω → Ω → ℝ) (hs : ∀ (x y : Ω), f x y = f y x) (hm : Measurable (Function.uncurry f)) (hb : ∃ (C : ℝ), ∀ (x y : Ω), |f x y| ≤ C) :
    ⇑{ toFun := f, symm' := hs, meas' := hm, bdd' := hb } = f
    theorem TauCeti.DenseGraphLimits.SymmKernel.ext {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {K L : SymmKernel Ω μ} (h : ∀ (x y : Ω), K x y = L x y) :
    K = L
    theorem TauCeti.DenseGraphLimits.SymmKernel.ext_iff {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {K L : SymmKernel Ω μ} :
    K = L ↔ ∀ (x y : Ω), K x y = L x y
    theorem TauCeti.DenseGraphLimits.SymmKernel.symm {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (K : SymmKernel Ω μ) (x y : Ω) :
    K x y = K y x

    A symmetric kernel is symmetric.

    A symmetric kernel is jointly measurable.

    theorem TauCeti.DenseGraphLimits.SymmKernel.exists_bound {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (K : SymmKernel Ω μ) :
    ∃ (C : ℝ), ∀ (x y : Ω), |K x y| ≤ C

    A symmetric kernel is uniformly bounded. The constant is not canonical.

    A bounded symmetric kernel is integrable on the product of two finite copies of its measure.

    @[instance_reducible]
    Equations
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]
    Equations
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_add {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (K L : SymmKernel Ω μ) :
    ⇑(K + L) = ⇑K + ⇑L
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_neg {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (K : SymmKernel Ω μ) :
    ⇑(-K) = -⇑K
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_sub {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (K L : SymmKernel Ω μ) :
    ⇑(K - L) = ⇑K - ⇑L
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_smul {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (c : ℝ) (K : SymmKernel Ω μ) :
    ⇑(c • K) = c • ⇑K
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_nsmul {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (n : ℕ) (K : SymmKernel Ω μ) :
    ⇑(n • K) = n • ⇑K
    @[simp]
    theorem TauCeti.DenseGraphLimits.SymmKernel.coe_zsmul {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} (n : ℤ) (K : SymmKernel Ω μ) :
    ⇑(n • K) = n • ⇑K
    @[instance_reducible]
    Equations
    def TauCeti.DenseGraphLimits.SymmKernel.comap {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (K : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
    SymmKernel Ω' μ'

    The pullback of a symmetric kernel along a measurable map f : Ω' → Ω, acting on both arguments: K.comap f hf μ' x y = K (f x) (f y).

    Symmetry, measurability and boundedness are all inherited from K, so no hypothesis beyond measurability of f is needed — and none on either measure, since μ and μ' are phantom parameters of the two kernel types. The map comes first, as it does for ProbabilityTheory.Kernel.comap; the target measure μ' trails it as an explicit argument, because it is not determined by the data.

    This is how a kernel on one carrier is read on another. Two uses in the dense graph limit theory: the overlaid difference on a coupling of two carriers is the difference of the two pullbacks along the coordinate projections, and the measure-preserving-map form of the cut distance compares pullbacks along maps out of a common carrier.

    Equations
    • K.comap f hf μ' = { toFun := fun (x y : Ω') => K (f x) (f y), symm' := ⋯, meas' := ⋯, bdd' := ⋯ }
    Instances For
      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_apply {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (K : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') (x y : Ω') :
      (K.comap f hf μ') x y = K (f x) (f y)

      Pulling back a kernel evaluates it after applying the map to both arguments.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_zero {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
      comap 0 f hf μ' = 0

      Pulling back the zero kernel gives the zero kernel.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_add {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (K L : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
      (K + L).comap f hf μ' = K.comap f hf μ' + L.comap f hf μ'

      Pullback distributes over addition of kernels.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_neg {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (K : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
      (-K).comap f hf μ' = -K.comap f hf μ'

      Pullback commutes with negation of kernels.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_sub {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (K L : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
      (K - L).comap f hf μ' = K.comap f hf μ' - L.comap f hf μ'

      Pullback distributes over subtraction of kernels.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_smul {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} [MeasurableSpace Ω'] (c : ℝ) (K : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') :
      (c • K).comap f hf μ' = c • K.comap f hf μ'

      Pullback commutes with scalar multiplication of kernels.

      @[simp]

      Pulling back along the identity is the identity.

      @[simp]
      theorem TauCeti.DenseGraphLimits.SymmKernel.comap_comap {Ω : Type u_1} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} {Ω' : Type u_2} {Ω'' : Type u_3} [MeasurableSpace Ω'] [MeasurableSpace Ω''] (K : SymmKernel Ω μ) (f : Ω' → Ω) (hf : Measurable f) (μ' : MeasureTheory.Measure Ω') (g : Ω'' → Ω') (hg : Measurable g) (μ'' : MeasureTheory.Measure Ω'') :
      (K.comap f hf μ').comap g hg μ'' = K.comap (f ∘ g) ⋯ μ''

      Pullbacks compose contravariantly.