Skip to content

Locales.Sierpinski.UniversalProperty

--------------------------------------------------------------------------------
title:          Universal property of the SierpiΕ„ski locale
author:         Ayberk Tosun
date-started:   2024-03-06
date-completed: 2024-03-09
--------------------------------------------------------------------------------

In this module, we

  1. define the universal property of SierpiΕ„ski which amounts to the fact that
     it is the free frame on one generator; and
  2. we prove that the Scott locale of the SierpiΕ„ski dcpo satisfies this
     universal property.

This the implementation of a proof sketch communicated to me by MartΓ­n EscardΓ³.


{-# OPTIONS --safe --without-K --lossy-unification #-}

open import MLTT.Spartan
open import UF.FunExt
open import UF.PropTrunc
open import UF.Size
open import UF.Subsingletons

module Locales.Sierpinski.UniversalProperty
        (𝓀  : Universe)
        (fe : Fun-Ext)
        (pe : Prop-Ext)
        (pt : propositional-truncations-exist)
        (sr : Set-Replacement pt)
       where

open import DomainTheory.Topology.ScottTopology pt fe 𝓀
open import DomainTheory.Topology.ScottTopologyProperties pt fe
open import Locales.ContinuousMap.Definition pt fe
open import Locales.ContinuousMap.FrameHomomorphism-Definition pt fe
open import Locales.ContinuousMap.FrameHomomorphism-Properties pt fe
open import Locales.Frame pt fe hiding (is-directed)
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.Sierpinski.Properties 𝓀 pe pt fe sr
open import Locales.SmallBasis pt fe sr
open import Slice.Family
open import UF.Logic
open import UF.SubtypeClassifier

open AllCombinators pt fe renaming (_∧_ to _βˆ§β‚š_; _∨_ to _βˆ¨β‚š_)
open ContinuousMaps
open DefnOfScottLocale π•Šπ““ 𝓀 pe hiding (βŠ€β‚›)
open DefnOfScottTopology π•Šπ““ 𝓀
open FrameHomomorphismProperties
open FrameHomomorphisms
open Locale
open PropertiesAlgebraic 𝓀 π•Šπ““ π•Šπ““-is-structurally-algebraic
open PropositionalTruncation pt hiding (_∨_)
open ScottLocaleConstruction π•Šπ““ hscb pe



\section{The definition of the universal property}

Given a locale S with a chosen open truth : π’ͺ(S), S satisfies the universal
property of the SierpiΕ„ski locale if

    for any locale X, any open U : π’ͺ(X), there exists a continuous map f : X β†’ S
    unique with the property that f(truth) = U.

In other words, this says that the SierpiΕ„ski locale is the locale whose
defining frame is the free frame on one generator.


has-the-universal-property-of-sierpinski : (S : Locale (𝓀 ⁺) 𝓀 𝓀)
                                         β†’ ⟨ π’ͺ S ⟩
                                         β†’ 𝓀 ⁺ ⁺ Μ‡
has-the-universal-property-of-sierpinski S truth =
 (X : Locale (𝓀 ⁺) 𝓀 𝓀) β†’
  (U : ⟨ π’ͺ X ⟩) β†’
   βˆƒ! (f , _) κž‰ (X ─cβ†’ S) , U = f truth


\section{The Scott locale of the SierpiΕ„ski dcpo has this universal property}

We denote by `𝒽` the defining frame homomorphism of the continuous map required
for the universal property.


universal-property-of-sierpinski : has-the-universal-property-of-sierpinski π•Š truth
universal-property-of-sierpinski X U = (𝒽 , †) , ‑
 where
  open PosetNotation (poset-of (π’ͺ X))
  open PosetReasoning (poset-of (π’ͺ X))
  open Joins _≀_


We adopt the convention of using π”£π”―π”žπ”¨π”±π”²π”― letters for Scott opens.

The frame homomorphism `h : π’ͺ(π•Š) β†’ π’ͺ(X)` is defined as `h(𝔙) :≑ ⋁ (β„±β‚“ 𝔙)` where
`β„±β‚“ 𝔙` denotes the following family.


  I : ⟨ π’ͺ π•Š ⟩ β†’ 𝓀 Μ‡
  I π”˜ = (βŠ€β‚› βˆˆβ‚› π”˜) holds + (βŠ₯β‚› βˆˆβ‚› π”˜) holds

  Ξ± : (𝔙 : ⟨ π’ͺ π•Š ⟩) β†’ (βŠ€β‚› βˆˆβ‚› 𝔙) holds + (βŠ₯β‚› βˆˆβ‚› 𝔙) holds β†’ ⟨ π’ͺ X ⟩
  Ξ± V (inl _) = U
  Ξ± V (inr _) = 𝟏[ π’ͺ X ]

  β„±β‚“ : ⟨ π’ͺ π•Š ⟩ β†’ Fam 𝓀 ⟨ π’ͺ X ⟩
  β„±β‚“ 𝔙 = (I 𝔙 , Ξ± 𝔙)

  h : ⟨ π’ͺ π•Š ⟩ β†’ ⟨ π’ͺ X ⟩
  h 𝔙 = ⋁[ π’ͺ X ] β„±β‚“ 𝔙


It is easy to see that this map is monotone.


  𝓂 : is-monotonic (poset-of (π’ͺ π•Š)) (poset-of (π’ͺ X)) h holds
  𝓂 (V₁ , Vβ‚‚) p = ⋁[ π’ͺ X ]-least (I V₁ , Ξ± V₁) (h Vβ‚‚ , †)
   where
    pβ€² : (V₁ βŠ†β‚› Vβ‚‚) holds
    pβ€² = βŠ†β‚–-implies-βŠ†β‚› V₁ Vβ‚‚ p

    † : (h Vβ‚‚ is-an-upper-bound-of (I V₁ , Ξ± V₁)) holds
    † (inl ΞΌ) = U        β‰€βŸ¨ ⋁[ π’ͺ X ]-upper _ (inl (pβ€² βŠ€β‚› ΞΌ)) ⟩ h Vβ‚‚ β– 
    † (inr ΞΌ) = 𝟏[ π’ͺ X ] β‰€βŸ¨ ⋁[ π’ͺ X ]-upper _ (inr (pβ€² βŠ₯β‚› ΞΌ)) ⟩ h Vβ‚‚ β– 


We now prove that it preserves the top element and the binary meets.


  Ο† : h 𝟏[ π’ͺ π•Š ] = 𝟏[ π’ͺ X ]
  Ο† = only-𝟏-is-above-𝟏 (π’ͺ X) (h 𝟏[ π’ͺ π•Š ]) Ξ³
   where
    Ξ³ : (𝟏[ π’ͺ X ] ≀ h 𝟏[ π’ͺ π•Š ]) holds
    Ξ³ = ⋁[ π’ͺ X ]-upper ((I 𝟏[ π’ͺ π•Š ]) , (Ξ± 𝟏[ π’ͺ π•Š ])) (inr ⋆)

  ψ : preserves-binary-meets (π’ͺ π•Š) (π’ͺ X) h holds
  ψ 𝔙 π”š = ≀-is-antisymmetric (poset-of (π’ͺ X)) Οˆβ‚ Οˆβ‚‚
   where
    Οˆβ‚ : (h (𝔙 ∧[ π’ͺ π•Š ] π”š) ≀ (h 𝔙 ∧[ π’ͺ X ] h π”š)) holds
    Οˆβ‚ = ∧[ π’ͺ X ]-greatest
          (h 𝔙)
          (h π”š)
          (h (𝔙 ∧[ π’ͺ π•Š ] π”š))
          (𝓂 ((𝔙 ∧[ π’ͺ π•Š ] π”š) , _) (∧[ π’ͺ π•Š ]-lower₁ 𝔙 π”š))
          ((𝓂 ((𝔙 ∧[ π’ͺ π•Š ] π”š) , π”š) (∧[ π’ͺ π•Š ]-lowerβ‚‚ 𝔙 π”š)))

    Ο… : (h (𝔙 ∧[ π’ͺ π•Š ] π”š)
          is-an-upper-bound-of
         ⁅ Ξ± 𝔙 i₁ ∧[ π’ͺ X ] Ξ± π”š iβ‚‚ ∣ (i₁ , iβ‚‚) ∢ I 𝔙 Γ— I π”š ⁆) holds
    Ο… (inl p₁ , inl pβ‚‚) =
     Ξ± 𝔙 (inl p₁) ∧[ π’ͺ X ] Ξ± π”š (inl pβ‚‚)                     =⟨ refl βŸ©β‚š
     U ∧[ π’ͺ X ] U                                           =⟨ β…    βŸ©β‚š
     U                                                      β‰€βŸ¨ β…‘  ⟩
     ⋁[ π’ͺ X ] ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ β– 
      where
       p : (βŠ€β‚› βˆˆβ‚› (𝔙 ∧[ π’ͺ π•Š ] π”š)) holds
       p = p₁ , pβ‚‚

       β…  = ∧[ π’ͺ X ]-is-idempotent U ⁻¹
       β…‘ = ⋁[ π’ͺ X ]-upper ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ (inl p)
    Ο… (inl q₁ , inr pβ‚‚) =
     Ξ± 𝔙 (inl q₁) ∧[ π’ͺ X ] Ξ± π”š (inr pβ‚‚)                     =⟨ refl βŸ©β‚š
     U ∧[ π’ͺ X ] 𝟏[ π’ͺ X ]                                    =⟨ β…    βŸ©β‚š
     U                                                      β‰€βŸ¨ β…‘  ⟩
     ⋁[ π’ͺ X ] ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ β– 
      where
       p : (βŠ€β‚› βˆˆβ‚› (𝔙 ∧[ π’ͺ π•Š ] π”š)) holds
       p = q₁ , contains-βŠ₯β‚›-implies-contains-βŠ€β‚› π”š pβ‚‚

       β…  = 𝟏-right-unit-of-∧ (π’ͺ X) U
       β…‘ = ⋁[ π’ͺ X ]-upper ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ (inl p)
    Ο… (inr q₁ , inl pβ‚‚) =
     Ξ± 𝔙 (inr q₁) ∧[ π’ͺ X ] Ξ± π”š (inl pβ‚‚)                     =⟨ refl βŸ©β‚š
     𝟏[ π’ͺ X ] ∧[ π’ͺ X ] U                                    =⟨ β…    βŸ©β‚š
     U                                                      β‰€βŸ¨ β…‘  ⟩
     ⋁[ π’ͺ X ] ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ β– 
      where
       p : (βŠ€β‚› βˆˆβ‚› (𝔙 ∧[ π’ͺ π•Š ] π”š)) holds
       p = contains-βŠ₯β‚›-implies-contains-βŠ€β‚› 𝔙 q₁ , pβ‚‚

       β…  = 𝟏-left-unit-of-∧ (π’ͺ X) U
       β…‘ = ⋁[ π’ͺ X ]-upper ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ (inl p)
    Ο… (inr q₁ , inr qβ‚‚) =
     Ξ± 𝔙 (inr q₁) ∧[ π’ͺ X ] Ξ± π”š (inr qβ‚‚)                      =⟨ refl βŸ©β‚š
     𝟏[ π’ͺ X ] ∧[ π’ͺ X ] 𝟏[ π’ͺ X ]                              =⟨ β…     βŸ©β‚š
     𝟏[ π’ͺ X ]                                                β‰€βŸ¨  β…‘ ⟩
     ⋁[ π’ͺ X ] ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆  β– 
      where
       q : (βŠ₯β‚› βˆˆβ‚› (𝔙 ∧[ π’ͺ π•Š ] π”š)) holds
       q = q₁ , qβ‚‚

       β…  = ∧[ π’ͺ X ]-is-idempotent 𝟏[ π’ͺ X ] ⁻¹
       β…‘ = ⋁[ π’ͺ X ]-upper ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆ (inr q)

    Οˆβ‚‚ : ((h 𝔙 ∧[ π’ͺ X ] h π”š) ≀ h (𝔙 ∧[ π’ͺ π•Š ] π”š)) holds
    Οˆβ‚‚ =
     h 𝔙 ∧[ π’ͺ X ] h π”š                                             =⟨ refl βŸ©β‚š
     h 𝔙 ∧[ π’ͺ X ] (⋁[ π’ͺ X ] β„±β‚“ π”š)                                 =⟨ β…‘ βŸ©β‚š
     ⋁[ π’ͺ X ] ⁅ Ξ± 𝔙 i₁ ∧[ π’ͺ X ] Ξ± π”š iβ‚‚ ∣ (i₁ , iβ‚‚) ∢ I 𝔙 Γ— I π”š ⁆  β‰€βŸ¨ β…’ ⟩
     ⋁[ π’ͺ X ] ⁅ Ξ± (𝔙 ∧[ π’ͺ π•Š ] π”š) i ∣ i ∢ I (𝔙 ∧[ π’ͺ π•Š ] π”š) ⁆       =⟨ refl βŸ©β‚š
     h (𝔙 ∧[ π’ͺ π•Š ] π”š) β– 
      where
       β…‘ = distributivity+ (π’ͺ X) (I 𝔙 , Ξ± 𝔙) (I π”š  , Ξ± π”š)
       β…’ = ⋁[ π’ͺ X ]-least _ (_ , Ο…)


The fact that it satisfies the property `h truth = U` is quite easy to see.


  †₁ : (U ≀ h truth) holds
  †₁ = U β‰€βŸ¨ ⋁[ π’ͺ X ]-upper _ (inl ⋆) ⟩ h truth β– 

  †₂ : (h truth ≀ U) holds
  †₂ = ⋁[ π’ͺ X ]-least (β„±β‚“ truth) (U , Ξ³)
   where
    Ξ³ : (U is-an-upper-bound-of (β„±β‚“ truth)) holds
    Ξ³ (inl ⋆) = ≀-is-reflexive (poset-of (π’ͺ X)) U

  † : U = h truth
  † = ≀-is-antisymmetric (poset-of (π’ͺ X)) †₁ †₂


We now proceed to prove that it preserves the joins.


  open ScottLocaleProperties π•Šπ““ π•Šπ““-has-least hscb pe

  Ο‘ : (𝔖 : Fam 𝓀 ⟨ π’ͺ π•Š ⟩) β†’ (h (⋁[ π’ͺ π•Š ] 𝔖) is-lub-of ⁅ h π”˜ ∣ π”˜ Ξ΅ 𝔖 ⁆) holds
  Ο‘ 𝔖 = ϑ₁ , Ξ» { (V , Ο…) β†’ Ο‘β‚‚ V Ο…}
   where
    ϑ₁ : (h (⋁[ π’ͺ π•Š ] 𝔖) is-an-upper-bound-of ⁅ h π”˜ ∣ π”˜ Ξ΅ 𝔖 ⁆) holds
    ϑ₁ i = 𝓂 (𝔖 [ i ] , ⋁[ π’ͺ π•Š ] 𝔖) (⋁[ π’ͺ π•Š ]-upper 𝔖 i)

    Ο‘β‚‚ : (W : ⟨ π’ͺ X ⟩)
       β†’ (W is-an-upper-bound-of ⁅ h π”˜ ∣ π”˜ Ξ΅ 𝔖 ⁆) holds
       β†’ (h (⋁[ π’ͺ π•Š ] 𝔖) ≀ W) holds
    Ο‘β‚‚ W Ο… = ⋁[ π’ͺ X ]-least (β„±β‚“ (⋁[ π’ͺ π•Š ] 𝔖)) (W , Ξ³)
     where
      Ξ³ : (W is-an-upper-bound-of (β„±β‚“ (⋁[ π’ͺ π•Š ] 𝔖))) holds
      Ξ³ (inl ΞΌ) = βˆ₯βˆ₯-rec (holds-is-prop (_ ≀ _)) ♣ ΞΌ
       where
        ♣ : (Ξ£ k κž‰ index 𝔖 , (βŠ€β‚› βˆˆβ‚› (𝔖 [ k ])) holds) β†’ (U ≀ W) holds
        ♣ (k , ΞΌβ‚–) = U           =⟨ β…  βŸ©β‚š
                     h truth     β‰€βŸ¨ β…‘ ⟩
                     h (𝔖 [ k ]) β‰€βŸ¨ β…’ ⟩
                     W           β– 
                      where
                       β…  = †
                       β…‘ = 𝓂 _ (contains-βŠ€β‚›-implies-above-truth (𝔖 [ k ]) ΞΌβ‚–)
                       β…’ = Ο… k
      Ξ³ (inr ΞΌ) = βˆ₯βˆ₯-rec (holds-is-prop (_ ≀ _)) β™₯ ΞΌ
       where
        β™₯ : (Ξ£ k κž‰ index 𝔖 , (βŠ₯β‚› βˆˆβ‚› (𝔖 [ k ])) holds) β†’ (𝟏[ π’ͺ X ] ≀ W) holds
        β™₯ (k , ΞΌβ‚–) =
         𝟏[ π’ͺ X ]    =⟨ β…  βŸ©β‚š
         h 𝟏[ π’ͺ π•Š ]  =⟨ β…‘ βŸ©β‚š
         h (𝔖 [ k ]) β‰€βŸ¨ β…’  ⟩
         W           β– 
          where
           β…  = Ο† ⁻¹
           β…‘ = ap h (contains-bottom-implies-is-𝟏 (𝔖 [ k ]) ΞΌβ‚–) ⁻¹
           β…’ = Ο… k


We package these up into a continuous map of locales (recal that `X ─cβ†’ Y`
denotes the type of continuous maps from locale `X` to locale `Y`).


  𝒽 : X ─cβ†’ π•Š
  𝒽 = h , Ο† , ψ , Ο‘


Finally, we show that `𝒽` is determined uniquely by this property.


  ‑ : is-central (Ξ£ (f , _) κž‰ (π’ͺ π•Š ─fβ†’ π’ͺ X) , U = f truth) (𝒽 , †)
  ‑ (β„Š@(g , Ο†β‚€ , Οˆβ‚€ , Ο‘β‚€) , †₀) =
   to-subtype-=
    (Ξ» h β†’ carrier-of-[ poset-of (π’ͺ X) ]-is-set)
    (to-frame-homomorphism-= (π’ͺ π•Š) (π’ͺ X) 𝒽 β„Š Ξ³)
     where
      𝓂′ : is-monotonic (poset-of (π’ͺ π•Š)) (poset-of (π’ͺ X)) g holds
      𝓂′ = frame-morphisms-are-monotonic (π’ͺ π•Š) (π’ͺ X) g (Ο†β‚€ , Οˆβ‚€ , Ο‘β‚€)

      γ₁ : (𝔙 : ⟨ π’ͺ π•Š ⟩) β†’ (h 𝔙 ≀ g 𝔙) holds
      γ₁ 𝔙 = ⋁[ π’ͺ X ]-least (β„±β‚“ 𝔙) (g 𝔙 , β₁)
       where
        β₁ : (g 𝔙 is-an-upper-bound-of β„±β‚“ 𝔙) holds
        β₁ (inl p) = U =⟨ †₀ βŸ©β‚š g truth β‰€βŸ¨ β…‘ ⟩ g 𝔙 β– 
                      where
                       β…‘ = 𝓂′ (truth , 𝔙) (contains-βŠ€β‚›-implies-above-truth 𝔙 p)
        β₁ (inr p) = 𝟏[ π’ͺ X ] =⟨ β…  βŸ©β‚š g 𝟏[ π’ͺ π•Š ] =⟨ β…‘ βŸ©β‚š g 𝔙 β– 
                      where
                       β…  = Ο†β‚€ ⁻¹
                       β…‘ = ap g (contains-bottom-implies-is-𝟏 𝔙 p ⁻¹)

      Ξ³β‚‚ : (𝔙 : ⟨ π’ͺ π•Š ⟩) β†’ (g 𝔙 ≀ h 𝔙) holds
      Ξ³β‚‚ 𝔙 = g 𝔙                      =⟨ ap g cov βŸ©β‚š
             g (⋁[ π’ͺ π•Š ] 𝔖)           =⟨ β€» βŸ©β‚š
             ⋁[ π’ͺ X ] ⁅ g 𝔅 ∣ 𝔅 Ξ΅ 𝔖 ⁆ β‰€βŸ¨ β™’ ⟩
             h 𝔙                      β– 
       where
        open Joins _βŠ†β‚›_
         renaming (_is-an-upper-bound-of_ to _is-an-upper-bound-ofβ‚›_)

        𝔖 = covering-familyβ‚› π•Š π•Š-is-spectralα΄° 𝔙

        β€» = ⋁[ π’ͺ X ]-unique ⁅ g 𝔅 ∣ 𝔅 Ξ΅ 𝔖 ⁆ (g (⋁[ π’ͺ π•Š ] 𝔖)) (Ο‘β‚€ 𝔖)

        cov : 𝔙 = ⋁[ π’ͺ π•Š ] 𝔖
        cov = ⋁[ π’ͺ π•Š ]-unique 𝔖 𝔙 (basisβ‚›-covers-do-cover π•Š π•Š-is-spectralα΄° 𝔙)

        covβ‚€ : (𝔙 is-an-upper-bound-ofβ‚› 𝔖) holds
        covβ‚€ bs = βŠ†β‚–-implies-βŠ†β‚›
                   (𝔖 [ bs ])
                   𝔙
                   (pr₁ (basisβ‚›-covers-do-cover π•Š π•Š-is-spectralα΄° 𝔙) bs)

        final : (i : index 𝔖) β†’ (g (𝔖 [ i ]) ≀ h 𝔙) holds
        final (bs , b) = cases₃ case₁ caseβ‚‚ case₃ (basis-trichotomy bs)
         where
          open PosetReasoning poset-of-scott-opensβ‚›
           renaming (_β‰€βŸ¨_⟩_ to _β‰€βŸ¨_βŸ©β‚›_;
                     _β–  to _β– β‚›;
                     _=⟨_βŸ©β‚š_ to _=⟨_βŸ©β‚›_)

          case₁ : β„¬π•Š [ bs ] = 𝟏[ π’ͺ π•Š ]
                β†’ (g (𝔖 [ bs , b ]) ≀ h 𝔙) holds
          case₁ q = transport (Ξ» - β†’ (g (𝔖 [ bs , b ]) ≀ h -) holds)
                     r
                     (g (β„¬π•Š [ bs ]) β‰€βŸ¨ 𝟏-is-top (π’ͺ X) (g (β„¬π•Š [ bs ])) ⟩
                     𝟏[ π’ͺ X ]       =⟨ Ο† ⁻¹ βŸ©β‚š h 𝟏[ π’ͺ π•Š ] β– )
           where
            Ο‡ : (𝟏[ π’ͺ π•Š ] βŠ†β‚› (β„¬π•Š [ bs ])) holds
            Ο‡ = reflexivity+ poset-of-scott-opensβ‚› (q ⁻¹)

            r : 𝟏[ π’ͺ π•Š ] = 𝔙
            r = βŠ†β‚›-is-antisymmetric
                 (Ξ» x p β†’ covβ‚€ (bs , b) x (Ο‡ x p))
                 (βŠ€β‚›-is-top 𝔙)

          caseβ‚‚ : β„¬π•Š [ bs ] = truth
                β†’ (g (𝔖 [ bs , b ]) ≀ h 𝔙) holds
          caseβ‚‚ p = g (𝔖 [ bs , b ]) =⟨ refl βŸ©β‚š
                    g (β„¬π•Š [ bs ])    =⟨ β…  βŸ©β‚š
                    g truth          =⟨ β…‘ βŸ©β‚š
                    U                β‰€βŸ¨  β…’ ⟩
                    h 𝔙              β– 
           where
            pβ‚€ : (truth βŠ†β‚› (β„¬π•Š [ bs ])) holds
            pβ‚€ = reflexivity+ poset-of-scott-opensβ‚› (p ⁻¹)

            ΞΆ : (truth βŠ†β‚› 𝔙) holds
            ΞΆ P ΞΌ = covβ‚€ (bs , b) P (pβ‚€ P ΞΌ)

            Ο‡ : (βŠ€β‚› βˆˆβ‚› 𝔙) holds
            Ο‡ = above-truth-implies-contains-βŠ€β‚› 𝔙 (βŠ†β‚›-implies-βŠ†β‚– truth 𝔙 ΞΆ)

            β…  = ap g p
            β…‘ = †₀ ⁻¹
            β…’ = ⋁[ π’ͺ X ]-upper (β„±β‚“ 𝔙) (inl Ο‡)

          case₃ : β„¬π•Š [ bs ] = 𝟎[ π’ͺ π•Š ] β†’ (g (𝔖 [ bs , b ]) ≀ h 𝔙) holds
          case₃ q = g (𝔖 [ bs , b ]) =⟨ refl   βŸ©β‚š
                    g (β„¬π•Š [ bs ])    =⟨ β…  βŸ©β‚š
                    g 𝟎[ π’ͺ π•Š ]       =⟨ β…‘ βŸ©β‚š
                    𝟎[ π’ͺ X ]         β‰€βŸ¨ β…’ ⟩
                    h 𝔙              β– 
                     where
                      β…  = ap g q
                      β…‘ = frame-homomorphisms-preserve-bottom (π’ͺ π•Š) (π’ͺ X) β„Š
                      β…’ = 𝟎-is-bottom (π’ͺ X) (h 𝔙)

        β™’ : ((⋁[ π’ͺ X ] ⁅ g 𝔅 ∣ 𝔅 Ξ΅ 𝔖 ⁆) ≀ h 𝔙) holds
        β™’ = ⋁[ π’ͺ X ]-least ⁅ g 𝔅 ∣ 𝔅 Ξ΅ 𝔖 ⁆ (h 𝔙 , final)

      Ξ³ : (𝔙 : ⟨ π’ͺ π•Š ⟩) β†’ h 𝔙 = g 𝔙
      Ξ³ 𝔙 = ≀-is-antisymmetric (poset-of (π’ͺ X)) (γ₁ 𝔙) (Ξ³β‚‚ 𝔙)