Documentation

LeanPool.DomainTheory.Neighborhood.Theorem110

Theorem 1.10 (Scott 1981, PRG-19, Β§1) β€” the element-token system {[X]} #

Given any neighbourhood system π’Ÿ, Scott replaces the tokens Ξ” by the elements |π’Ÿ| themselves: for X ∈ π’Ÿ put

[X] = {x ∈ |π’Ÿ| ∣ X ∈ x},

the set of elements that contain X. The family {[X] ∣ X ∈ π’Ÿ} is a neighbourhood system over |π’Ÿ|, and it determines a domain isomorphic to |π’Ÿ| (Definition 1.9). "The rΓ΄le of the tokens is simply to keep the inclusions (and intersections) of neighbourhoods sorted out."

We prove Scott's four facts:

together with the one-one (bracket_injective), inclusion-preserving (bracket_subset_iff) correspondence X ↦ [X], and finally the induced order-isomorphism tokenIso : |π’Ÿ| ≃o |{[X]}|, giving π’Ÿ β‰…α΄° tokenSystem (isomorphic_tokenSystem).

Everything is constructive ([propext, Quot.sound]): [X]-membership is just x.mem X, and the filter laws mirror the constructive proofs for principal.

Scott's [X] = {x ∈ |π’Ÿ| ∣ X ∈ x}: the elements of |π’Ÿ| that contain the neighbourhood X. (This is the basicOpen X of Exercise 1.22, repeated here to avoid the topology dependency.)

Equations
Instances For
    @[simp]
    theorem Domain.Neighborhood.NeighborhoodSystem.mem_bracket {Ξ± : Type u_1} (V : NeighborhoodSystem Ξ±) {X : Set Ξ±} {x : V.Element} :
    @[simp]

    Theorem 1.10 (1). [Ξ”] = |π’Ÿ|: every element contains the master neighbourhood.

    Theorem 1.10 (4). ↑X ∈ [X]: the principal filter of X contains X.

    theorem Domain.Neighborhood.NeighborhoodSystem.bracket_inter {Ξ± : Type u_1} (V : NeighborhoodSystem Ξ±) {X Y : Set Ξ±} (hX : V.mem X) (hY : V.mem Y) :

    Theorem 1.10 (3). [X] ∩ [Y] = [X ∩ Y] for X, Y ∈ π’Ÿ. (βŠ† is filter closure under ∩; βŠ‡ is upward closure along X ∩ Y βŠ† X, X ∩ Y βŠ† Y.)

    theorem Domain.Neighborhood.NeighborhoodSystem.bracket_subset_iff {Ξ± : Type u_1} (V : NeighborhoodSystem Ξ±) {X Y : Set Ξ±} (hX : V.mem X) (hY : V.mem Y) :

    The correspondence X ↦ [X] is inclusion-preserving. [X] βŠ† [Y] ↔ X βŠ† Y (for X,Y ∈ π’Ÿ). β†’ tests at ↑X ∈ [X], reading X βŠ† Y off ↑X ∈ [Y]; ← is upward closure.

    theorem Domain.Neighborhood.NeighborhoodSystem.bracket_injective {Ξ± : Type u_1} (V : NeighborhoodSystem Ξ±) {X Y : Set Ξ±} (hX : V.mem X) (hY : V.mem Y) (h : V.bracket X = V.bracket Y) :
    X = Y

    The correspondence X ↦ [X] is one-one. [X] = [Y] ⟹ X = Y (for X,Y ∈ π’Ÿ).

    theorem Domain.Neighborhood.NeighborhoodSystem.bracket_inter_nonempty_iff {Ξ± : Type u_1} (V : NeighborhoodSystem Ξ±) {X Y : Set Ξ±} (hX : V.mem X) (hY : V.mem Y) :

    Theorem 1.10 (2). X, Y are consistent in π’Ÿ (have a common lower bound Z ∈ π’Ÿ, Z βŠ† X ∩ Y) iff [X] ∩ [Y] β‰  βˆ…. β†’ uses ↑Z (which lies in both [X] and [Y]); ← reads a witness off any common element.

    The token system {[X]} and the isomorphism. #

    Theorem 1.10. The element-token system {[X] ∣ X ∈ π’Ÿ} over the tokens |π’Ÿ|. The two laws reduce to facts about [Β·]: the master [Ξ”] = |π’Ÿ| is the whole space; the consistency witness [W] for [X] ∩ [Y] yields W βŠ† X ∩ Y (via ↑W), so X ∩ Y ∈ π’Ÿ and [X] ∩ [Y] = [X ∩ Y].

    Equations
    Instances For

      The element of |{[X]}| corresponding to x ∈ |π’Ÿ|: the filter {[X] ∣ X ∈ x}.

      Equations
      Instances For

        The element of |π’Ÿ| corresponding to y ∈ |{[X]}|: the filter {X ∣ [X] ∈ y}.

        Equations
        • V.ofToken y = { mem := fun (X : Set Ξ±) => V.mem X ∧ y.mem (V.bracket X), sub := β‹―, master_mem := β‹―, inter_mem := β‹―, up_mem := β‹― }
        Instances For

          Theorem 1.10 (the isomorphism). X ↦ [X] induces an order-isomorphism |π’Ÿ| ≃o |{[X]}|: toToken and ofToken are mutually inverse and preserve/reflect βŠ‘.

          Equations
          Instances For

            Theorem 1.10 (statement). Any neighbourhood system is isomorphic to its element-token system: π’Ÿ β‰…α΄° {[X]}.