--- 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}