Ayberk Tosun, 11 September 2023
\begin{code}[hide]
{-# OPTIONS --safe --without-K #-}
open import UF.PropTrunc
open import UF.FunExt
open import MLTT.Spartan
open import UF.SubtypeClassifier
module Locales.CharacterisationOfContinuity (pt : propositional-truncations-exist)
(fe : Fun-Ext) where
open import Locales.Frame pt fe
open import UF.Logic
open import Slice.Family
open import Locales.Compactness.Definition pt fe
open import Locales.Spectrality.SpectralLocale pt fe
open import Locales.Spectrality.Properties pt fe
open PropositionalTruncation pt
open Existential pt
open Universal fe
open Implication fe
open Conjunction
open Locale
\end{code}
\begin{code}
continuity-condition : (Y : Locale π€ π₯ π¦) (X : Locale π€' π₯' π¦)
β (β¨ πͺ Y β© β β¨ πͺ X β©) β Ξ© (π€ β π₯ β π¦ βΊ β π€' β π₯')
continuity-condition Y X h =
β±― b κ β¨ πͺ X β© , β±― x κ β¨ πͺ Y β© , is-compact-open X b β
b β€[ poset-of (πͺ X) ] h x β
(Ζ a κ β¨ πͺ Y β© , (is-compact-open Y a β§ (a β€y x) β§ (b β€β h a)) holds)
where
open PosetNotation (poset-of (πͺ X)) renaming (_β€_ to _β€β_)
open PosetNotation (poset-of (πͺ Y)) renaming (_β€_ to _β€y_)
\end{code}
\begin{code}
characterisation-of-continuity : (Y : Locale π€ π₯ π¦)
β (X : Locale π€' π₯' π¦)
β is-spectral X holds
β (h : β¨ πͺ Y β© β β¨ πͺ X β©)
β is-monotonic (poset-of (πͺ Y)) (poset-of (πͺ X)) h holds
β continuity-condition Y X h holds
β is-scott-continuous (πͺ Y) (πͺ X) h holds
characterisation-of-continuity Y X Ο h ΞΌ ΞΆ S Ξ΄ = Ξ² , Ξ³
where
open PosetReasoning (poset-of (πͺ X))
open Joins (Ξ» x y β x β€[ poset-of (πͺ X) ] y)
Ξ² : (h (β[ (πͺ Y) ] S) is-an-upper-bound-of β
h s β£ s Ξ΅ S β) holds
Ξ² i = ΞΌ (S [ i ] , β[ (πͺ Y) ] S) (β[ (πͺ Y) ]-upper S i)
Ξ³ : (β±― (u , _) κ upper-bound β
h s β£ s Ξ΅ S β ,
h (β[ (πͺ Y) ] S) β€[ poset-of (πͺ X) ] u) holds
Ξ³ (u , Ο) = spectral-yoneda X Ο (h (β[ πͺ Y ] S)) u β
where
β : ((K , _) : π¦ X)
β (K β€[ poset-of (πͺ X) ] h (β[ πͺ Y ] S) β K β€[ poset-of (πͺ X) ] u) holds
β (K , ΞΊ) p = β₯β₯-rec
(holds-is-prop (K β€[ poset-of (πͺ X) ] u))
β‘
(ΞΆ K (β[ (πͺ Y) ] S) ΞΊ p)
where
β‘ : _ β (K β€[ poset-of (πͺ X) ] u) holds
β‘ (a , ΞΊβ , q , r) =
K β€β¨ r β©
h a β€β¨ β β©
β[ (πͺ X) ] β
h s β£ s Ξ΅ S β β€β¨ β[ (πͺ X) ]-least β
h s β£ s Ξ΅ S β (u , Ο) β©
u β
where
β£ : (Ξ£ i κ index S , (a β€[ poset-of (πͺ Y) ] (S [ i ])) holds)
β (h a β€[ poset-of (πͺ X) ] (β[ (πͺ X) ] β
h s β£ s Ξ΅ S β)) holds
β£ (i , Ο) = h a β€β¨ ΞΌ (a , S [ i ]) Ο β©
h (S [ i ]) β€β¨ β[ (πͺ X) ]-upper β
h s β£ s Ξ΅ S β i β©
β[ (πͺ X) ] β
h s β£ s Ξ΅ S β β
β : (h a β€[ poset-of (πͺ X) ] (β[ (πͺ X) ] β
h s β£ s Ξ΅ S β)) holds
β = β₯β₯-rec
(holds-is-prop (h a β€[ poset-of (πͺ X) ] (β[ (πͺ X) ] β
h s β£ s Ξ΅ S β)))
β£
(ΞΊβ S Ξ΄ q)
\end{code}