---
title: Properties of the Scott locale
author: Ayberk Tosun
date-started: 2023-11-23
dates-updated: [2024-03-16]
---
\begin{code}[hide]
{-# OPTIONS --safe --without-K --exact-split --lossy-unification #-}
open import MLTT.Spartan
open import Slice.Family
open import UF.FunExt
open import UF.Logic
open import UF.PropTrunc
open import UF.SubtypeClassifier
open import UF.Subsingletons
\end{code}
We assume the existence of propositional truncations as well as function
extensionality.
\begin{code}
module Locales.ScottLocale.Properties (pt : propositional-truncations-exist)
(fe : Fun-Ext)
(π€ : Universe) where
open import DomainTheory.BasesAndContinuity.Bases pt fe π€
open import DomainTheory.Basics.Dcpo pt fe π€
renaming (β¨_β© to β¨_β©β) hiding (is-directed)
open import DomainTheory.Basics.WayBelow pt fe π€
open import DomainTheory.Topology.ScottTopology pt fe π€
open import DomainTheory.Topology.ScottTopologyProperties pt fe π€
open import Locales.Compactness.Definition pt fe
hiding (is-compact)
open import Locales.Frame pt fe
open import Locales.ScottLocale.Definition pt fe π€
open import Locales.ScottLocale.ScottLocalesOfAlgebraicDcpos pt fe π€
open AllCombinators pt fe
open Locale
open PropositionalTruncation pt
\end{code}
Moved from the `ScottLocalesOfScottDomains` module to here on 2024-03-16.
\begin{code}
bounded-above : (π : DCPO {π€ βΊ} {π€}) β β¨ π β©β β β¨ π β©β β Ξ© (π€ βΊ)
bounded-above π x y = β₯ upper-bound (binary-family π€ x y) β₯Ξ©
where
open Joins (Ξ» a b β a ββ¨ π β©β b)
infix 30 bounded-above
syntax bounded-above π x y = x β[ π ] y
\end{code}
\begin{code}
module ScottLocaleProperties
(π : DCPO {π€ βΊ} {π€})
(hl : has-least (underlying-order π))
(hscb : has-specified-small-compact-basis π)
(pe : propext π€)
where
open ScottLocaleConstruction π hscb pe
private
B : π€ Μ
B = index-of-compact-basis π hscb
Ξ² : B β β¨ π β©β
Ξ² i = family-of-compact-elements π hscb i
open Properties π
open BottomLemma π π hl
β₯ΞΊ : is-compact π β₯α΄°
β₯ΞΊ = β₯-is-compact (π , hl)
Ξ£β¦
πβ¦ : Locale (π€ βΊ) π€ π€
Ξ£β¦
πβ¦ = ScottLocale
open DefnOfScottLocale π π€ pe using (_ββ_)
\end{code}
Recall that `βΛ’[ x , p ]` denotes the principal filter on a compact element `x`,
(where `p` is the proof that `x` is compact).
Below, we prove that `βΛ’[ β₯α΅ , p ] = π` where `π` is the top Scott open of the
Scott locale on `π`.
\begin{code}
ββ₯-is-below-π : (π[ πͺ Ξ£β¦
πβ¦ ] ββ βΛ’[ β₯α΄° , β₯ΞΊ ]) holds
ββ₯-is-below-π = bottom-principal-filter-is-top π[ πͺ Ξ£β¦
πβ¦ ]
ββ₯-is-top : βΛ’[ β₯α΄° , β₯ΞΊ ] οΌ π[ πͺ Ξ£β¦
πβ¦ ]
ββ₯-is-top = only-π-is-above-π (πͺ Ξ£β¦
πβ¦) βΛ’[ β₯α΄° , β₯ΞΊ ] β
where
β : (π[ πͺ Ξ£β¦
πβ¦ ] β€[ poset-of (πͺ Ξ£β¦
πβ¦) ] βΛ’[ β₯α΄° , β₯ΞΊ ]) holds
β = ββ-implies-ββ π[ πͺ Ξ£β¦
πβ¦ ] βΛ’[ β₯α΄° , β₯ΞΊ ] ββ₯-is-below-π
open DefnOfScottTopology π π€
contains-bottom-implies-is-π : (π : β¨ πͺ Ξ£β¦
πβ¦ β©)
β (β₯α΄° ββ π) holds
β π οΌ π[ πͺ Ξ£β¦
πβ¦ ]
contains-bottom-implies-is-π π ΞΌ = only-π-is-above-π (πͺ Ξ£β¦
πβ¦) π β
where
β : (π[ πͺ ScottLocale ] ββ π) holds
β = ββ-implies-ββ
π[ πͺ ScottLocale ]
π
(Ξ» { x β β contains-bottom-implies-is-top π ΞΌ x})
\end{code}
Moved from the `ScottLocalesOfScottDomains` module to here on 2024-03-16.
The principal filter `β(x)` on any `x : π` is a compact Scott open.
\begin{code}
principal-filter-is-compactβ : (c : β¨ π β©β)
β (ΞΊ : is-compact π c)
β is-compact-open Ξ£β¦
πβ¦ βΛ’[ (c , ΞΊ) ] holds
principal-filter-is-compactβ c ΞΊ S Ξ΄ p = β₯β₯-functor β ΞΌ
where
ΞΌ : (c ββ (β[ πͺ Ξ£β¦
πβ¦ ] S)) holds
ΞΌ = ββ-implies-ββ βΛ’[ (c , ΞΊ) ] (β[ πͺ Ξ£β¦
πβ¦ ] S) p c (reflexivity π c)
β : Ξ£ i κ index S , (c ββ (S [ i ])) holds
β Ξ£ i κ index S , (βΛ’[ (c , ΞΊ) ] β€[ poset-of (πͺ Ξ£β¦
πβ¦) ] S [ i ]) holds
β (i , r) = i , β‘
where
β‘ : (βΛ’[ c , ΞΊ ] β€[ poset-of (πͺ Ξ£β¦
πβ¦) ] (S [ i ])) holds
β‘ d = upward-closure (S [ i ]) c (Ξ² d) r
\end{code}
Moved from the `ScottLocalesOfScottDomains` module to here on 2024-03-16.
The Scott locale is always compact.
\begin{code}
β€-is-compact : is-compact-open Ξ£β¦
πβ¦ π[ πͺ Ξ£β¦
πβ¦ ] holds
β€-is-compact = transport (Ξ» - β is-compact-open Ξ£β¦
πβ¦ - holds) ββ₯-is-top β
where
β : is-compact-open ScottLocale βΛ’[ β₯α΄° , β₯ΞΊ ] holds
β = principal-filter-is-compactβ β₯α΄° β₯ΞΊ
\end{code}
Moved from the `ScottLocalesOfScottDomains` module to here on 2024-03-16.
If two compact elements `c` and `d` do not have an upper bound, then the meet
of their principal filters is the empty Scott open.
\begin{code}
not-bounded-lemma : (c d : β¨ π β©β)
β (ΞΊαΆ : is-compact π c)
β (ΞΊα΅ : is-compact π d)
β Β¬ ((c β[ π ] d) holds)
β βΛ’[ c , ΞΊαΆ ] β§[ πͺ Ξ£β¦
πβ¦ ] βΛ’[ d , ΞΊα΅ ] οΌ π[ πͺ Ξ£β¦
πβ¦ ]
not-bounded-lemma c d ΞΊαΆ ΞΊα΅ Ξ½ =
only-π-is-below-π (πͺ Ξ£β¦
πβ¦) (βΛ’[ c , ΞΊαΆ ] β§[ πͺ Ξ£β¦
πβ¦ ] βΛ’[ d , ΞΊα΅ ]) β
where
β : ((βΛ’[ c , ΞΊαΆ ] β§[ πͺ Ξ£β¦
πβ¦ ] βΛ’[ d , ΞΊα΅ ]) ββ π[ πͺ Ξ£β¦
πβ¦ ]) holds
β i (pβ , pβ) = π-elim (Ξ½ β£ Ξ² i , (Ξ» { (inl β) β pβ ; (inr β) β pβ}) β£)
\end{code}