Ayberk Tosun, 13 September 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 hiding (π)
open import MLTT.List hiding ([_])
open import UF.PropTrunc
open import UF.FunExt
open import UF.Subsingletons
open import UF.SubtypeClassifier
open import UF.Size
open import UF.EquivalenceExamples
module Locales.Spectrality.SpectralityOfOmega
(pt : propositional-truncations-exist)
(fe : Fun-Ext)
(sr : Set-Replacement pt)
(π€ : Universe)
(pe : propext π€) where
open import Locales.InitialFrame pt fe
open import Locales.Frame pt fe
open import Locales.Compactness.Definition pt fe
open import Slice.Family
open import Locales.Spectrality.SpectralLocale pt fe
open import Locales.Spectrality.BasisDirectification pt fe sr
open import Locales.SmallBasis pt fe sr
open import UF.Logic
open AllCombinators pt fe
open PropositionalTruncation pt
open Spectrality-of-π π€ pe
bottom-of-πFrm-is-β₯ : β₯ οΌ π[ π-π½π£π pe ]
bottom-of-πFrm-is-β₯ = only-π-is-below-π (π-π½π£π pe) β₯ (Ξ» ())
Ξ©-frm : Frame (π€ βΊ) π€ π€
Ξ©-frm = π-π½π£π pe
π-loc : Locale (π€ βΊ) π€ π€
π-loc = record { β¨_β©β = β¨ Ξ©-frm β© ; frame-str-of = prβ Ξ©-frm }
πFrm-is-compact : is-compact π-loc holds
πFrm-is-compact S (β£iβ£ , u) p = β₯β₯-rec β-is-prop β (p β)
where
β : (Ξ£ j κ index S , ((S [ j ]) holds))
β β j κ index S , (π[ π-π½π£π pe ] β€[ poset-of (π-π½π£π pe) ] S [ j ]) holds
β (j , q) = β£ j , (Ξ» _ β q) β£
β¬π-consists-of-compact-opens : consists-of-compact-opens π-loc β¬π holds
β¬π-consists-of-compact-opens (inl β) =
transport
(Ξ» - β is-compact-open π-loc - holds)
(bottom-of-πFrm-is-β₯ β»ΒΉ)
(π-is-compact π-loc)
β¬π-consists-of-compact-opens (inr β) = πFrm-is-compact
β¬πβ-consists-of-compact-opens : consists-of-compact-opens π-loc β¬πβ holds
β¬πβ-consists-of-compact-opens [] = π-is-compact π-loc
β¬πβ-consists-of-compact-opens (i β· is) =
compact-opens-are-closed-under-β¨ π-loc (β¬π [ i ]) (β¬πβ [ is ]) ΞΊ IH
where
ΞΊ : is-compact-open π-loc (β¬π [ i ]) holds
ΞΊ = β¬π-consists-of-compact-opens i
IH : is-compact-open π-loc (β¬πβ [ is ]) holds
IH = β¬πβ-consists-of-compact-opens is
andβ-lemmaβ : (x y : π π€) β (β¬π [ andβ x y ] β€[ poset-of (π-π½π£π pe) ] β¬π [ x ]) holds
andβ-lemmaβ (inl β) y = Ξ» ()
andβ-lemmaβ (inr β) (inl β) = Ξ» ()
andβ-lemmaβ (inr β) (inr β) = Ξ» { β β β }
andβ-lemmaβ : (x y : π π€) β (β¬π [ andβ x y ] β€[ poset-of (π-π½π£π pe) ] β¬π [ y ]) holds
andβ-lemmaβ (inl β) y = Ξ» ()
andβ-lemmaβ (inr β) (inl β) = Ξ» ()
andβ-lemmaβ (inr β) (inr β) = Ξ» { β β β }
open Meets (Ξ» x y β x β€[ poset-of (π-π½π£π pe) ] y) hiding (is-top)
andβ-lemmaβ : (x y : π π€) ((z , _) : lower-bound (β¬π [ x ] , β¬π [ y ]))
β (z β€[ poset-of (π-π½π£π pe) ] β¬π [ andβ x y ]) holds
andβ-lemmaβ (inl β) y (z , pβ , pβ) = pβ
andβ-lemmaβ (inr β) y (z , pβ , pβ) = pβ
β¬π-is-closed-under-binary-meets : closed-under-binary-meets (π-π½π£π pe) β¬π holds
β¬π-is-closed-under-binary-meets i j = β£ andβ i j , (β β , β β) , andβ-lemmaβ i j β£
where
β β : (β¬π [ andβ i j ] β€[ poset-of (π-π½π£π pe) ] β¬π [ i ]) holds
β β = andβ-lemmaβ i j
β β : (β¬π [ andβ i j ] β€[ poset-of (π-π½π£π pe) ] β¬π [ j ]) holds
β β = andβ-lemmaβ i j
β¬πβ-directed-basisα΄° : directed-basisα΄° (π-π½π£π pe)
β¬πβ-directed-basisα΄° = β¬πβ , Ξ²β
where
Ξ²β : directed-basis-forα΄° (π-π½π£π pe) β¬πβ
Ξ²β U = prβ (prβ β¬π-is-directed-basis-for-π U)
, (prβ (prβ β¬π-is-directed-basis-for-π U)
, prβ β¬π-is-directed-basis-for-π U)
\end{code}
The result below was cleaned up and refactored on 2024-08-05.
\begin{code}
π-π½π£π-spectralα΄° : spectralα΄° π-loc
π-π½π£π-spectralα΄° =
prβ Ξ£-assoc (β¬πβ-directed-basisα΄° , β¬πβ-consists-of-compact-opens , Ξ³)
where
t : is-top (π-π½π£π pe) (π[ π-π½π£π pe ] β¨[ π-π½π£π pe ] π[ π-π½π£π pe ]) holds
t = transport
(Ξ» - β is-top (π-π½π£π pe) - holds)
(π-left-unit-of-β¨ (π-π½π£π pe) π[ π-π½π£π pe ] β»ΒΉ)
(π-is-top (π-π½π£π pe))
c : closed-under-binary-meets (π-π½π£π pe) β¬πβ holds
c = directify-preserves-closure-under-β§
(π-π½π£π pe)
β¬π
β¬π-is-basis-for-π
β¬π-is-closed-under-binary-meets
Ξ³ : closed-under-finite-meets (π-π½π£π pe) β¬πβ holds
Ξ³ = β£ (inr β β· []) , t β£ , c
\end{code}
\begin{code}
π-π½π£π-is-spectral : is-spectral π-loc holds
π-π½π£π-is-spectral = spectralα΄°-gives-spectrality π-loc π-π½π£π-spectralα΄°
\end{code}