Lecture III (§3) — the function space (𝒟₀ → 𝒟₁): Definitions 3.8, Propositions #
3.9, Theorems 3.10, 3.11, 3.12, 3.13
Following Dana Scott, Lectures on a Mathematical Theory of Computation, PRG-19
(1981), Lecture III.
The function space (𝒟₀ → 𝒟₁) is the neighbourhood system whose tokens are
the approximable
maps 𝒟₀ → 𝒟₁ (Definition 2.1), and whose neighbourhoods are the non-empty finite
intersections of
the step sets
[X, Y] = {f ∣ X f Y} (step X Y),
for X ∈ 𝒟₀, Y ∈ 𝒟₁. We model a finite intersection by a List of (X, Y)
pairs, with
stepFun L = {f ∣ ∀ (X, Y) ∈ L, X f Y}; the empty list gives the master Δ = |𝒟₀ → 𝒟₁|
(Set.univ). The system is positive: a neighbourhood is required non-empty,
which is exactly
what makes a filter's induced relation intersective (Theorem 3.10).
This file formalizes:
- Definition 3.8 —
step,stepFun, the systemfunSpace V₀ V₁, with the basic algebrastep_inter_right([X,Y] ∩ [X,Y'] = [X,Y∩Y']),step_subset(antitone/monotone),step_master_eq([Δ₀,Δ₁] = univ), and membershipstep_mem. - Theorem 3.10 (the crux) —
funSpaceEquiv : |𝒟₀ → 𝒟₁| ≃o ApproximableMap V₀ V₁: every filter is fixed by a unique approximable map (toApproxMap/toFilter), inclusion-preservingly. - Proposition 3.9 —
leastMap(the least mapf₀of a consistent neighbourhood, condition (ii)X f₀ Y ↔ ⋂{Yᵢ ∣ X ⊆ Xᵢ} ⊆ Y),leastMap_mem_stepFunandleastMap_le(it is the minimal element of⋂[Xᵢ,Yᵢ]), andstepFun_subset_step_iff(the remark after 3.9). The consistency hypothesishconsis Scott's condition (i) in operational form. - Theorem 3.13 —
le_iff_toElementMap_le(i);mapsBounded_iff_pointwiseBounded(ii);sSupMapswithtoElementMap_sSupMaps(iii).
The order on approximable maps (rel-inclusion). #
Approximable maps are ordered by inclusion of their relations (Scott's
approximation order on
|𝒟₀ → 𝒟₁|). Antisymmetry is ApproximableMap.ext.
Equations
- One or more equations did not get rendered due to their size.
Definition 3.8 — step sets and the function space. #
Scott's step set [X, Y] = {f ∣ X f Y}.
Equations
- Domain.Neighborhood.step X Y = {f : Domain.Neighborhood.ApproximableMap V₀ V₁ | f.rel X Y}
Instances For
A finite intersection of step sets, indexed by a list of (X, Y) pairs.
Equations
- Domain.Neighborhood.stepFun L = {f : Domain.Neighborhood.ApproximableMap V₀ V₁ | ∀ p ∈ L, f.rel p.1 p.2}
Instances For
[Δ₀, Δ₁] = |𝒟₀ → 𝒟₁|: every map relates the masters.
Definition 3.8 (Scott 1981, PRG-19). The function space (𝒟₀ → 𝒟₁):
tokens are
approximable maps, neighbourhoods are non-empty finite intersections of step sets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A step neighbourhood [X, Y] is a neighbourhood of the function space
(non-empty: it contains
the constant map constMap V₀ (↑Y)).
The "generation" lemma: a filter contains the intersection stepFun L iff it
contains each
step [Xᵢ, Yᵢ]. (The step sets [X, Y] ∈ φ generate the filter φ.)
Theorem 3.10 — the function space is complete. #
Theorem 3.10 (Scott 1981, PRG-19). The relation X φ̂ Y ↔ [X, Y] ∈ φ of a
filter φ.
Intersectivity is the payoff of positivity ([X,Y]∩[X,Y'] = [X,Y∩Y'] is
non-empty, so Y∩Y' ∈ 𝒟₁).
Equations
- Domain.Neighborhood.toApproxMap φ = { rel := fun (X : Set α) (Y : Set β) => φ.mem (Domain.Neighborhood.step X Y), rel_dom := ⋯, rel_cod := ⋯, master_rel := ⋯, inter_right := ⋯, mono := ⋯ }
Instances For
Theorem 3.10 (Scott 1981, PRG-19). The filter f̂ = {F ∣ f ∈ F} of an
approximable map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Theorem 3.10 (Scott 1981, PRG-19). The function space is complete: every filter is fixed by a unique approximable mapping, inclusion-preservingly.
Equations
- Domain.Neighborhood.funSpaceEquiv V₀ V₁ = { toFun := Domain.Neighborhood.toApproxMap, invFun := Domain.Neighborhood.toFilter, left_inv := ⋯, right_inv := ⋯, map_rel_iff' := ⋯ }
Instances For
Intersection of two function-space neighbourhoods, when non-empty, is again one.
Step neighbourhoods are up-closed under the map order: if f ∈ stepFun L
and f ⊑ f', then
f' ∈ stepFun L.
A function-space neighbourhood is up-closed under the map order.
Proposition 3.9 — the least map of a consistent neighbourhood. #
Scott's intersection ⋂ {Yᵢ ∣ X ⊆ Xᵢ} of the outputs whose input is coarser
than X, taken
inside the master neighbourhood Δ₁ (so the empty intersection is Δ₁, per the
convention 1.1a).
Indexed by the list L of (Xᵢ, Yᵢ) pairs.
Equations
- Domain.Neighborhood.interYs m [] x✝ = m
- Domain.Neighborhood.interYs m (p :: L) x✝ = {z : β | x✝ ⊆ p.1 → z ∈ p.2} ∩ Domain.Neighborhood.interYs m L x✝
Instances For
Proposition 3.9(ii) (Scott 1981, PRG-19). The least approximable mapping
f₀ belonging to
the neighbourhood ⋂ [Xᵢ, Yᵢ], defined by X f₀ Y ↔ ⋂{Yᵢ ∣ X ⊆ Xᵢ} ⊆ Y.
Well-definedness uses
Scott's condition (i) in the operational form hcons: for every neighbourhood
X, the outputs
{Yᵢ ∣ X ⊆ Xᵢ} (consistent in 𝒟₁, witnessed by X being a common lower bound
of their inputs)
have their intersection again a neighbourhood.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Proposition 3.9 (Scott 1981, PRG-19). The least map f₀ belongs to the
neighbourhood:
Xᵢ f₀ Yᵢ for every (Xᵢ, Yᵢ) ∈ L.
The relation X f Y holds for f in the neighbourhood stepFun L at the
master output, and
more importantly f relates X to the whole intersection interYs Δ₁ L X
(finite intersectivity
over the relevant outputs). The case split deciding X ⊆ Xᵢ is a documented
classical step.
Proposition 3.9 (Scott 1981, PRG-19). f₀ is the minimal element of the
neighbourhood:
any f with Xᵢ f Yᵢ for all i satisfies f₀ ⊆ f.
Remark after Proposition 3.9 (Scott 1981, PRG-19). When the neighbourhood
is consistent,
⋂ [Xᵢ, Yᵢ] ⊆ [X, Y] iff ⋂{Yᵢ ∣ X ⊆ Xᵢ} ⊆ Y. This is the form used to check
that curry is
monotone (and hence approximable).
Theorem 3.13(i) — the pointwise order. #
Theorem 3.13(i) (Scott 1981, PRG-19). f ⊑ g ↔ ∀ x, f(x) ⊑ g(x).
Theorem 3.13(ii)(iii) — pointwise boundedness and sups. #
A set F of approximable maps is bounded when it has an upper bound in the
map order.
Equations
- Domain.Neighborhood.MapsBounded F = ∃ (h : Domain.Neighborhood.ApproximableMap V₀ V₁), ∀ f ∈ F, f ≤ h
Instances For
F is pointwise bounded when {f(x) ∣ f ∈ F} is bounded in |𝒟₁| for
every x.
Equations
- Domain.Neighborhood.PointwiseBounded F = ∀ (x : V₀.Element), V₁.Bounded ((fun (f : Domain.Neighborhood.ApproximableMap V₀ V₁) => f.toElementMap x) '' F)
Instances For
The sup of {f(↑X) ∣ f ∈ F} on principal inputs, used to build sSupMaps.
Equations
- Domain.Neighborhood.supOnPrincipal F hF X hX = V₁.sSup ((fun (f : Domain.Neighborhood.ApproximableMap V₀ V₁) => f.toElementMap (V₀.principal hX)) '' F) ⋯
Instances For
Theorem 3.13(iii) (Scott 1981, PRG-19). The least upper bound of a
pointwise-bounded set
F, defined on principal inputs by supOnPrincipal and extended via Exercise 2.8
(ofMono).
Equations
- Domain.Neighborhood.sSupMaps F hF = Domain.Neighborhood.ApproximableMap.ofMono (fun (X : Set α) (hX : V₀.mem X) => Domain.Neighborhood.supOnPrincipal F hF X hX) ⋯
Instances For
Theorem 3.13(ii) (Scott 1981, PRG-19). F is bounded in |𝒟₀ → 𝒟₁| iff
{f(x) ∣ f ∈ F} is
bounded in |𝒟₁| for each x ∈ |𝒟₀|. The forward direction is
le_iff_toElementMap_le (3.13(i))
applied pointwise; the backward direction builds the bound sSupMaps F.
Theorem 3.13(iii) (Scott 1981, PRG-19). When F is bounded, (⊔F)(x) = ⊔{f(x) ∣ f ∈ F}
(stated with the boundedness hypothesis in Scott's MapsBounded form).
Theorem 3.11 — evaluation. #
Theorem 3.11 (Scott 1981, PRG-19). The two-variable evaluation map
eval : (𝒟₁ → 𝒟₂) × 𝒟₁ → 𝒟₂, F, X eval Y ↔ X f Y for all f ∈ F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Theorem 3.11(i) (Scott 1981, PRG-19). eval(f, x) = f(x) (with the filter
φ viewed as
the map toApproxMap φ via Theorem 3.10).
Theorem 3.11 (Scott 1981, PRG-19). Evaluation as a single approximable map
out of the
product (𝒟₁ → 𝒟₂) × 𝒟₁ → 𝒟₂.
Equations
Instances For
Theorem 3.11(i) (Scott 1981, PRG-19). eval(⟨f, x⟩) = f(x).
Theorem 3.12 — currying. #
The X-section of a two-variable map g : 𝒟₀ × 𝒟₁ → 𝒟₂: the map 𝒟₁ → 𝒟₂
with
Y (gSection g X) Z ↔ X ∪ Y g Z.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Theorem 3.12 (Scott 1981, PRG-19). curry(g) : 𝒟₀ → (𝒟₁ → 𝒟₂), where
X curry(g) W ↔ (the X-section of g) ∈ W (for W = [Y, Z] this is X ∪ Y g Z).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Theorem 3.12(i) (Scott 1981, PRG-19). curry(g)(x)(y) = g(x, y).
The relational generation lemma for maps h : 𝒟₀ → (𝒟₁ → 𝒟₂): X h (⋂ᵢ [Yᵢ,Zᵢ]) iff
X h [Yᵢ,Zᵢ] for all i.
Theorem 3.12 (Scott 1981, PRG-19). Uncurrying h : 𝒟₀ → (𝒟₁ → 𝒟₂) to 𝒟₀ × 𝒟₁ → 𝒟₂:
X ∪ Y (uncurry h) Z ↔ X h [Y, Z].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Theorem 3.12 (Scott 1981, PRG-19). uncurry (curry g) = g.
Theorem 3.12 (Scott 1981, PRG-19). curry (uncurry h) = h.
Theorem 3.12(ii) (Scott 1981, PRG-19). eval ∘ ⟨curry(g) ∘ p₀, p₁⟩ = g.
Theorem 3.12(iii) (Scott 1981, PRG-19). curry (eval ∘ ⟨h ∘ p₀, p₁⟩) = h.
Theorem 3.12 (Scott 1981, PRG-19). curry is an order-isomorphism between
|𝒟₀ × 𝒟₁ → 𝒟₂| and |𝒟₀ → (𝒟₁ → 𝒟₂)|.
Equations
- Domain.Neighborhood.curryEquiv V₀ V₁ V₂ = { toFun := Domain.Neighborhood.curry, invFun := Domain.Neighborhood.uncurry, left_inv := ⋯, right_inv := ⋯, map_rel_iff' := ⋯ }