--- title: The notion of spectral point author: Ayberk Tosun date-started: 2024-05-27 --- A _spectral point_ of a locale `X` is a continuous map `p : 𝟏 → X` whose right adjoint `p^* : 𝒪(X) → 𝒪(𝟏)` preserves compact opens. In this module, we give the definition of this notion. We define it using records for the sake of convenience, and prove that the record-based definition is equivalent to the standard definition. \begin{code}[hide] {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan open import UF.FunExt open import UF.PropTrunc open import UF.Subsingletons module Locales.Point.SpectralPoint-Definition (pt : propositional-truncations-exist) (fe : Fun-Ext) (pe : Prop-Ext) where open import Locales.Compactness.Definition pt fe open import Locales.ContinuousMap.Definition pt fe open import Locales.ContinuousMap.FrameHomomorphism-Definition pt fe open import Locales.Frame pt fe open import Locales.InitialFrame pt fe open import Locales.Spectrality.SpectralMap pt fe open import UF.Equiv open import UF.SubtypeClassifier open Locale \end{code} We work in a module parameterized by a large and locally small locale `X`. \begin{code} module Notion-Of-Spectral-Point (X : Locale (𝓤 ⁺) 𝓤 𝓤) where open ContinuousMaps X (𝟏Loc pe) open FrameHomomorphisms (𝒪 X) (𝟎-𝔽𝕣𝕞 pe) \end{code} A _spectral point_ of locale `X` is a frame homomorphism `𝒪(X) → Ω` preserving compact opens. In other words, it is a spectral map `𝟏 → X`. In the following definition, we call the underlying function of this frame homomorphism `point-fn. \begin{code} record Spectral-Point : 𝓤 ⁺ ̇ where field point-fn : ⟨ 𝒪 X ⟩ → Ω 𝓤 point-preserves-top : preserves-top point-fn holds point-preserves-binary-meets : preserves-binary-meets point-fn holds point-preserves-joins : preserves-joins point-fn holds point-preserves-compactness : (K : ⟨ 𝒪 X ⟩) → is-compact-open X K holds → is-compact-open (𝟏Loc pe) (point-fn K) holds point-is-a-frame-homomorphism : is-a-frame-homomorphism point-fn holds point-is-a-frame-homomorphism = point-preserves-top , point-preserves-binary-meets , point-preserves-joins point : _─f→_ point = point-fn , point-is-a-frame-homomorphism \end{code} This record-based definition is of course just a more verbose way of writing “spectral map into the initial frame”. We call this alternative definition `Spectral-Point₀` and prove its equivalence to the type `Spectral-Point`. \begin{code} Spectral-Point₀ : 𝓤 ⁺ ̇ Spectral-Point₀ = Spectral-Map (𝟏Loc pe) X to-spectral-point₀ : Spectral-Point → Spectral-Point₀ to-spectral-point₀ sp = (point-fn , †) , point-preserves-compactness where open Spectral-Point sp † : is-a-frame-homomorphism point-fn holds † = point-is-a-frame-homomorphism to-spectral-point : Spectral-Map (𝟏Loc pe) X → Spectral-Point to-spectral-point ((F , α , β , γ) , σ) = record { point-fn = F ; point-preserves-top = α ; point-preserves-binary-meets = β ; point-preserves-joins = γ ; point-preserves-compactness = σ } \end{code} The equivalence proof. \begin{code} spectral-point-equivalent-to-spectral-map-into-Ω : Spectral-Point₀ ≃ Spectral-Point spectral-point-equivalent-to-spectral-map-into-Ω = to-spectral-point , qinvs-are-equivs to-spectral-point † where † : qinv to-spectral-point † = to-spectral-point₀ , (λ _ → refl) , (λ _ → refl) \end{code} To show that two spectral points are equal, it suffices to show that their underlying functions are equal. We call this lemma `to-spectral-point-=`. \begin{code} open Spectral-Point to-spectral-point-= : (ℱ 𝒢 : Spectral-Point) → point-fn ℱ = point-fn 𝒢 → ℱ = 𝒢 to-spectral-point-= ℱ 𝒢 p = ℱ =⟨ Ⅰ ⟩ to-spectral-point (to-spectral-point₀ ℱ) =⟨ Ⅱ ⟩ to-spectral-point (to-spectral-point₀ 𝒢) =⟨ Ⅲ ⟩ 𝒢 ∎ where e = spectral-point-equivalent-to-spectral-map-into-Ω † : to-spectral-point₀ ℱ = to-spectral-point₀ 𝒢 † = to-subtype-= (holds-is-prop ∘ is-spectral-map X (𝟏Loc pe)) (to-subtype-= (holds-is-prop ∘ is-a-frame-homomorphism) p) Ⅰ = inverses-are-sections' e ℱ Ⅱ = ap to-spectral-point † Ⅲ = inverses-are-sections' e 𝒢 ⁻¹ \end{code} Added on 2024-08-12. \begin{code} to-spectral-point-=' : (ℱ 𝒢 : Spectral-Point) → point ℱ = point 𝒢 → ℱ = 𝒢 to-spectral-point-=' ℱ 𝒢 p = ℱ =⟨ Ⅰ ⟩ to-spectral-point (to-spectral-point₀ ℱ) =⟨ Ⅱ ⟩ to-spectral-point (to-spectral-point₀ 𝒢) =⟨ Ⅲ ⟩ 𝒢 ∎ where e = spectral-point-equivalent-to-spectral-map-into-Ω † : to-spectral-point₀ ℱ = to-spectral-point₀ 𝒢 † = to-subtype-= (holds-is-prop ∘ is-spectral-map X (𝟏Loc pe)) p Ⅰ = inverses-are-sections' e ℱ Ⅱ = ap to-spectral-point † Ⅲ = inverses-are-sections' e 𝒢 ⁻¹ \end{code}