Documentation

LeanPool.DomainTheory.Neighborhood.Exercise324Iter

Exercise 3.24(ii) (Scott 1981, PRG-19, Β§3) β€” (π’Ÿβ‚€ β†’ π’Ÿβ‚^∞) β‰… (π’Ÿβ‚€ β†’ π’Ÿβ‚)^∞ #

Using the infinite iterate π’Ÿ^∞ of Exercise 3.16 and the function space (π’Ÿβ‚€ β†’ π’Ÿβ‚) of Definition 3.8 / Theorem 3.10, we establish Scott's isomorphism (ii):

(π’Ÿβ‚€ β†’ π’Ÿβ‚^∞) β‰… (π’Ÿβ‚€ β†’ π’Ÿβ‚)^∞.

The crux is the order-isomorphism on approximable maps

funIterEquiv : Hom(π’Ÿβ‚€, π’Ÿβ‚^∞) ≃o (β„• β†’ Hom(π’Ÿβ‚€, π’Ÿβ‚)),

f ↦ (n ↦ projβ‚™ ∘ f) with inverse the "infinite pairing" g ↦ mapOfSeq g, whose value is the sequence mapOfSeq g (x) = ⟨gβ‚™(x)βŸ©β‚™. Transporting through Theorem 3.10's funSpaceEquiv (twice, the second time pointwise via OrderIso.piCongrRight) and Exercise 3.16's iterSeqEquiv yields the domain isomorphism.

Everything is choice-free in spirit; the only classical input is inherited from Element.ext, funSpaceEquiv and the choose in the βˆƒ/βˆ€-swap lemma, exactly as elsewhere in Β§3.

def Domain.Neighborhood.mapOfSeq {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} (g : β„• β†’ ApproximableMap Vβ‚€ V₁) :
ApproximableMap Vβ‚€ (iterSys V₁)

The "infinite pairing" map π’Ÿβ‚€ β†’ π’Ÿβ‚^∞ of a sequence g : β„• β†’ Hom(π’Ÿβ‚€, π’Ÿβ‚): X (mapOfSeq g) W ↔ X ∈ π’Ÿβ‚€, W ∈ π’Ÿβ‚^∞, and X gα΅’ (fiber W i) for all i.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Domain.Neighborhood.exists_forall_swap {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} {x : Vβ‚€.Element} {W : Set (β„• Γ— Ξ²)} {g : β„• β†’ ApproximableMap Vβ‚€ V₁} (hW : (iterSys V₁).mem W) :
    (βˆƒ (X : Set Ξ±), x.mem X ∧ βˆ€ (i : β„•), (g i).rel X (fiber W i)) ↔ βˆ€ (i : β„•), βˆƒ (X : Set Ξ±), x.mem X ∧ (g i).rel X (fiber W i)

    The βˆƒ/βˆ€-swap behind mapOfSeq: a single input neighbourhood X ∈ x works for all coordinates iff each coordinate has its own (intersect the finitely many non-trivial ones).

    theorem Domain.Neighborhood.toElementMap_mapOfSeq {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} (g : β„• β†’ ApproximableMap Vβ‚€ V₁) (x : Vβ‚€.Element) :
    (mapOfSeq g).toElementMap x = ofSeq fun (i : β„•) => (g i).toElementMap x

    The value of mapOfSeq g is the sequence of values ⟨gᡒ(x)⟩.

    theorem Domain.Neighborhood.projComp_mono {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} {f f' : ApproximableMap Vβ‚€ (iterSys V₁)} (h : f ≀ f') (n : β„•) :
    (projN V₁ n).comp f ≀ (projN V₁ n).comp f'

    projβ‚™ ∘ f is monotone in f.

    theorem Domain.Neighborhood.le_of_projComp_le {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} {f f' : ApproximableMap Vβ‚€ (iterSys V₁)} (h : βˆ€ (n : β„•), (projN V₁ n).comp f ≀ (projN V₁ n).comp f') :
    f ≀ f'

    A map π’Ÿβ‚€ β†’ π’Ÿβ‚^∞ is detected coordinate-wise: f βŠ‘ f' iff projβ‚™ ∘ f βŠ‘ projβ‚™ ∘ f' for all n.

    def Domain.Neighborhood.funIterEquiv {Ξ± : Type u_1} {Ξ² : Type u_2} (Vβ‚€ : NeighborhoodSystem Ξ±) (V₁ : NeighborhoodSystem Ξ²) :
    ApproximableMap Vβ‚€ (iterSys V₁) ≃o (β„• β†’ ApproximableMap Vβ‚€ V₁)

    Exercise 3.24(ii) (Scott 1981, PRG-19). The order-isomorphism on approximable maps Hom(π’Ÿβ‚€, π’Ÿβ‚^∞) ≃o (β„• β†’ Hom(π’Ÿβ‚€, π’Ÿβ‚)), f ↦ (n ↦ projβ‚™ ∘ f).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Domain.Neighborhood.piCongrOrderIso {ΞΉ : Type u_3} {A : ΞΉ β†’ Type u_4} {B : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ Preorder (A i)] [(i : ΞΉ) β†’ Preorder (B i)] (e : (i : ΞΉ) β†’ A i ≃o B i) :
      ((i : ΞΉ) β†’ A i) ≃o ((i : ΞΉ) β†’ B i)

      A pointwise family of order-isomorphisms induces one on the dependent product.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Domain.Neighborhood.funIterIso {Ξ± : Type u_1} {Ξ² : Type u_2} (Vβ‚€ : NeighborhoodSystem Ξ±) (V₁ : NeighborhoodSystem Ξ²) :
        (funSpace Vβ‚€ (iterSys V₁)).Element ≃o (iterSys (funSpace Vβ‚€ V₁)).Element

        Exercise 3.24(ii) (Scott 1981, PRG-19). The domain isomorphism |π’Ÿβ‚€ β†’ π’Ÿβ‚^∞| ≃o |(π’Ÿβ‚€ β†’ π’Ÿβ‚)^∞|.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem Domain.Neighborhood.funIter_isomorphic {Ξ± : Type u_1} {Ξ² : Type u_2} {Vβ‚€ : NeighborhoodSystem Ξ±} {V₁ : NeighborhoodSystem Ξ²} :
          funSpace Vβ‚€ (iterSys V₁) β‰…α΄° iterSys (funSpace Vβ‚€ V₁)

          Exercise 3.24(ii). (π’Ÿβ‚€ β†’ π’Ÿβ‚^∞) β‰… (π’Ÿβ‚€ β†’ π’Ÿβ‚)^∞.