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.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}