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}