Documentation

LeanPool.DomainTheory.Neighborhood.Exercise316

Exercise 3.16 (Scott 1981, PRG-19, ยง3) โ€” the infinite iterate ๐’Ÿ^โˆž #

Scott: for a neighbourhood system ๐’Ÿ over ฮ”, let ฮ”^โˆž = โ‹ƒโ‚™ 1โฟ0ฮ” be infinitely many disjoint copies of ฮ”, and let ๐’Ÿ^โˆž be the least family of subsets with

  1. ฮ”^โˆž โˆˆ ๐’Ÿ^โˆž, and
  2. X โˆˆ ๐’Ÿ, Y โˆˆ ๐’Ÿ^โˆž โŸน 0X โˆช 1Y โˆˆ ๐’Ÿ^โˆž.

He asks to show ๐’Ÿ^โˆž is a neighbourhood system over ฮ”^โˆž, that ๐’Ÿ^โˆž โ‰… ๐’Ÿ ร— ๐’Ÿ^โˆž, and that the elements of |๐’Ÿ^โˆž| are in one-one correspondence with arbitrary infinite sequences โŸจxโ‚™โŸฉ of elements xโ‚™ โˆˆ |๐’Ÿ|, via the combinations of neighbourhoods

0Xโ‚€ โˆช 10Xโ‚ โˆช โ‹ฏ โˆช 1โฟ0Xโ‚™ โˆช โ‹ฏ (with all but finitely many Xโ‚˜ = ฮ”).

