Documentation

LeanPool.DomainTheory.Neighborhood.Theorem69

Lecture VI — Theorem 6.9 (Scott 1981, PRG-19): homomorphisms out of a fixed #

point

THEOREM 6.9. If the functor T is continuous on maps (Definition 6.8) and if D ≅ T(D), so in particular D is a T-algebra, then for any T-algebra k : T(E) → E there is a homomorphism h : DE.

Scott's proof. Let i : T(D) → D be the isomorphism making D a T-algebra and j : D → T(D) its inverse. A homomorphism h : DE must satisfy h ∘ i = k ∘ T(h), equivalently the fixed-point equation

h = k ∘ T(h) ∘ j.

The operator λh. k ∘ T(h) ∘ j on the strict function space (D →⊥ E) is approximable: the inner λh. T(h) is approximable precisely by Definition 6.8 (ContinuousOnMaps), and post- and pre-composition with the fixed maps k, j is approximable too. Hence by the Lecture IV fixed-point theory (Theorem 4.1, fixElement) it has a least fixed point h, the desired homomorphism.

What the formalization does #

We work over Scott's strict function space (D →⊥ E) = strictFun D.sys E.sys (Exercise 5.10), exactly matching Definition 6.8.

The conclusion is Nonempty {g : AlgHom ⟨D, i⟩ B // IsStrict g.hom} — Scott's existence statement, recording that the homomorphism is itself a strict map (it is toStrictMap of the fixed point), which the uniqueness half of Theorem 6.14 consumes. Extracting Φ from the Prop-valued ContinuousOnMaps is done by Exists.elim while proving a Prop, so it stays choice-free (#print axioms ⊆ {propext, Quot.sound}).

General helper lemmas (strictness and monotonicity of composition). #

theorem Domain.Neighborhood.isStrict_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {V₀ : NeighborhoodSystem α} {V₁ : NeighborhoodSystem β} {V₂ : NeighborhoodSystem γ} {a : ApproximableMap V₁ V₂} {b : ApproximableMap V₀ V₁} (ha : Exercise510.IsStrict a) (hb : Exercise510.IsStrict b) :

The composite of strict maps is strict: (a ∘ b)(⊥) = a(b(⊥)) = a(⊥) = ⊥.

theorem Domain.Neighborhood.isStrict_of_comp_eq_id {α : Type u_1} {β : Type u_2} {V₀ : NeighborhoodSystem α} {V₁ : NeighborhoodSystem β} {a : ApproximableMap V₁ V₀} {b : ApproximableMap V₀ V₁} (h : a.comp b = ApproximableMap.idMap V₀) :

If a ∘ b = I then a is strict: any (split) iso preserves .

theorem Domain.Neighborhood.comp_mono_gen {α : Type u_1} {β : Type u_2} {γ : Type u_3} {V₀ : NeighborhoodSystem α} {V₁ : NeighborhoodSystem β} {V₂ : NeighborhoodSystem γ} {a a' : ApproximableMap V₁ V₂} {b b' : ApproximableMap V₀ V₁} (ha : a a') (hb : b b') :
a.comp b a'.comp b'

Composition is monotone in both arguments (general arities).

theorem Domain.Neighborhood.toStrictMap_mono {α : Type u_1} {β : Type u_2} {V₀ : NeighborhoodSystem α} {V₁ : NeighborhoodSystem β} {φ φ' : (Exercise510.strictFun V₀ V₁).Element} (h : φ φ') :

toStrictMap is monotone.

toStrictFilter is monotone.

toStrictFilter ∘ toStrictMap = id (the left inverse of the strict-function-space representation; the mirror of toStrictMap_toStrictFilter).

The post/pre-composition operator on strict function spaces. #

The strict composite g ↦ k ∘ g ∘ j : (T(D) →⊥ T(E)) → (D →⊥ E).

Equations
Instances For
    theorem Domain.Neighborhood.homOpComp_mono (T : Endofunctor DomainObj) (D E : DomainObj) (j : ApproximableMap D.sys (T.obj D).sys) (k : ApproximableMap (T.obj E).sys E.sys) (hj : Exercise510.IsStrict j) (hk : Exercise510.IsStrict k) {g g' : Exercise510.StrictMap (T.obj D).sys (T.obj E).sys} (hgg : g g') :
    homOpComp T D E j k hj hk g homOpComp T D E j k hj hk g'

    The operator λg. k ∘ g ∘ j as an approximable map between the strict function spaces, built by Exercise 2.8 (ofMono) from its values on finite elements.

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

      Action lemma. homOp realizes the composite g ↦ k ∘ g ∘ j on filters of strict maps: homOp(ĝ) = (k ∘ g ∘ j)^. Proved by reducing to single step neighbourhoods through the strict representation.

      Theorem 6.9. #

      Theorem 6.9 (Scott 1981, PRG-19). If T is continuous on maps and D ≅ T(D) (so D is a T-algebra via i : T(D) → D), then for any T-algebra B = (E, k) with k strict there is a homomorphism DE. The homomorphism is the least fixed point of λh. k ∘ T(h) ∘ j.