Ayberk Tosun, 12 September 2023 Split out from the now-deprecated `CompactRegular` module. \begin{code} {-# OPTIONS --safe --without-K --lossy-unification #-} open import MLTT.Spartan hiding (π) open import UF.PropTrunc open import UF.FunExt open import UF.Size module Locales.WellInside (pt : propositional-truncations-exist) (fe : Fun-Ext) (sr : Set-Replacement pt) where \end{code} Importation of foundational UF stuff. \begin{code} open import UF.SubtypeClassifier open import UF.Logic open import Locales.Frame pt fe open AllCombinators pt fe open PropositionalTruncation pt \end{code} \begin{code} well-insideβ : (F : Frame π€ π₯ π¦) β β¨ F β© β β¨ F β© β π€ Μ well-insideβ F U V = Ξ£ W κ β¨ F β© , (U β§[ F ] W οΌ π[ F ]) Γ (V β¨[ F ] W οΌ π[ F ]) infix 4 well-insideβ syntax well-insideβ F U V = U ββ[ F ] V \end{code} Because well inside is not propositional, we have to truncate it to get a relation. \begin{code} well-inside : (F : Frame π€ π₯ π¦) β β¨ F β© β β¨ F β© β Ξ© π€ well-inside F U V = β₯ U ββ[ F ] V β₯Ξ© infix 4 well-inside syntax well-inside F U V = U β[ F ] V \end{code} Proposition. Let `U, V : πͺ(X)`. If `U β V` then `U β€ V`. \begin{code} well-inside-implies-below : (F : Frame π€ π₯ π¦) β (U V : β¨ F β©) β (U β[ F ] V β (U β€[ poset-of F ] V)) holds well-inside-implies-below F U V = β₯β₯-rec (holds-is-prop (U β€[ poset-of F ] V)) Ξ³ where _β_ = Ξ» U V β U β§[ F ] V Ξ³ : U ββ[ F ] V β (U β€[ poset-of F ] V) holds Ξ³ (W , cβ , cβ) = connecting-lemmaβ F Ξ΄ where Ξ΄ : U οΌ U β§[ F ] V Ξ΄ = U οΌβ¨ π-right-unit-of-β§ F U β»ΒΉ β© U β π[ F ] οΌβ¨ ap (U β_) (cβ β»ΒΉ) β© U β (V β¨[ F ] W) οΌβ¨ binary-distributivity F U V W β© (U β V) β¨[ F ] (U β W) οΌβ¨ ap (Ξ» - β binary-join F (U β V) -) cβ β© (U β V) β¨[ F ] π[ F ] οΌβ¨ π-left-unit-of-β¨ F (U β V) β© U β V β \end{code} The set `ββ(U) β‘ { V β£ U β V}` is upwards-closed. \begin{code} ββ-is-upwards-closed : (F : Frame π€ π₯ π¦) β {U V W : β¨ F β©} β (U β[ F ] V) holds β (V β€[ poset-of F ] W) holds β (U β[ F ] W) holds ββ-is-upwards-closed F {U} {V} {W} p q = β₯β₯-rec (holds-is-prop (U β[ F ] W)) Ξ³ p where open PosetReasoning (poset-of F) Ξ³ : U ββ[ F ] V β (U β[ F ] W) holds Ξ³ (T , cβ , cβ) = β£ T , cβ , dβ β£ where Ξ² : (π[ F ] β€[ poset-of F ] (W β¨[ F ] T)) holds Ξ² = π[ F ] οΌβ¨ cβ β»ΒΉ β©β V β¨[ F ] T β€β¨ β¨[ F ]-left-monotone q β© W β¨[ F ] T β dβ : W β¨[ F ] T οΌ π[ F ] dβ = only-π-is-above-π F (W β¨[ F ] T) Ξ² \end{code} The set `ββ(U) β‘ { V | V β U}` is downwards-closed. \begin{code} ββ-is-downwards-closed : (F : Frame π€ π₯ π¦) β {U V W : β¨ F β©} β (V β[ F ] W) holds β (U β€[ poset-of F ] V) holds β (U β[ F ] W) holds ββ-is-downwards-closed F {U} {V} {W} p q = β₯β₯-rec β₯β₯-is-prop Ξ³ p where open PosetReasoning (poset-of F) Ξ³ : V ββ[ F ] W β (U β[ F ] W) holds Ξ³ (T , cβ , cβ) = β£ T , (only-π-is-below-π F (U β§[ F ] T) Ξ² , cβ) β£ where Ξ² : ((U β§[ F ] T) β€[ poset-of F ] π[ F ]) holds Ξ² = U β§[ F ] T β€β¨ β§[ F ]-left-monotone q β© V β§[ F ] T οΌβ¨ cβ β©β π[ F ] β \end{code}