Documentation

Graphon.RelObservationGeometry

Carrier-parametric observation layer (R4 converse, #107) #

The observations used by recovery and screening — local latents, blocks of raw relation coordinates, and the rank-truncated remainder — over an arbitrary sortwise carrier. The Vinfinite-indexed originals become compatibility aliases, and the pooled statements instantiate this core rather than introducing parallel pooled definitions.

The transport boundary #

The three observations do not transport equally well, and the difference is a matter of truth, not of proof effort:

Screening therefore transports along the canonical poolVertexEquiv, which the pooled uniqueness identity makes available; recovery, being local, is free to use embeddings.

Local latents #

def RelSignature.LocalLatentIndexOver {S : RelSignature} (V : S.SrtType v) (A : Finset ((s : S.Srt) × V s)) (n : ) :
Type (max 0 u v)

The latent coordinates visible at A: supports contained in A.

Equations
Instances For
    instance RelSignature.instCountableLocalLatentIndexOverOfSrt {S : RelSignature} {V : S.SrtType v} [Countable S.Srt] [∀ (s : S.Srt), Countable (V s)] (A : Finset ((s : S.Srt) × V s)) (n : ) :
    @[reducible, inline]
    abbrev RelSignature.LocalLatentSpaceOver {S : RelSignature} (V : S.SrtType v) (A : Finset ((s : S.Srt) × V s)) (n : ) :
    Type (max v u)

    The local latent space at A.

    Equations
    Instances For
      def RelSignature.localLatentsOver {S : RelSignature} {V : S.SrtType v} (A : Finset ((s : S.Srt) × V s)) (n : ) :

      Restriction of the latent array to the coordinates visible at A.

      Equations
      Instances For
        theorem RelSignature.measurable_localLatentsOver {S : RelSignature} {V : S.SrtType v} (A : Finset ((s : S.Srt) × V s)) (n : ) :

        Blocks of raw relation coordinates #

        def RelSignature.BlockIndexOver {S : RelSignature} (V : S.SrtType v) (A : Finset ((s : S.Srt) × V s)) :
        Type (max 0 u v)

        Raw relation coordinates whose tagged support is exactly A.

        Equations
        Instances For
          instance RelSignature.instCountableBlockIndexOverOfRel {S : RelSignature} {V : S.SrtType v} [Countable S.Rel] [∀ (s : S.Srt), Countable (V s)] (A : Finset ((s : S.Srt) × V s)) :
          @[reducible, inline]
          abbrev RelSignature.BlockSpaceOver {S : RelSignature} (V : S.SrtType v) (A : Finset ((s : S.Srt) × V s)) :
          Type (max v u)

          The block of the structure at A.

          Equations
          Instances For
            def RelSignature.blockMapOver {S : RelSignature} {V : S.SrtType v} (A : Finset ((s : S.Srt) × V s)) :

            Read the block at A off a structure.

            Equations
            Instances For
              theorem RelSignature.measurable_blockMapOver {S : RelSignature} {V : S.SrtType v} [Countable S.Rel] [∀ (s : S.Srt), Countable (V s)] (A : Finset ((s : S.Srt) × V s)) :

              The rank-truncated remainder #

              Global, hence transportable only along carrier equivalences — see the module header.

              def RelSignature.RestIndexOver {S : RelSignature} (V : S.SrtType v) (n : ) (A : Finset ((s : S.Srt) × V s)) :
              Type (max 0 u v)

              Coordinates of rank at most n other than those at A.

              Equations
              Instances For
                instance RelSignature.instCountableRestIndexOverOfRel {S : RelSignature} {V : S.SrtType v} [Countable S.Rel] [∀ (s : S.Srt), Countable (V s)] (n : ) (A : Finset ((s : S.Srt) × V s)) :
                @[reducible, inline]
                abbrev RelSignature.RestSpaceOver {S : RelSignature} (V : S.SrtType v) (n : ) (A : Finset ((s : S.Srt) × V s)) :
                Type (max v u)

                The remaining rank-≤ n structure.

                Equations
                Instances For
                  def RelSignature.restObservationOver {S : RelSignature} {V : S.SrtType v} (n : ) (A : Finset ((s : S.Srt) × V s)) :

                  The rank-truncated remainder observation over a carrier: the other blocks of rank at most n, together with the whole latent array.

                  Equations
                  Instances For
                    theorem RelSignature.measurable_restObservationOver {S : RelSignature} {V : S.SrtType v} [Countable S.Rel] [∀ (s : S.Srt), Countable (V s)] (n : ) (A : Finset ((s : S.Srt) × V s)) :

                    Reindexing does not move the conditioning algebra #

                    Screening conditions on a σ-algebra generated by an observation map. Transporting the observation through a measurable equivalence of codomains leaves that σ-algebra unchanged — measurability in both directions is exactly what makes the comap survive. Named here so the screening assembly can straighten a transported conditioning map without a further probabilistic lemma.

                    Postcomposition with a measurable equivalence does not change the generated σ-algebra.

                    Coordinate transport along a carrier equivalence #

                    The coordinate mirror of RelStructure.congrCarrier, bundled once here: the remainder index is global, so its transport needs a genuine equivalence of coordinates rather than an embedding.

                    def RelSignature.RelCoord.congrCarrier {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) :

                    Transport of relation coordinates along a sortwise equivalence of carriers, bundled.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem RelSignature.RelCoord.congrCarrier_apply {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (c : S.RelCoord V) :
                      (congrCarrier e) c = map (fun (s : S.Srt) => (e s)) c
                      @[simp]
                      theorem RelSignature.RelCoord.congrCarrier_symm_apply {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (c : S.RelCoord W) :
                      (congrCarrier e).symm c = map (fun (s : S.Srt) => (e s).symm) c

                      Support and index transport #

                      Equivalences first, with pointwise _apply lemmas; the function-level naturality laws are derived from these. Keeping the bijections primitive is what limits coercion and DecidableEq friction.

                      noncomputable def RelSignature.supportImage {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :
                      Finset ((s : S.Srt) × W s)

                      The image of a support under a sortwise embedding of carriers.

                      Equations
                      Instances For
                        theorem RelSignature.mem_supportImage_iff {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (v : (s : S.Srt) × W s) :
                        v supportImage e A wA, Sigma.map id (fun (s : S.Srt) => (e s)) w = v

                        Membership in a support image, stated without an image in the type so that no DecidableEq instance appears in it. Over a carrier with a natural instance — PoolVertex, whose Sum gives one — that instance is not definitionally the classical one used to form the image, which makes image-shaped rewriting unusable there; this form is not.

                        theorem RelSignature.injective_sigmaMap {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) :
                        Function.Injective (Sigma.map id fun (s : S.Srt) => (e s))
                        theorem RelSignature.supportImage_injective {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) :
                        theorem RelSignature.supportImage_support {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (d : S.RelCoord V) :
                        supportImage e d.support = (RelCoord.map (fun (s : S.Srt) => (e s)) d).support

                        The image of a coordinate's support is the support of the transported coordinate.

                        @[simp]
                        theorem RelSignature.mem_supportImage_map {S : RelSignature} {V W : S.SrtType v} {e : (s : S.Srt) → V s W s} {A : Finset ((s : S.Srt) × V s)} {v : (s : S.Srt) × V s} :
                        Sigma.map id (fun (s : S.Srt) => (e s)) v supportImage e A v A
                        theorem RelSignature.latentIndexEmbed_subset_supportImage_iff {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} {n : } (B : S.LatentIndexOver V n) :
                        (latentIndexEmbed e n B)supportImage e A BA

                        A support lies inside A exactly when its image lies inside the image of A. This is the bijection underlying local naturality: an embedding restricts to a bijection between the supports inside A and those inside its image.

                        theorem RelSignature.RelCoord.support_congrCarrier {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (c : S.RelCoord V) :
                        ((congrCarrier e) c).support = supportImage (fun (s : S.Srt) => (e s).toEmbedding) c.support

                        Transporting a coordinate carries its support to the image of that support.

                        Local latents transport along an embedding #

                        Index equivalence, then the space-level measurable equivalence, then the pointwise lemma, then the exact naturality theorem against localLatentsOver. The inverse needs no Finset.preimage: a support inside the image of A is the image of the sub-support of A that lands in it.

                        theorem RelSignature.image_filter_mem {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} {B : Finset ((s : S.Srt) × W s)} (h : BsupportImage e A) :
                        Finset.image (Sigma.map id fun (s : S.Srt) => (e s)) ({vA | Sigma.map id (fun (s : S.Srt) => (e s)) v B}) = B

                        A support inside supportImage e A is the image of the part of A that lands in it.

                        noncomputable def RelSignature.localLatentIndexCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (n : ) :

                        The local latent index transports along an embedding.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          noncomputable def RelSignature.localLatentSpaceCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (n : ) :

                          The local latent space equivalence induced by an embedding, as a measurable equivalence.

                          Equations
                          Instances For
                            @[simp]
                            theorem RelSignature.localLatentSpaceCongr_apply {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (n : ) (x : LocalLatentSpaceOver W (supportImage e A) n) (B : LocalLatentIndexOver V A n) :
                            theorem RelSignature.localLatentsOver_latentRestrictOver {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (n : ) :

                            Exact naturality of the local latents against an embedding. Reading the latents visible at A after restricting along e is reading those visible at the image of A and transporting.

                            theorem RelSignature.supportImage_symm_supportImage {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :
                            supportImage (fun (s : S.Srt) => (e s).symm.toEmbedding) (supportImage (fun (s : S.Srt) => (e s).toEmbedding) A) = A

                            Transporting a support along a carrier equivalence and back is the identity.

                            theorem RelSignature.card_supportImage {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :

                            The transported support has the same cardinality.

                            Blocks transport along an embedding #

                            The inverse is the delicate point and is kept local to the exact-support subtype: a coordinate whose support is exactly supportImage e A has every argument in the image of e, which supplies the range witness for each argument. Nothing pretends e is globally surjective.

                            theorem RelSignature.exists_preimage_of_block {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} (c : BlockIndexOver W (supportImage e A)) (i : Fin (S.arity (↑c).fst)) :
                            ∃ (v : V (S.argSort (↑c).fst i)), (e (S.argSort (↑c).fst i)) v = (↑c).snd i

                            Every argument of a coordinate with support exactly supportImage e A lies in the range of the embedding — the range witness the inverse needs, available only on this subtype.

                            noncomputable def RelSignature.blockPreimage {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} (c : BlockIndexOver W (supportImage e A)) (i : Fin (S.arity (↑c).fst)) :
                            V (S.argSort (↑c).fst i)

                            The chosen preimage of an argument.

                            Equations
                            Instances For
                              @[simp]
                              theorem RelSignature.blockPreimage_spec {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} (c : BlockIndexOver W (supportImage e A)) (i : Fin (S.arity (↑c).fst)) :
                              (e (S.argSort (↑c).fst i)) (blockPreimage e c i) = (↑c).snd i
                              theorem RelSignature.map_blockPreimage {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) {A : Finset ((s : S.Srt) × V s)} (c : BlockIndexOver W (supportImage e A)) :
                              RelCoord.map (fun (s : S.Srt) => (e s)) (↑c).fst, blockPreimage e c = c
                              noncomputable def RelSignature.blockIndexCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :

                              The block index transports along an embedding.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                noncomputable def RelSignature.blockSpaceCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :

                                The block space equivalence induced by an embedding, as a measurable equivalence.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem RelSignature.blockSpaceCongr_apply {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) (x : BlockSpaceOver W (supportImage e A)) (c : BlockIndexOver V A) :
                                  (blockSpaceCongr e A) x c = x ((blockIndexCongr e A) c)
                                  theorem RelSignature.blockMapOver_restrict {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (A : Finset ((s : S.Srt) × V s)) :

                                  Exact naturality of the block against an embedding.

                                  The remainder transports along a carrier equivalence #

                                  Bundled as a measurable equivalence, not merely an index bijection, so that the screening assembly can straighten the transported remainder codomain directly.

                                  noncomputable def RelSignature.restIndexCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (n : ) (A : Finset ((s : S.Srt) × V s)) :
                                  RestIndexOver V n A RestIndexOver W n (supportImage (fun (s : S.Srt) => (e s).toEmbedding) A)

                                  The remainder index transports along a carrier equivalence. An equivalence is required: the remainder ranges over every rank-≤ n coordinate of the ambient carrier, so an embedding into a larger carrier would leave coordinates outside its image unmatched.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    noncomputable def RelSignature.restSpaceCongr {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (n : ) (A : Finset ((s : S.Srt) × V s)) :
                                    RestSpaceOver W n (supportImage (fun (s : S.Srt) => (e s).toEmbedding) A) ≃ᵐ RestSpaceOver V n A

                                    The remainder space equivalence induced by a carrier equivalence, as a measurable equivalence.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem RelSignature.restSpaceCongr_apply {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (n : ) (A : Finset ((s : S.Srt) × V s)) (x : RestSpaceOver W n (supportImage (fun (s : S.Srt) => (e s).toEmbedding) A)) (c : RestIndexOver V n A) :
                                      (restSpaceCongr e n A) x c = x ((restIndexCongr e n A) c)
                                      theorem RelSignature.restObservationOver_congrCarrier {S : RelSignature} {V W : S.SrtType v} (e : (s : S.Srt) → V s W s) (n : ) (A : Finset ((s : S.Srt) × V s)) :

                                      Exact naturality of the remainder against a carrier equivalence. Observing after transporting the whole joint object from W back to V is observing on W and reindexing both remainder outputs. An equivalence throughout — the remainder is global.