--------------------------------------------------------------------------------
title: Continuous maps of locales
author: Ayberk Tosun
date-started: 2024-04-10
--------------------------------------------------------------------------------
Originally written as part of the `Locales.Frame` module on 2022-04-23.
Factored out from the `Locales.Frame` module into this module on 2024-04-10.
\begin{code}[hide]
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan hiding (๐; โ; โ)
open import UF.FunExt
open import UF.PropTrunc
module Locales.ContinuousMap.Definition
(pt : propositional-truncations-exist)
(fe : Fun-Ext)
where
open import Locales.Frame pt fe
open import Locales.ContinuousMap.FrameHomomorphism-Definition pt fe
open import Slice.Family
open import UF.Logic
open import UF.SubtypeClassifier
open AllCombinators pt fe
\end{code}
We work in a module parameterized by two locales `X` and `Y`.
\begin{code}
module ContinuousMaps (X : Locale ๐ค ๐ฅ ๐ฆ) (Y : Locale ๐ค' ๐ฅ' ๐ฆ) where
open Locale
open FrameHomomorphisms hiding (fun-syntax; fun)
open FrameHomomorphisms (๐ช Y) (๐ช X) using (fun-syntax)
\end{code}
We denote the type of continuous maps by `X โcโ Y`.
\begin{code}
_โcโ_ : ๐ค โ ๐ฅ โ ๐ฆ โบ โ ๐ค' ฬ
_โcโ_ = ๐ช Y โfโ ๐ช X
\end{code}
\begin{code}
continuity-of : (f : _โcโ_) โ (S : Fam ๐ฆ โจ ๐ช Y โฉ)
โ f .prโ (โ[ ๐ช Y ] S) ๏ผ โ[ ๐ช X ] โ
f .prโ V โฃ V ฮต S โ
continuity-of f S = โ[ ๐ช X ]-unique โ
f $ V โฃ V ฮต S โ (f $ (โ[ ๐ช Y ] S)) ((prโ (prโ (prโ f)) S))
where
open Joins (ฮป x y โ x โค[ poset-of (๐ช X) ] y)
infixr 25 _$_
_$_ = prโ
\end{code}
\begin{code}
module ContinuousMapNotation (X : Locale ๐ค ๐ฅ ๐ฆ) (Y : Locale ๐ค' ๐ฅ' ๐ฆ) where
infix 9 _โ
infixl 9 _โโ_
open Locale
open ContinuousMaps
open FrameHomomorphisms (๐ช Y) (๐ช X) using (fun-syntax; fun)
open FrameHomomorphisms hiding (fun-syntax; fun)
\end{code}
We denote by `fโ` the defining frame homomorphism of a continuous map `f`.
\begin{code}
_โ : (X โcโ Y) โ ๐ช Y โfโ ๐ช X
_โ f = f
\end{code}
\begin{code}
_โโ_ : (X โcโ Y) โ โจ ๐ช Y โฉ โ โจ ๐ช X โฉ
_โโ_ f = fun (_โ f)
\end{code}
\begin{code}
open ContinuousMaps using (_โcโ_)
open Locale
open FrameHomomorphisms using (is-a-frame-homomorphism)
cont-comp : {๐ค'' ๐ฅ'' : Universe}
โ (X : Locale ๐ค ๐ฅ ๐ฆ)
โ (Y : Locale ๐ค' ๐ฅ' ๐ฆ)
โ (Z : Locale ๐ค'' ๐ฅ'' ๐ฆ)
โ (Y โcโ Z) โ (X โcโ Y) โ X โcโ Z
cont-comp {๐ฆ = ๐ฆ} X Y Z โ@(g , ฮฑโ , ฮฑโ , ฮฑโ) ๐ป@(f , ฮฒโ , ฮฒโ , ฮฒโ) = h , โ
where
open ContinuousMapNotation X Y using () renaming (_โโ_ to _โโโ_)
open ContinuousMapNotation Y Z using () renaming (_โโ_ to _โโโ_)
h : โจ ๐ช Z โฉ โ โจ ๐ช X โฉ
h W = ๐ป โโโ (โ โโโ W)
โ : is-a-frame-homomorphism (๐ช Z) (๐ช X) h holds
โ = โ โ , โ โ , โ โ
where
โ โ : ๐ป โโโ (โ โโโ ๐[ ๐ช Z ]) ๏ผ ๐[ ๐ช X ]
โ โ = ๐ป โโโ (โ โโโ ๐[ ๐ช Z ]) ๏ผโจ โ
โฉ
๐ป โโโ ๐[ ๐ช Y ] ๏ผโจ โ
ก โฉ
๐[ ๐ช X ] โ
where
โ
= ap (ฮป - โ ๐ป โโโ -) ฮฑโ
โ
ก = ฮฒโ
โ โ : (U V : โจ ๐ช Z โฉ)
โ ๐ป โโโ (โ โโโ (U โง[ ๐ช Z ] V))
๏ผ (๐ป โโโ (โ โโโ U)) โง[ ๐ช X ] (๐ป โโโ (โ โโโ V))
โ โ U V = ๐ป โโโ (โ โโโ (U โง[ ๐ช Z ] V)) ๏ผโจ โ
โฉ
๐ป โโโ ((โ โโโ U) โง[ ๐ช Y ] (โ โโโ V)) ๏ผโจ โ
ก โฉ
(๐ป โโโ (โ โโโ U)) โง[ ๐ช X ] (๐ป โโโ (โ โโโ V)) โ
where
โ
= ap (ฮป - โ ๐ป โโโ -) (ฮฑโ U V)
โ
ก = ฮฒโ (โ โโโ U) (โ โโโ V)
open Joins (ฮป x y โ x โค[ poset-of (๐ช X) ] y)
โ โ : (U : Fam ๐ฆ โจ ๐ช Z โฉ) โ ((h (โ[ ๐ช Z ] U)) is-lub-of โ
h x โฃ x ฮต U โ) holds
โ โ U = transport
(ฮป - โ (- is-lub-of โ
h x โฃ x ฮต U โ) holds)
(โ โ โปยน)
(โ[ ๐ช X ]-upper โ
h x โฃ x ฮต U โ , โ[ ๐ช X ]-least โ
h x โฃ x ฮต U โ)
where
open PosetReasoning (poset-of (๐ช X))
โ โ : h (โ[ ๐ช Z ] U) ๏ผ โ[ ๐ช X ] โ
h x โฃ x ฮต U โ
โ โ = ๐ป โโโ (โ โโโ (โ[ ๐ช Z ] U)) ๏ผโจ I โฉ
๐ป โโโ (โ[ ๐ช Y ] โ
โ โโโ x โฃ x ฮต U โ) ๏ผโจ II โฉ
โ[ ๐ช X ] โ
h x โฃ x ฮต U โ โ
where
I = ap (ฮป - โ ๐ป โโโ -) (โ[ ๐ช Y ]-unique โ
โ โโโ x โฃ x ฮต U โ _ (ฮฑโ _))
II = โ[ ๐ช X ]-unique โ
h x โฃ x ฮต U โ _ (ฮฒโ _)
\end{code}