Documentation

InfinitaryLogic.Descriptive.BorelFunctionalGraph

Borel graphs with singleton vertical sections #

A functional Borel graph — a Borel G ⊆ X × Y with at most one y above each x — has a Borel domain, and the partial function it names is Borel measurable.

Both facts are Lusin–Souslin (Gao, Invariant Descriptive Set Theory, CRC Press, 2009, Theorem 1.3.1), which Mathlib supplies; this file packages the argument so consumers never restate it. Nothing here is model-theoretic.

The results #

Scope #

Only the canonical subtype-domain value map is built. Totalized forms — X → Option Y, or a junk-valued X → Y — are derivable from it and are deliberately deferred until a consumer needs one; building all three now would fix an interface no caller has yet exercised.

structure BorelFunctionalGraph {X : Type u} {Y : Type v} [MeasurableSpace X] [MeasurableSpace Y] (G : Set (X × Y)) :

A Borel graph whose vertical sections are singletons or empty: it names a partial function.

  • measurableSet_graph : MeasurableSet G

    The graph is Borel.

  • functional {x : X} {y z : Y} : (x, y) ∈ G → (x, z) ∈ G → y = z

    At most one point lies above each first coordinate.

Instances For

    The domain: the first coordinates covered by the graph.

    Depends only on G — the evidence is taken so that h.domain reads naturally at use sites.

    Equations
    Instances For
      theorem BorelFunctionalGraph.mem_domain_iff {X : Type u} {Y : Type v} [MeasurableSpace X] [MeasurableSpace Y] {G : Set (X × Y)} (h : BorelFunctionalGraph G) {x : X} :
      x ∈ h.domain ↔ ∃ (y : Y), (x, y) ∈ G

      Functionality, as injectivity of the projection on G. This is the exact hypothesis MeasurableSet.image_of_measurable_injOn consumes.

      The domain is Borel (Lusin–Souslin).

      The subtype layer #

      Restricting the projection to ↥G turns injOn_fst into the global injectivity required by Measurable.measurableEmbedding.

      def BorelFunctionalGraph.proj {X : Type u} {Y : Type v} (G : Set (X × Y)) :
      ↑G → X

      The projection of the graph onto its first coordinate.

      Equations
      Instances For

        The projection is a measurable embedding (Lusin–Souslin).

        The graph is measurably equivalent to its domain. In particular the inverse of the projection is measurable — the point of the whole construction.

        Built explicitly with a transparent forward map, so coe_equivDomain holds by rfl; measurability of the inverse comes from MeasurableEmbedding.measurable_rangeSplitting.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The forward map is the projection — true by construction, and what identifies value.

          The value map #

          value alone would be unusable: a measurable map with no stated relation to G identifies nothing. value_mem and value_eq_of_mem are therefore part of the interface — the first says the selected value is the one the graph names, the second is uniqueness in the form callers actually apply.

          noncomputable def BorelFunctionalGraph.value {X : Type u} {Y : Type v} [MeasurableSpace X] [StandardBorelSpace X] [MeasurableSpace Y] [StandardBorelSpace Y] {G : Set (X × Y)} (h : BorelFunctionalGraph G) (x : ↑h.domain) :
          Y

          The partial function named by the graph, on its domain.

          Equations
          Instances For

            The selected value is the one the graph names.

            theorem BorelFunctionalGraph.value_eq_of_mem {X : Type u} {Y : Type v} [MeasurableSpace X] [StandardBorelSpace X] [MeasurableSpace Y] [StandardBorelSpace Y] {G : Set (X × Y)} (h : BorelFunctionalGraph G) {x : ↑h.domain} {y : Y} (hy : (↑x, y) ∈ G) :
            h.value x = y

            Uniqueness, in the form callers apply: any value the graph names at a domain point is the selected one.