---
title:         Properties of the way-below relation
author:        Ayberk Tosun
date-started:  2023-08-19
dates-updated: [2024-09-12]
---
The module contains properties of the way below relation defined in
`Locales.WayBelowRelation.Definition`.
\begin{code}[hide]
{-# OPTIONS --safe --without-K #-}
open import UF.PropTrunc
open import UF.FunExt
open import MLTT.Spartan
open import UF.Logic
open import UF.SubtypeClassifier
open import Slice.Family
module Locales.WayBelowRelation.Properties (pt : propositional-truncations-exist)
                                           (fe : Fun-Ext) where
open import Locales.WayBelowRelation.Definition pt fe
open import Locales.Frame pt fe
open PropositionalTruncation pt
open AllCombinators pt fe
open Locale
\end{code}
The bottom open `π` is way below anything.
\begin{code}
π-is-way-below-anything : (X : Locale π€ π₯ π¦)
                        β (U : β¨ πͺ X β©) β (π[ πͺ X ] βͺ[ πͺ X ] U) holds
π-is-way-below-anything X U S (ΞΉ , _) p = β₯β₯-rec β-is-prop β  ΞΉ
 where
  β  : index S β β i κ index S , (π[ πͺ X ] β€[ poset-of (πͺ X) ] S [ i ]) holds
  β  i = β£ i , π-is-bottom (πͺ X) (S [ i ]) β£
\end{code}
Added on 2024-09-12.
\begin{code}
way-below-implies-below : (X : Locale π€ π₯ π¦)
                        β {U V : β¨ πͺ X β©}
                        β (U βͺ[ πͺ X ] V β U β€[ poset-of (πͺ X) ] V) holds
way-below-implies-below {π€} {π₯} {π¦} X {U} {V} Ο =
 β₯β₯-rec (holds-is-prop (U β€[ Xβ ] V)) β  (Ο S Ξ΄ p)
  where
   S : Fam π¦ β¨ πͺ X β©
   S = π , Ξ» { β β V}
   Xβ = poset-of (πͺ X)
   Ξ³ : (i j : index S)
     β β k κ index S , (S [ i ] β€[ Xβ ] S [ k ]) holds
                     Γ (S [ j ] β€[ Xβ ] S [ k ]) holds
   Ξ³ β β = β£ β , β€-is-reflexive Xβ V , β€-is-reflexive Xβ V β£
   Ξ΄ : is-directed (πͺ X) S holds
   Ξ΄ = β£ β β£ , Ξ³
   p : (V β€[ Xβ ] (β[ πͺ X ] S)) holds
   p = β[ πͺ X ]-upper S β
   β  : (Ξ£ _ κ π , (U β€[ Xβ ] V) holds) β (U β€[ Xβ ] V) holds
   β  (β , p) = p
\end{code}
Added on 2024-09-12.
\begin{code}
ββ-is-upward-closed
 : (X : Locale π€ π₯ π¦)
 β {U V W : β¨ πͺ X β©}
 β (U βͺ[ πͺ X ] V β V β€[ poset-of (πͺ X) ] W β U βͺ[ πͺ X ] W) holds
ββ-is-upward-closed X {U} {V} {W} Ο q = β 
 where
  open PosetReasoning (poset-of (πͺ X))
  β  : (U βͺ[ πͺ X ] W) holds
  β  S Ξ΄ r = Ο S Ξ΄ p
   where
    p : (V β€[ poset-of (πͺ X) ] (β[ πͺ X ] S)) holds
    p = V β€β¨ q β© W β€β¨ r β© β[ πͺ X ] S β 
\end{code}
Added on 2024-09-12.
\begin{code}
being-way-below-is-closed-under-binary-joins
 : (X : Locale π€ π₯ π¦)
 β {U V W : β¨ πͺ X β©}
 β (V βͺ[ πͺ X ] U β W βͺ[ πͺ X ] U β (V β¨[ πͺ X ] W) βͺ[ πͺ X ] U) holds
being-way-below-is-closed-under-binary-joins X {U} {V} {W} p q S Ξ΄@(_ , Ο
) r =
 β₯β₯-recβ β-is-prop Ξ³ (p S Ξ΄ r) (q S Ξ΄ r)
  where
   open PosetReasoning (poset-of (πͺ X))
   β  : (V β€[ poset-of (πͺ X) ] (β[ πͺ X ] S)) holds
   β  = way-below-implies-below X (ββ-is-upward-closed X p r)
   β‘ : (W β€[ poset-of (πͺ X) ] (β[ πͺ X ] S)) holds
   β‘ = way-below-implies-below X (ββ-is-upward-closed X q r)
   Xβ = poset-of (πͺ X)
   Ξ³ : Ξ£ i κ index S , (V β€[ Xβ ] S [ i ]) holds
     β Ξ£ i κ index S , (W β€[ Xβ ] S [ i ]) holds
     β β k κ index S , ((V β¨[ πͺ X ] W) β€[ Xβ ] S [ k ]) holds
   Ξ³ (i , p) (j , q) = β₯β₯-rec β-is-prop Ξ΅ (Ο
 i j)
    where
     Ξ΅ : Ξ£ k κ index S ,
          (S [ i ] β€[ Xβ ] S [ k ] β§ S [ j ] β€[ Xβ ] S [ k ]) holds
       β β k κ index S ,
          ((V β¨[ πͺ X ] W) β€[ Xβ ] S [ k ]) holds
     Ξ΅ (k , r , s) = β£ k , β¨[ πͺ X ]-least Ο Ο β£
      where
       Ο : (V β€[ poset-of (πͺ X) ] (S [ k ])) holds
       Ο = V β€β¨ p β© S [ i ] β€β¨ r β© S [ k ] β 
       Ο : (W β€[ poset-of (πͺ X) ] (S [ k ])) holds
       Ο = W β€β¨ q β© S [ j ] β€β¨ s β© S [ k ] β 
\end{code}