Documentation

LeanPool.DomainTheory.Neighborhood.Exercise411

Exercise 4.11 (Scott 1981, PRG-19, Lecture IV) — Plotkin's uniqueness of fix #

(Suggested by G. Plotkin.) Regard fix as assigning a fixed-point operator F_š’Ÿ : (š’Ÿ → š’Ÿ) → š’Ÿ to each domain š’Ÿ. Scott asks to show fix is the unique such assignment š’Ÿ ā† F_š’Ÿ subject to:

fix satisfies (iii) (fixElement_uniform): writing fix(fā‚€) = āŠ”ā‚™ f₀ⁿ(⊄) (Theorem 4.2(iii)), the intertwining h ∘ fā‚€ = f₁ ∘ h together with h(⊄) = ⊄ gives h(f₀ⁿ(⊄)) = f₁ⁿ(⊄) by induction, and h preserves directed unions, so h(fix fā‚€) = āŠ”ā‚™ f₁ⁿ(⊄) = fix f₁.

Uniqueness (fix_unique_of_uniform): given any F obeying (ii) and (iii), and any f : š’Ÿ → š’Ÿ, apply (iii) with the inclusion h = ι : š’Ÿ_{fix f} ↪ š’Ÿ of the relativized domain (Exercise 4.10). ι(⊄) = ⊄ (inclMap_bot) and ι ∘ f' = f ∘ ι (inclMap_intertwine, from relMap_toElementMap_embed). Hence ι(F_{š’Ÿ_{fix f}}(f')) = F_š’Ÿ(f). But F_{š’Ÿ_{fix f}}(f') is a fixed point of f' by (ii), and f' has exactly one fixed point (Exercise 4.10, relMap_unique_fixed) — the top point fix f — so the left side is ι(fix f) = fix f. Therefore F_š’Ÿ(f) = fix f.

fix satisfying (i)/(ii) is Theorem 4.2 (fixMap, fixMap_fixed). The uniqueness proof uses only the project's permitted Element.ext; the inclusion data inclMap is choice-free.

fix satisfies the uniformity condition (iii). #

fⁿ(⊄) āŠ‘ fix(f): every approximant lies below the least fixed point.

theorem Domain.Neighborhood.ApproximableMap.fixElement_uniform {β : Type u_2} {γ : Type u_3} {Wā‚€ : NeighborhoodSystem β} {W₁ : NeighborhoodSystem γ} (fā‚€ : ApproximableMap Wā‚€ Wā‚€) (f₁ : ApproximableMap W₁ W₁) (h : ApproximableMap Wā‚€ W₁) (hbot : h.toElementMap Wā‚€.bot = W₁.bot) (hintw : āˆ€ (x : Wā‚€.Element), h.toElementMap (fā‚€.toElementMap x) = f₁.toElementMap (h.toElementMap x)) :

Exercise 4.11(iii) (Scott 1981, PRG-19). fix is uniform: if h(⊄) = ⊄ and h ∘ fā‚€ = f₁ ∘ h, then h(fix fā‚€) = fix f₁.

The inclusion ι : š’Ÿā‚ ↪ š’Ÿ of the relativized domain (Exercise 4.10). #

The inclusion š’Ÿā‚ → š’Ÿ as an approximable map: an a-neighbourhood X relates to any larger š’Ÿ-neighbourhood Y āŠ‡ X. Its elementwise action is embed a (inclMap_toElementMap).

Equations
Instances For

    The inclusion's elementwise action is embed a (Exercise 4.10).

    The inclusion is strict: ι(⊄) = ⊄.

    The inclusion intertwines f' with f: ι ∘ f' = f ∘ ι (from relMap_toElementMap_embed).

    Plotkin's uniqueness theorem. #

    theorem Domain.Neighborhood.fix_unique_of_uniform (F : {β : Type u} → (W : NeighborhoodSystem β) → ApproximableMap W W → W.Element) (hfixed : āˆ€ {β : Type u} (W : NeighborhoodSystem β) (g : ApproximableMap W W), g.toElementMap (F W g) = F W g) (huniform : āˆ€ {β γ : Type u} (Wā‚€ : NeighborhoodSystem β) (W₁ : NeighborhoodSystem γ) (gā‚€ : ApproximableMap Wā‚€ Wā‚€) (g₁ : ApproximableMap W₁ W₁) (h : ApproximableMap Wā‚€ W₁), h.toElementMap Wā‚€.bot = W₁.bot → (āˆ€ (x : Wā‚€.Element), h.toElementMap (gā‚€.toElementMap x) = g₁.toElementMap (h.toElementMap x)) → h.toElementMap (F Wā‚€ gā‚€) = F W₁ g₁) {α : Type u} (V : NeighborhoodSystem α) (f : ApproximableMap V V) :
    F V f = f.fixElement

    Exercise 4.11 (Scott 1981, PRG-19) — Plotkin's uniqueness. Any assignment F of a fixed-point operator to every domain satisfying (ii) F_š’Ÿ(f) = f(F_š’Ÿ(f)) and (iii) the uniformity law coincides with fix: F_š’Ÿ(f) = fix(f) for every domain š’Ÿ and every f : š’Ÿ → š’Ÿ.