Lecture VI — Exercise 6.25 (Scott 1981, PRG-19): the Galois connection of a #
projection pair
Exercise 6.25. For a projection pair g : 𝒟 → ℰ and h : ℰ → 𝒟 show that for
x ∈ |𝒟| and
y ∈ |ℰ| we have
Thus conclude
h(y) = ⊔ {x ∈ |𝒟| ∣ g(x) ⊑ y} and g(x) = ⊓ {y ∈ |ℰ| ∣ x ⊑ h(y)},
so each of the two functions determines the other. Check that the set in the first
equation is
directed, and that the set in the second is non-empty. Prove also that g maps
consistent sets to
consistent sets and preserves ⊔ (not just directed unions).
Dictionary to the codebase #
Scott's g is the injection i and his h is the projection j of Proposition
6.12; we carry
them abstractly in Subsystem.ProjectionPair 𝒟 ℰ (fields inj = g, proj = h)
together with the
two defining laws
proj_comp_inj : h ∘ g = I_𝒟(P.proj.comp P.inj = idMap 𝒟), andinj_comp_proj_le : g ∘ h ⊆ I_ℰ(P.inj.comp P.proj ≤ idMap ℰ).
On elements (toElementMap) these read h(g(x)) = x (proj_inj_apply) and
g(h(y)) ⊑ y
(inj_proj_apply_le); everything below is a short consequence of these two facts
plus monotonicity
of approximable maps on elements (toElementMap_mono).
galois— the adjunctiong(x) ⊑ y ↔ x ⊑ h(y).proj_eq_sSup/lowerSet_directed—h(y) = ⊔ {x ∣ g(x) ⊑ y}; the set is a down-set ofh(y), hence directed and bounded byh(y).inj_eq_sInf—g(x) = ⊓ {y ∣ x ⊑ h(y)}; the set is an up-set ofg(x), hence non-empty (it containsg(x)).inj_bounded—gmaps bounded ("consistent") sets to bounded sets.inj_sSup—gpreserves all existing least upper bounds:g(⊔S) = ⊔ {g(s) ∣ s ∈ S}. This is the hallmark of a lower adjoint and is the substance of the last sentence of the exercise.
Everything here is choice-free (#print axioms ⊆ {propext, Quot.sound}): the
sSup/sInf of
Exercises 1.18/1.27 are the only constructions used and are themselves
choice-free.
h(g(x)) = x. The first projection-pair law h ∘ g = I_𝒟, read on
elements.
g(h(y)) ⊑ y. The second projection-pair law g ∘ h ⊆ I_ℰ, read on
elements.
Exercise 6.25, the Galois connection. For x ∈ |𝒟|, y ∈ |ℰ|:
g(x) ⊑ y ↔ x ⊑ h(y). So g (lower adjoint) and h (upper adjoint) determine
each other.
→: apply the monotone h to g(x) ⊑ y and use h(g(x)) = x.
←: apply the monotone g to x ⊑ h(y) and use g(h(y)) ⊑ y.
First extremal formula: h(y) = ⊔ {x ∣ g(x) ⊑ y}. #
The set {x ∈ |𝒟| ∣ g(x) ⊑ y} of the first formula. By the Galois connection
it is the
down-set {x ∣ x ⊑ h(y)} of h(y).
Instances For
The set {x ∣ g(x) ⊑ y} is bounded: h(y) is an upper bound (it is in fact
the top).
Exercise 6.25 — "check that the set on the right is directed". Any two
members of
{x ∣ g(x) ⊑ y} have a common upper bound inside the set, namely h(y) itself
(the down-set of
h(y) has h(y) as a top, so it is trivially directed).
Exercise 6.25, first extremal formula. h(y) = ⊔ {x ∈ |𝒟| ∣ g(x) ⊑ y}.
h(y) is the greatest member of the set (g(h(y)) ⊑ y, so h(y) is in it;
every member is
⊑ h(y) by the Galois connection), hence it is the least upper bound.
The set {y ∈ |ℰ| ∣ x ⊑ h(y)} of the second formula. By the Galois connection
it is the
up-set {y ∣ g(x) ⊑ y} of g(x).
Instances For
Exercise 6.25 — "check that the set on the right is non-empty". g(x)
itself lies in
{y ∣ x ⊑ h(y)}, since x ⊑ h(g(x)) = x.
Exercise 6.25, second extremal formula. g(x) = ⊓ {y ∈ |ℰ| ∣ x ⊑ h(y)}.
g(x) is the least member of the set (x ⊑ h(g(x)) = x, so g(x) is in it;
every member is
⊒ g(x) by the Galois connection), hence it is the greatest lower bound.
g preserves consistency and all least upper bounds. #
Exercise 6.25 — g maps consistent sets to consistent sets. "Consistent"
for sets of
elements is "bounded" (Exercise 1.27). If S is bounded by b, its image {g(s) ∣ s ∈ S} is
bounded by g(b) (monotonicity).
Exercise 6.25 — g preserves ⊔ (not just directed unions). For any
bounded set S,
g(⊔S) = ⊔ {g(s) ∣ s ∈ S}. This is the characteristic property of a lower
adjoint.
⊒:g(⊔S)is an upper bound of{g(s)}sinces ⊑ ⊔Sandgis monotone.⊑: by the Galois connection it suffices that⊔S ⊑ h(⊔{g(s)}), i.e. that eachs ⊑ h(⊔{g(s)}); by the Galois connection again this isg(s) ⊑ ⊔{g(s)}, true byle_sSup.