--- title: Some properties of the SierpiΕski locale author: Ayberk Tosun date-completed: 2024-02-12 --- \begin{code} {-# OPTIONS --safe --without-K --lossy-unification #-} open import UF.FunExt open import UF.Logic open import MLTT.Spartan hiding (π; β; β) open import UF.PropTrunc open import UF.Subsingletons open import UF.Size module Locales.Sierpinski.Properties (π€ : Universe) (pe : Prop-Ext) (pt : propositional-truncations-exist) (fe : Fun-Ext) (sr : Set-Replacement pt) where open import DomainTheory.Basics.Dcpo pt fe π€ renaming (β¨_β© to β¨_β©β) open import DomainTheory.Basics.Pointed pt fe π€ renaming (β₯ to β₯β) open import DomainTheory.Topology.ScottTopology pt fe π€ open import Lifting.Construction π€ open import Locales.Frame pt fe hiding (is-directed) open import Locales.InitialFrame pt fe open import Locales.ScottLocale.Definition pt fe π€ open import Locales.ScottLocale.Properties pt fe π€ open import Locales.ScottLocale.ScottLocalesOfAlgebraicDcpos pt fe π€ open import Locales.Sierpinski.Definition π€ pe pt fe sr open import Locales.SmallBasis pt fe sr open import Locales.Spectrality.SpectralLocale pt fe open import MLTT.List hiding ([_]) open import Slice.Family open import UF.Subsingletons-FunExt open import UF.SubtypeClassifier open AllCombinators pt fe open Locale open PropositionalTruncation pt \end{code} We show that `ππ` is a Scott domain. We have already shown that it is an algebraic lattice, so it remains to show that it is bounded complete. \begin{code} open import DomainTheory.BasesAndContinuity.ScottDomain pt fe π€ open DefinitionOfBoundedCompleteness ββ-implies-β : (x y : β¨ ππ β©β) β x ββ¨ ππ β© y β (to-Ξ© x β€[ poset-of (π-π½π£π pe) ] to-Ξ© y) holds ββ-implies-β _ _ (g , q) p = g p β-implies-ββ : (x y : β¨ ππ β©β) β (to-Ξ© x β€[ poset-of (π-π½π£π pe) ] to-Ξ© y) holds β x ββ¨ ππ β© y β-implies-ββ (P , f , h) (Pβ² , fβ² , hβ²) p = p , (Ξ» _ β π-is-prop β β) ππ-bounded-complete : bounded-complete ππ holds ππ-bounded-complete S _ = sup , Ο where Sβ : Fam π€ (Ξ© π€) Sβ = β to-Ξ© P β£ P Ξ΅ S β supβ : Ξ© π€ supβ = β[ (π-π½π£π pe) ] Sβ sup : β¨ ππ β©β sup = supβ holds , (Ξ» _ β β) , β-is-prop Ο : is-upperbound (underlying-order ππ) sup (S [_]) Ο i = β , β‘ where β : is-defined (S [ i ]) β is-defined sup β p = β£ i , p β£ β‘ : value (S [ i ]) βΌ (Ξ» xβ β value sup (β xβ)) β‘ _ = π-is-prop β β Ο : is-lowerbound-of-upperbounds (underlying-order ππ) sup (S [_]) Ο (P , f , h) q = β-implies-ββ sup (P , f , h) (β[ π-π½π£π pe ]-least Sβ ((P , h) , (Ξ» i β prβ (q i)))) Ο : is-sup (underlying-order ππ) sup (S [_]) Ο = Ο , Ο \end{code} Finally, we show that `ππ` trivially satisfies the decidability condition that we assume in the proof that Scott locales of Scott domains are spectral. \begin{code} open import Locales.ScottLocale.ScottLocalesOfScottDomains pt fe sr π€ ππ-satisfies-dc : decidability-condition ππ ππ-satisfies-dc π«β@(Pβ , hβ , fβ) π«β@(Pβ , hβ , fβ) ΞΊc ΞΊd = inl β£ up , β‘ β£ where up : β¨ ππ β©β up = to-ππ (to-Ξ© π«β β¨[ π-π½π£π pe ] to-Ξ© π«β) open Joins {A = β¨ ππ β©β} (Ξ» x y β (x ββ¨ ππ β© y) , prop-valuedness ππ x y) β‘ : (up is-an-upper-bound-of (binary-family π€ π«β π«β)) holds β‘ (inl β) = (Ξ» p β β£ inl β , p β£) , Ξ» _ β π-is-prop β β β‘ (inr β) = (Ξ» p β β£ inr β , p β£) , Ξ» _ β π-is-prop β β \end{code} From all these, we obtain the fact that `π` is a spectral locale, which we call `π-is-spectral` below. \begin{code} ππ-has-least : has-least (underlying-order ππ) ππ-has-least = (β₯β ππβ₯) , β₯-is-least ππβ₯ open ScottLocaleConstruction ππ hscb pe open SpectralScottLocaleConstruction ππ ππ-has-least hscb ππ-satisfies-dc ππ-bounded-complete pe open ScottLocaleProperties ππ ππ-has-least hscb pe open DefnOfScottLocale ππ π€ pe using (πͺβ-equality; _ββ_) β¬π : Fam π€ β¨ πͺ π β© β¬π = List (π π€) , πΈ principal-filter-on-β-is-truth : βα΅[ β ] οΌ truth principal-filter-on-β-is-truth = β€-is-antisymmetric (poset-of (πͺ π)) β β‘ where β β : (βα΅[ β ] ββ truth) holds β β (P , f , Ο) (p , _) = p β β : (βα΅[ β ] ββ truth) holds β = ββ-implies-ββ βα΅[ β ] truth β β β‘β : (truth ββ βα΅[ β ]) holds β‘β (P , f , Ο) p = (Ξ» x β p) , Ξ» { _ β π-is-prop β β } β‘ : (truth ββ βα΅[ β ]) holds β‘ = ββ-implies-ββ truth βα΅[ β ] β‘β π-is-spectralα΄° : spectralα΄° π π-is-spectralα΄° = Οα΄° π-is-spectral : is-spectral π holds π-is-spectral = spectralα΄°-gives-spectrality π Οα΄° π-has-small-π¦ : has-small-π¦ π π-has-small-π¦ = spectralα΄°-implies-small-π¦ π Οα΄° \end{code} Added on 2024-03-09. A basic open of the SierpiΕski locale is either `π`, `truth`, or `π`. In fact, because the basic open coincide with the compact opens in spectral locales, a corollary of this is that these three elements form a basis for SierpiΕski. \begin{code} basis-trichotomy : (bs : List (π π€)) β (πΈ bs οΌ π[ πͺ π ]) + (πΈ bs οΌ truth) + (πΈ bs οΌ π[ πͺ π ]) basis-trichotomy [] = inr (inr p) where p : πΈ [] οΌ π[ πͺ π ] p = πΈ [] οΌβ¨ πΈ-equal-to-πΈβ [] β© πΈβ [] οΌβ¨ refl β© π[ πͺ π ] β basis-trichotomy (β β· bs) = inl p where β = πΈ-equal-to-πΈβ (β β· bs) β ‘ = ap (Ξ» - β - β¨[ πͺ π ] πΈβ bs) ββ₯-is-top β ’ = π-left-annihilator-for-β¨ (πͺ π) (πΈβ bs) p : πΈ (β β· bs) οΌ π[ πͺ π ] p = πΈ (β β· bs) οΌβ¨ β β© πΈβ (β β· bs) οΌβ¨ refl β© βα΅[ β ] β¨[ πͺ π ] πΈβ bs οΌβ¨ β ‘ β© π[ πͺ π ] β¨[ πͺ π ] πΈβ bs οΌβ¨ β ’ β© π[ πͺ π ] β basis-trichotomy (β β· bs) = casesβ caseβ caseβ caseβ IH where IH : (πΈ bs οΌ π[ πͺ π ]) + (πΈ bs οΌ truth) + (πΈ bs οΌ π[ πͺ π ]) IH = basis-trichotomy bs caseβ : πΈ bs οΌ π[ πͺ π ] β (πΈ (β β· bs) οΌ π[ πͺ π ]) + (πΈ (β β· bs) οΌ truth) + (πΈ (β β· bs) οΌ π[ πͺ π ]) caseβ q = inl r where β ‘ = ap (Ξ» - β βα΅[ β ] β¨[ πͺ π ] -) (πΈβ bs οΌβ¨ πΈ-equal-to-πΈβ bs β»ΒΉ β© πΈ bs οΌβ¨ q β© π[ πͺ π ] β ) β ’ = π-right-annihilator-for-β¨ (πͺ π) βα΅[ β ] r : πΈ (β β· bs) οΌ π[ πͺ π ] r = πΈ (β β· bs) οΌβ¨ πΈ-equal-to-πΈβ (β β· bs) β© πΈβ (β β· bs) οΌβ¨ refl β© βα΅[ β ] β¨[ πͺ π ] πΈβ bs οΌβ¨ β ‘ β© βα΅[ β ] β¨[ πͺ π ] π[ πͺ π ] οΌβ¨ β ’ β© π[ πͺ π ] β caseβ : πΈ bs οΌ truth β (πΈ (β β· bs) οΌ π[ πͺ π ]) + (πΈ (β β· bs) οΌ truth) + (πΈ (β β· bs) οΌ π[ πͺ π ]) caseβ q = inr (inl r) where β ‘ = ap (Ξ» - β - β¨[ πͺ π ] πΈβ bs) principal-filter-on-β-is-truth β ’ = ap (Ξ» - β truth β¨[ πͺ π ] -) (πΈ-equal-to-πΈβ bs β»ΒΉ) β £ = ap (Ξ» - β truth β¨[ πͺ π ] -) q β € = β¨[ πͺ π ]-is-idempotent truth β»ΒΉ r : πΈ (β β· bs) οΌ truth r = πΈ (β β· bs) οΌβ¨ πΈ-equal-to-πΈβ (β β· bs) β© πΈβ (β β· bs) οΌβ¨ refl β© βα΅[ β ] β¨[ πͺ π ] πΈβ bs οΌβ¨ β ‘ β© truth β¨[ πͺ π ] πΈβ bs οΌβ¨ β ’ β© truth β¨[ πͺ π ] πΈ bs οΌβ¨ β £ β© truth β¨[ πͺ π ] truth οΌβ¨ β € β© truth β caseβ : πΈ bs οΌ π[ πͺ π ] β (πΈ (β β· bs) οΌ π[ πͺ π ]) + (πΈ (β β· bs) οΌ truth) + (πΈ (β β· bs) οΌ π[ πͺ π ]) caseβ q = inr (inl r) where β = πΈ-equal-to-πΈβ (β β· bs) β ‘ = ap (Ξ» - β βα΅[ β ] β¨[ πͺ π ] -) (πΈβ bs οΌβ¨ πΈ-equal-to-πΈβ bs β»ΒΉ β© πΈ bs οΌβ¨ q β© π[ πͺ π ] β) β ’ = π-left-unit-of-β¨ (πͺ π) βα΅[ β ] β £ = principal-filter-on-β-is-truth r : πΈ (β β· bs) οΌ truth r = πΈ (β β· bs) οΌβ¨ β β© πΈβ (β β· bs) οΌβ¨ refl β© βα΅[ β ] β¨[ πͺ π ] πΈβ bs οΌβ¨ β ‘ β© βα΅[ β ] β¨[ πͺ π ] π[ πͺ π ] οΌβ¨ β ’ β© βα΅[ β ] οΌβ¨ β £ β© truth β \end{code} Added on 2024-03-11. \begin{code} open DefnOfScottTopology ππ π€ contains-β₯β-implies-contains-β€β : (π : β¨ πͺ π β©) β (β₯β ββ π β β€β ββ π) holds contains-β₯β-implies-contains-β€β π ΞΌ = transport (Ξ» - β (β€β ββ -) holds) (q β»ΒΉ) β where open πͺβα΄Ώ q : π οΌ π[ πͺ π ] q = contains-bottom-implies-is-π π ΞΌ holds-gives-equal-β€β : (P : β¨ ππ β©β) β (P ββ truth) holds β P οΌ β€β holds-gives-equal-β€β (P , f , Ο) p = to-subtype-οΌ (Ξ» Q β Γ-is-prop (Ξ -is-prop fe (Ξ» _ β π-is-prop)) (being-prop-is-prop fe)) (holds-gives-equal-π pe P Ο p) contains-β€β-implies-above-truth : (π : β¨ πͺ π β©) β (β€β ββ π) holds β (truth β€[ poset-of (πͺ π) ] π) holds contains-β€β-implies-above-truth π ΞΌβ = ββ-implies-ββ truth π β where β : (truth ββ π) holds β P ΞΌβ = transport (Ξ» - β (- ββ π) holds) (holds-gives-equal-β€β P ΞΌβ β»ΒΉ) ΞΌβ \end{code} Added on 2024-03-11. If a Scott open `π` is above truth, then it obviously contains the true proposition `β€β`. \begin{code} above-truth-implies-contains-β€β : (π : β¨ πͺ π β©) β (truth β€[ poset-of (πͺ π) ] π) holds β (β€β ββ π) holds above-truth-implies-contains-β€β π p = ββ-implies-ββ truth π p β€β β \end{code}