Model. We take the token type to be โ„• ร— ฮฑ, where (n, a) is "the token a โˆˆ ฮ” sitting in the n-th copy" (i.e. Scott's 1โฟ0a). A neighbourhood 0Xโ‚€ โˆช 1โฟ0Xโ‚™ โˆช โ‹ฏ is then exactly the set {(i, a) โˆฃ a โˆˆ Xแตข}, recovered from W by its fibers fiber W i = {a โˆฃ (i, a) โˆˆ W}. The "least family" description is equivalent to: W โˆˆ ๐’Ÿ^โˆž iff every fiber is a neighbourhood and all but finitely many fibers equal ฮ”. (Closure under (2) and the base (1) generate exactly these, and no fewer, because (2) is the one-step "cons" and the cofinite-ฮ” condition is its iterate.)

The element-level payoff is the clean order-isomorphism

iterSeqEquiv : |๐’Ÿ^โˆž| โ‰ƒo (โ„• โ†’ |๐’Ÿ|)

(Scott's "one-one correspondence with infinite sequences"), from which ๐’Ÿ^โˆž โ‰… ๐’Ÿ ร— ๐’Ÿ^โˆž falls out by the shift (โ„• โ†’ E) โ‰ƒo E ร— (โ„• โ†’ E).

Everything is choice-free in spirit; the classical content is only what is inherited from the project's Element.ext/prodEquiv machinery, as elsewhere in ยง3.

Fibers of a set of (copy index, token) pairs. #

def Domain.Neighborhood.fiber {ฮฑ : Type u_1} (W : Set (โ„• ร— ฮฑ)) (i : โ„•) :
Set ฮฑ

The i-th fiber of a set W โІ โ„• ร— ฮฑ: the tokens appearing in copy i.

Equations
Instances For
    @[simp]
    theorem Domain.Neighborhood.mem_fiber {ฮฑ : Type u_1} {W : Set (โ„• ร— ฮฑ)} {i : โ„•} {a : ฮฑ} :
    theorem Domain.Neighborhood.fiber_mono {ฮฑ : Type u_1} {W W' : Set (โ„• ร— ฮฑ)} (h : W โІ W') (i : โ„•) :
    theorem Domain.Neighborhood.fiber_inter {ฮฑ : Type u_1} (W W' : Set (โ„• ร— ฮฑ)) (i : โ„•) :
    fiber (W โˆฉ W') i = fiber W i โˆฉ fiber W' i
    theorem Domain.Neighborhood.eq_of_fiber_eq {ฮฑ : Type u_1} {W W' : Set (โ„• ร— ฮฑ)} (h : โˆ€ (i : โ„•), fiber W i = fiber W' i) :
    W = W'
    theorem Domain.Neighborhood.subset_of_fiber_subset {ฮฑ : Type u_1} {W W' : Set (โ„• ร— ฮฑ)} (h : โˆ€ (i : โ„•), fiber W i โІ fiber W' i) :
    W โІ W'

    The pinning neighbourhood single n X (Scott's 1โฟ0X, rest ฮ”). #

    def Domain.Neighborhood.single {ฮฑ : Type u_1} (V : NeighborhoodSystem ฮฑ) (n : โ„•) (X : Set ฮฑ) :
    Set (โ„• ร— ฮฑ)

    The ๐’Ÿ^โˆž-neighbourhood pinning copy n to X and leaving all other copies at ฮ”: Scott's ฮ”^โˆž โˆฉ (1โฟ0X), i.e. the combination with Xโ‚™ = X and Xโ‚˜ = ฮ” for m โ‰  n.

    Equations
    Instances For
      @[simp]
      theorem Domain.Neighborhood.fiber_single_self {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (n : โ„•) (X : Set ฮฑ) :
      fiber (single V n X) n = X
      theorem Domain.Neighborhood.fiber_single_ne {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {n i : โ„•} (h : i โ‰  n) (X : Set ฮฑ) :
      fiber (single V n X) i = V.master
      theorem Domain.Neighborhood.single_mono {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {n : โ„•} {X X' : Set ฮฑ} (h : X โІ X') :
      single V n X โІ single V n X'
      theorem Domain.Neighborhood.single_inter {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {n : โ„•} (X X' : Set ฮฑ) :
      single V n X โˆฉ single V n X' = single V n (X โˆฉ X')

      The system ๐’Ÿ^โˆž. #

      Exercise 3.16 (Scott 1981, PRG-19). The infinite iterate ๐’Ÿ^โˆž over ฮ”^โˆž = โ„• ร— ฮ”: W โˆˆ ๐’Ÿ^โˆž iff every fiber is a neighbourhood of ๐’Ÿ and all but finitely many fibers equal ฮ”.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem Domain.Neighborhood.iterSys_master {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} :
        @[simp]
        theorem Domain.Neighborhood.mem_iterSys {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {W : Set (โ„• ร— ฮฑ)} :
        (iterSys V).mem W โ†” (โˆ€ (i : โ„•), V.mem (fiber W i)) โˆง โˆƒ (N : โ„•), โˆ€ (i : โ„•), N โ‰ค i โ†’ fiber W i = V.master
        theorem Domain.Neighborhood.single_mem {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {n : โ„•} {X : Set ฮฑ} (hX : V.mem X) :
        (iterSys V).mem (single V n X)

        single V n X is a ๐’Ÿ^โˆž-neighbourhood whenever X โˆˆ ๐’Ÿ.

        theorem Domain.Neighborhood.subset_single {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {W : Set (โ„• ร— ฮฑ)} (hW : (iterSys V).mem W) (i : โ„•) :
        W โІ single V i (fiber W i)

        Every ๐’Ÿ^โˆž-neighbourhood is contained in the pinning of its own i-th fiber.

        theorem Domain.Neighborhood.reconstruct_subset {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {W : Set (โ„• ร— ฮฑ)} (_hW : (iterSys V).mem W) {N : โ„•} (hN : โˆ€ (i : โ„•), N โ‰ค i โ†’ fiber W i = V.master) :
        (iterSys V).interUpTo (fun (i : โ„•) => single V i (fiber W i)) N โІ W

        The finite intersection โ‹‚_{i<N} single i (fiber W i) reconstructs W from below, once N exceeds the cofinite-ฮ” bound of W.

        Components and sequences. #

        def Domain.Neighborhood.component {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (z : (iterSys V).Element) (n : โ„•) :

        The n-th component xโ‚™ โˆˆ |๐’Ÿ| of a ๐’Ÿ^โˆž-element z (Scott's coordinate at copy n).

        Equations
        Instances For
          @[simp]
          theorem Domain.Neighborhood.mem_component {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {z : (iterSys V).Element} {n : โ„•} {X : Set ฮฑ} :
          (component z n).mem X โ†” V.mem X โˆง z.mem (single V n X)
          def Domain.Neighborhood.ofSeq {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (seq : โ„• โ†’ V.Element) :

          The ๐’Ÿ^โˆž-element determined by an infinite sequence โŸจxโ‚™โŸฉ of ๐’Ÿ-elements: the neighbourhoods W whose every fiber lies in the corresponding xแตข.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem Domain.Neighborhood.mem_ofSeq {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {seq : โ„• โ†’ V.Element} {W : Set (โ„• ร— ฮฑ)} :
            (ofSeq seq).mem W โ†” (iterSys V).mem W โˆง โˆ€ (i : โ„•), (seq i).mem (fiber W i)
            theorem Domain.Neighborhood.ofSeq_mono {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {seq seq' : โ„• โ†’ V.Element} (h : โˆ€ (n : โ„•), seq n โ‰ค seq' n) :

            The two round-trips. #

            @[simp]
            theorem Domain.Neighborhood.component_ofSeq {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (seq : โ„• โ†’ V.Element) (n : โ„•) :
            component (ofSeq seq) n = seq n
            @[simp]
            theorem Domain.Neighborhood.ofSeq_component {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (z : (iterSys V).Element) :
            (ofSeq fun (n : โ„•) => component z n) = z
            theorem Domain.Neighborhood.le_of_component_le {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {z z' : (iterSys V).Element} (h : โˆ€ (n : โ„•), component z n โ‰ค component z' n) :

            z โŠ‘ z' is detected component-wise.

            Scott's two conclusions. #

            Exercise 3.16 (Scott 1981, PRG-19). The elements of |๐’Ÿ^โˆž| are in one-one, order-preserving correspondence with infinite sequences โŸจxโ‚™โŸฉ of elements of |๐’Ÿ|.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Domain.Neighborhood.natShiftEquiv (E : Type u_2) [Preorder E] :
              (โ„• โ†’ E) โ‰ƒo E ร— (โ„• โ†’ E)

              The shift order-isomorphism (โ„• โ†’ E) โ‰ƒo E ร— (โ„• โ†’ E), f โ†ฆ (f 0, f โˆ˜ succ).

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

                Exercise 3.16 (Scott 1981, PRG-19). The isomorphism |๐’Ÿ^โˆž| โ‰ƒo |๐’Ÿ ร— ๐’Ÿ^โˆž|, obtained from the sequence correspondence and the shift.

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

                  Exercise 3.16 (Scott 1981, PRG-19). ๐’Ÿ^โˆž โ‰… ๐’Ÿ ร— ๐’Ÿ^โˆž.

                  The coordinate projections ๐’Ÿ^โˆž โ†’ ๐’Ÿ (used in Exercise 3.24(ii)). #

                  The n-th coordinate projection projN n : ๐’Ÿ^โˆž โ†’ ๐’Ÿ, W (projN n) X โ†” fiber W n โІ X.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem Domain.Neighborhood.projN_rel {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} {n : โ„•} {W : Set (โ„• ร— ฮฑ)} {X : Set ฮฑ} :
                    @[simp]
                    theorem Domain.Neighborhood.toElementMap_projN {ฮฑ : Type u_1} {V : NeighborhoodSystem ฮฑ} (z : (iterSys V).Element) (n : โ„•) :

                    projN n extracts the n-th component: projN n (z) = component z n.