Ayberk Tosun, 19 August 2023 The module contains the definition of a spectral locale. This used to live in the `CompactRegular` module which is now deprecated and will be broken down into smaller modules. \begin{code}[hide] {-# OPTIONS --safe --without-K --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 module Locales.Spectrality.SpectralLocale (pt : propositional-truncations-exist) (fe : Fun-Ext) where open import Locales.Frame pt fe open import Locales.Compactness.Definition pt fe open PropositionalTruncation pt open AllCombinators pt fe open Locale \end{code} The following predicate expresses what it means for a locale's compact opens to be closed under binary meets. \begin{code} compacts-of-[_]-are-closed-under-binary-meets : Locale ๐ค ๐ฅ ๐ฆ โ ฮฉ (๐ค โ ๐ฅ โ ๐ฆ โบ) compacts-of-[ X ]-are-closed-under-binary-meets = let _โงโ_ = meet-of (๐ช X) in โฑฏ Kโ ๊ โจ ๐ช X โฉ , โฑฏ Kโ ๊ โจ ๐ช X โฉ , is-compact-open X Kโ โ is-compact-open X Kโ โ is-compact-open X (Kโ โงโ Kโ) \end{code} Now we express closure under finite meets, which amounts to closure under binary meets combined with the empty meet (i.e. the top element) being compact. \begin{code} compacts-of-[_]-are-closed-under-finite-meets : Locale ๐ค ๐ฅ ๐ฆ โ ฮฉ (๐ค โ ๐ฅ โ ๐ฆ โบ) compacts-of-[ X ]-are-closed-under-finite-meets = is-compact X โง compacts-of-[ X ]-are-closed-under-binary-meets \end{code} The following predicate expresses the property of a given family to consist of compact opens i.e. all the opens it gives being compact opens. \begin{code} consists-of-compact-opens : (X : Locale ๐ค ๐ฅ ๐ฆ) โ Fam ๐ฆ โจ ๐ช X โฉ โ ฮฉ (๐ค โ ๐ฅ โ ๐ฆ โบ) consists-of-compact-opens X S = โฑฏ i ๊ index S , is-compact-open X (S [ i ]) \end{code} We are now ready to define the notion of a spectral locale: \begin{code} has-a-directed-cover-of-compact-opens : (X : Locale ๐ค ๐ฅ ๐ฆ) (U : โจ ๐ช X โฉ) โ ฮฉ (๐ค โ ๐ฅ โ ๐ฆ โบ) has-a-directed-cover-of-compact-opens {_} {_} {๐ฆ} X U = ฦ S ๊ Fam ๐ฆ โจ ๐ช X โฉ , consists-of-compact-opens X S holds ร is-directed (๐ช X) S holds ร (U ๏ผ โ[ ๐ช X ] S) is-spectral : Locale ๐ค ๐ฅ ๐ฆ โ ฮฉ (๐ค โ ๐ฅ โ ๐ฆ โบ) is-spectral {_} {_} {๐ฆ} X = โฆ ๐โฆ โง โฆ ๐โฆ where โฆ ๐โฆ = compacts-of-[ X ]-are-closed-under-finite-meets โฆ ๐โฆ = โฑฏ U ๊ โจ ๐ช X โฉ , has-a-directed-cover-of-compact-opens X U \end{code} Spectral locales are compact: \begin{code} spectral-locales-are-compact : (X : Locale ๐ค ๐ฅ ๐ฆ) โ (is-spectral X โ is-compact X) holds spectral-locales-are-compact X ((ฮบ , _) , _) = ฮบ \end{code} We define a couple of projections of the components of being a spectral locale. We denote by `binary-coherence` the fact that that the compact opens are closed under binary meets. \begin{code} binary-coherence : (X : Locale ๐ค ๐ฅ ๐ฆ) (ฯ : is-spectral X holds) (Kโ Kโ : โจ ๐ช X โฉ) โ (is-compact-open X Kโ โ is-compact-open X Kโ โ is-compact-open X (Kโ โง[ ๐ช X ] Kโ)) holds binary-coherence X ฯ = prโ (prโ ฯ) \end{code} The fact that the top open is compact is denoted `spectral-implies-compact`. \begin{code} spectral-implies-compact : (X : Locale ๐ค ๐ฅ ๐ฆ) (ฯ : is-spectral X holds) โ is-compact-open X ๐[ ๐ช X ] holds spectral-implies-compact X ฯ = prโ (prโ ฯ) \end{code} Addition on 2024-02-24. \begin{code} module OperationsOnCompactOpens (X : Locale ๐ค ๐ฅ ๐ฆ) (ฯ : is-spectral X holds) where _โงโ_ : ๐ฆ X โ ๐ฆ X โ ๐ฆ X _โงโ_ (Kโ , ฮบโ) (Kโ , ฮบโ) = (Kโ โง[ ๐ช X ] Kโ) , binary-coherence X ฯ Kโ Kโ ฮบโ ฮบโ _โจโ_ : ๐ฆ X โ ๐ฆ X โ ๐ฆ X (Kโ , ฮบโ) โจโ (Kโ , ฮบโ) = (Kโ โจ[ ๐ช X ] Kโ) , compact-opens-are-closed-under-โจ X Kโ Kโ ฮบโ ฮบโ \end{code} Added on 2024-04-29. Inclusion of the compact opens of `X`. \begin{code} ฮนโ : ๐ฆ X โ โจ ๐ช X โฉ ฮนโ (K , _) = K \end{code}