Exercise 2.20 (Scott 1981, PRG-19, §2) — the powerset domain 𝒫 #
EXERCISE 2.20. Discuss again the example of Exercise 1.15 where the domain turns out to be the powerset of
ℕ. Show how the finite elements can be taken to be the finite subsets ofℕand can be identified with the tokens of a suitable neighbourhood system𝒫. (Hint: Define↑Ffor finite setsF ⊆ ℕ.) Show that bothx ∪ yandx ∩ yare approximable functions of two variables, and thatx + 1 = {n + 1 ∣ n ∈ x}andx − 1 = {n ∣ n + 1 ∈ x}are approximable.
⚠ Numbering note. Our
Exercise115.leanformalized the flat/stem systems, not the powerset domain; so𝒫is built fresh here.
Token encoding. We take tokens Δ = ℕ and let the neighbourhoods of 𝒫 be
the cofinite
subsets of ℕ. Since the principal-filter map X ↦ ↑X is inclusion-reversing,
the finite element
↑X represents the finite set Xᶜ; as Xᶜ grows (more elements known to be in
the set), the
neighbourhood X shrinks (more information). Concretely a finite subset F ⊆ ℕ
is the finite
element ↑(Fᶜ), and ⊥ = ↑ℕ is the empty set.
powerSet : NeighborhoodSystem ℕ— cofinite sets (closed under finite∩).toSet x := {n ∣ {n}ᶜ ∈ x}andofSet S— the identification, packaged asequivSetNat : |𝒫| ≃o (Set ℕ, ⊆)(toSet/ofSetmutually inverse, order-iso).unionMap,interMap₂ : ApproximableMap₂ 𝒫 𝒫 𝒫—x ∪ y,x ∩ y(Exercise 2.19), withtoSet_unionMap/toSet_interMap₂proving the elementwise action is∪/∩onSet ℕ.succMap,predMap : ApproximableMap 𝒫 𝒫—x + 1,x − 1, withtoSet_succMap/toSet_predMap.
Choice-free (#print axioms ⊆ {propext, Quot.sound}); the
Set.Finite.induction_on in
mem_compl_of_finite is structural recursion on a finiteness proof, not
Classical.choice.
The neighbourhood system 𝒫 (cofinite sets). #
Exercise 2.20 — the powerset system 𝒫. Tokens ℕ; the neighbourhoods
are the cofinite
sets, closed under finite intersection ((X ∩ Y)ᶜ = Xᶜ ∪ Yᶜ).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Filters are determined on cofinite sets by their singleton-complements.
For cofinite Z,
Z ∈ x ↔ ∀ n ∈ Zᶜ, {n}ᶜ ∈ x (since Z = ⋂_{n ∈ Zᶜ} {n}ᶜ, a finite
intersection).