Ayberk Tosun, 13 September 2023
\begin{code}
{-# 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.Size
module Locales.Regular (pt : propositional-truncations-exist)
(fe : Fun-Ext)
(sr : Set-Replacement pt) where
\end{code}
Importation of foundational UF stuff.
\begin{code}
open import Slice.Family
open import UF.SubtypeClassifier
open import UF.Logic
open AllCombinators pt fe
open PropositionalTruncation pt
\end{code}
Importations of other locale theory modules.
\begin{code}
open import Locales.Clopen pt fe sr
open import Locales.Compactness.Definition pt fe
open import Locales.Frame pt fe
open import Locales.GaloisConnection pt fe
open import Locales.WayBelowRelation.Definition pt fe
open import Locales.WellInside pt fe sr
open Locale
\end{code}
Definition of regularity of a frame.
\begin{code}
is-regularβ : (F : Frame π€ π₯ π¦) β (π€ β π₯ β π¦ βΊ) Μ
is-regularβ {π€ = π€} {π₯} {π¦} F =
let
open Joins (Ξ» U V β U β€[ poset-of F ] V)
P : Fam π¦ β¨ F β© β π€ β π₯ β π¦ βΊ Μ
P β¬ = Ξ U κ β¨ F β© ,
Ξ£ J κ Fam π¦ (index β¬) ,
(U is-lub-of β
β¬ [ j ] β£ j Ξ΅ J β) holds
Γ (Ξ i κ index J , (β¬ [ J [ i ] ] β[ F ] U) holds)
in
Ξ£ β¬ κ Fam π¦ β¨ F β© , P β¬
\end{code}
\begin{code}
is-regular : (F : Frame π€ π₯ π¦) β Ξ© (π€ β π₯ β π¦ βΊ)
is-regular {π€ = π€} {π₯} {π¦} F = β₯ is-regularβ F β₯Ξ©
\end{code}
\begin{code}
is-regular-basis : (F : Frame π€ π₯ π¦)
β (β¬ : Fam π¦ β¨ F β©) β (Ξ² : is-basis-for F β¬) β Ξ© (π€ β π¦)
is-regular-basis F β¬ Ξ² =
β±― U κ β¨ F β© , let π₯ = prβ (Ξ² U) in β±― j κ (index π₯) , β¬ [ π₯ [ j ] ] β[ F ] U
\end{code}
\begin{code}
π-is-well-inside-anything : (F : Frame π€ π₯ π¦) (U : β¨ F β©)
β (π[ F ] β[ F ] U) holds
π-is-well-inside-anything F U =
ββ-is-upwards-closed F β£ π-is-clopen F β£ (π-is-bottom F U)
well-inside-is-join-stable : (F : Frame π€ π₯ π¦) {Uβ Uβ V : β¨ F β©}
β (Uβ β[ F ] V) holds
β (Uβ β[ F ] V) holds
β ((Uβ β¨[ F ] Uβ) β[ F ] V) holds
well-inside-is-join-stable F {Uβ} {Uβ} {V} =
β₯β₯-recβ (holds-is-prop ((Uβ β¨[ F ] Uβ) β[ F ] V)) Ξ³
where
open PosetReasoning (poset-of F)
Ξ³ : Uβ ββ[ F ] V β Uβ ββ[ F ] V β ((Uβ β¨[ F ] Uβ) β[ F ] V) holds
Ξ³ (Wβ , cβ , dβ) (Wβ , cβ , dβ) = β£ (Wβ β§[ F ] Wβ) , c , d β£
where
Ξ΄ : (Wβ β§[ F ] Wβ) β§[ F ] Uβ οΌ π[ F ]
Ξ΄ = (Wβ β§[ F ] Wβ) β§[ F ] Uβ οΌβ¨ (β§[ F ]-is-associative Wβ Wβ Uβ) β»ΒΉ β©
Wβ β§[ F ] (Wβ β§[ F ] Uβ) οΌβ¨ β β©
Wβ β§[ F ] (Uβ β§[ F ] Wβ) οΌβ¨ ap (Ξ» - β meet-of F Wβ -) cβ β©
Wβ β§[ F ] π[ F ] οΌβ¨ π-right-annihilator-for-β§ F Wβ β©
π[ F ] β
where
β = ap (Ξ» - β Wβ β§[ F ] -) (β§[ F ]-is-commutative Wβ Uβ)
Ξ΅ : ((Wβ β§[ F ] Wβ) β§[ F ] Uβ) οΌ π[ F ]
Ξ΅ = (Wβ β§[ F ] Wβ) β§[ F ] Uβ οΌβ¨ β β©
(Wβ β§[ F ] Wβ) β§[ F ] Uβ οΌβ¨ (β§[ F ]-is-associative Wβ Wβ Uβ) β»ΒΉ β©
Wβ β§[ F ] (Wβ β§[ F ] Uβ) οΌβ¨ β‘ β©
Wβ β§[ F ] (Uβ β§[ F ] Wβ) οΌβ¨ ap (Ξ» - β Wβ β§[ F ] -) cβ β©
Wβ β§[ F ] π[ F ] οΌβ¨ π-right-annihilator-for-β§ F Wβ β©
π[ F ] β
where
β = ap (Ξ» - β - β§[ F ] Uβ) (β§[ F ]-is-commutative Wβ Wβ)
β‘ = ap (Ξ» - β Wβ β§[ F ] -) (β§[ F ]-is-commutative Wβ Uβ)
c : ((Uβ β¨[ F ] Uβ) β§[ F ] (Wβ β§[ F ] Wβ)) οΌ π[ F ]
c = (Uβ β¨[ F ] Uβ) β§[ F ] (Wβ β§[ F ] Wβ) οΌβ¨ i β©
(Wβ β§[ F ] Wβ) β§[ F ] (Uβ β¨[ F ] Uβ) οΌβ¨ ii β©
((Wβ β§[ F ] Wβ) β§[ F ] Uβ) β¨[ F ] ((Wβ β§[ F ] Wβ) β§[ F ] Uβ) οΌβ¨ iii β©
((Wβ β§[ F ] Wβ) β§[ F ] Uβ) β¨[ F ] π[ F ] οΌβ¨ iv β©
(Wβ β§[ F ] Wβ) β§[ F ] Uβ οΌβ¨ Ξ΅ β©
π[ F ] β
where
i = β§[ F ]-is-commutative (Uβ β¨[ F ] Uβ) (Wβ β§[ F ] Wβ)
ii = binary-distributivity F (Wβ β§[ F ] Wβ) Uβ Uβ
iii = ap (Ξ» - β ((Wβ β§[ F ] Wβ) β§[ F ] Uβ) β¨[ F ] -) Ξ΄
iv = π-left-unit-of-β¨ F ((Wβ β§[ F ] Wβ) β§[ F ] Uβ)
d : V β¨[ F ] (Wβ β§[ F ] Wβ) οΌ π[ F ]
d = V β¨[ F ] (Wβ β§[ F ] Wβ) οΌβ¨ i β©
(V β¨[ F ] Wβ) β§[ F ] (V β¨[ F ] Wβ) οΌβ¨ ii β©
π[ F ] β§[ F ] (V β¨[ F ] Wβ) οΌβ¨ iii β©
π[ F ] β§[ F ] π[ F ] οΌβ¨ iv β©
π[ F ] β
where
i = binary-distributivity-op F V Wβ Wβ
ii = ap (Ξ» - β - β§[ F ] (V β¨[ F ] Wβ)) dβ
iii = ap (Ξ» - β π[ F ] β§[ F ] -) dβ
iv = π-right-unit-of-β§ F π[ F ]
directification-preserves-regularity : (F : Frame π€ π₯ π¦)
β (β¬ : Fam π¦ β¨ F β©)
β (Ξ² : is-basis-for F β¬)
β is-regular-basis F β¬ Ξ² holds
β let
β¬β = directify F β¬
Ξ²β = directified-basis-is-basis F β¬ Ξ²
in
is-regular-basis F β¬β Ξ²β holds
directification-preserves-regularity F β¬ Ξ² r U = Ξ³
where
β¬β = directify F β¬
Ξ²β = directified-basis-is-basis F β¬ Ξ²
π₯ = prβ (Ξ² U)
π₯β = prβ (Ξ²β U)
Ξ³ : (β±― js κ index π₯β , β¬β [ π₯β [ js ] ] β[ F ] U) holds
Ξ³ [] = π-is-well-inside-anything F U
Ξ³ (j β· js) = well-inside-is-join-stable F (r U j) (Ξ³ js)
βͺ-implies-β-in-regular-frames : (F : Frame π€ π₯ π¦)
β (is-regular F) holds
β (U V : β¨ F β©)
β (U βͺ[ F ] V β U β[ F ] V) holds
βͺ-implies-β-in-regular-frames {π¦ = π¦} F r U V =
β₯β₯-rec (holds-is-prop (U βͺ[ F ] V β U β[ F ] V)) Ξ³ r
where
Ξ³ : is-regularβ F β (U βͺ[ F ] V β U β[ F ] V) holds
Ξ³ (β¬ , Ξ΄) ΞΊ = β₯β₯-rec (holds-is-prop (U β[ F ] V)) ΞΆ (ΞΊ S Ξ΅ c)
where
β¬β : Fam π¦ β¨ F β©
β¬β = directify F β¬
Ξ² : is-basis-for F β¬
Ξ² U = prβ (Ξ΄ U) , prβ (prβ (Ξ΄ U))
Ξ²β : is-basis-for F β¬β
Ξ²β = directified-basis-is-basis F β¬ Ξ²
Ο : is-regular-basis F β¬ Ξ² holds
Ο U = prβ (prβ (Ξ΄ U))
Οβ : is-regular-basis F β¬β Ξ²β holds
Οβ = directification-preserves-regularity F β¬ Ξ² Ο
π₯ : Fam π¦ (index β¬β)
π₯ = prβ (Ξ²β V)
S : Fam π¦ β¨ F β©
S = β
β¬β [ i ] β£ i Ξ΅ π₯ β
Ξ΅ : is-directed F S holds
Ξ΅ = covers-of-directified-basis-are-directed F β¬ Ξ² V
c : (V β€[ poset-of F ] (β[ F ] S)) holds
c = reflexivity+ (poset-of F) (β[ F ]-unique S V (prβ (Ξ²β V)))
ΞΆ : Ξ£ k κ index S , (U β€[ poset-of F ] (S [ k ])) holds β (U β[ F ] V) holds
ΞΆ (k , q) = ββ-is-downwards-closed F (Οβ V k) q
\end{code}
\begin{code}
compacts-are-clopen-in-regular-frames : (X : Locale π€ π₯ π¦)
β is-regular (πͺ X) holds
β (β±― U κ β¨ πͺ X β© ,
is-compact-open X U β is-clopen (πͺ X) U) holds
compacts-are-clopen-in-regular-frames X r U =
well-inside-itself-implies-clopen X U β βͺ-implies-β-in-regular-frames (πͺ X) r U U
\end{code}