--- title: Properties of posetal adjunctions on distributive lattices author: Ayberk Tosun date-started: 2024-05-20 --- Many properties of posetal adjunctions have previously been written down, mostly in the context of frames. In this module, we collect some of these properties in the more general case where the lattices in consideration are not necessarily frames. \begin{code} {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan open import UF.FunExt open import UF.PropTrunc module Locales.Adjunctions.Properties-DistributiveLattice (pt : propositional-truncations-exist) (fe : Fun-Ext) where open import Locales.Adjunctions.Properties pt fe open import Locales.DistributiveLattice.Definition fe pt open import Locales.Frame pt fe open import Locales.GaloisConnection pt fe open import UF.Logic open import UF.SubtypeClassifier open AllCombinators pt fe \end{code} We work in a module parameterized by two distributive lattices `K` and `L`. \begin{code} module Properties-Of-Posetal-Adjunctions-on-Distributive-Lattices (K : DistributiveLattice π€) (L : DistributiveLattice π₯) where open GaloisConnectionBetween (poset-ofα΅ K) (poset-ofα΅ L) open Some-Properties-Of-Posetal-Adjunctions \end{code} We denote by `P` and `Q` the underlying posets of distributive lattices `K` and `L`. \begin{code} P : Poset π€ π€ P = poset-ofα΅ K Q : Poset π₯ π₯ Q = poset-ofα΅ L open DistributiveLattice K using () renaming (π to πK; π to πK; _β§_ to _β§β_; _β¨_ to _β¨β_) open DistributiveLattice L using () renaming (π to πL; π to πL; _β§_ to _β§β_; _β¨_ to _β¨β_) \end{code} Right adjoints preserve the top element `π`. \begin{code} right-adjoint-preserves-π : (π»@(f , _) : P βmβ Q) (β@(g , _) : Q βmβ P) β (π» β£ β) holds β g πL οΌ πK right-adjoint-preserves-π π»@(f , _) β@(g , _) πΆπΉπΏ = β€-is-antisymmetric P β β‘ where β : (g πL β€[ poset-ofα΅ K ] πK) holds β = πα΅-is-top K (g πL) β‘ : (πK β€[ poset-ofα΅ K ] g πL) holds β‘ = adjunction-lawβ (poset-ofα΅ K) (poset-ofα΅ L) π» β πΆπΉπΏ (πα΅-is-top L (f πK)) \end{code} Left adjoints preserve the bottom element `π`. \begin{code} left-adjoint-preserves-π : (π»@(f , _) : P βmβ Q) (β@(g , _) : Q βmβ P) β (π» β£ β) holds β f πK οΌ πL left-adjoint-preserves-π π»@(f , _) β@(g , _) πΆπΉπΏ = β€-is-antisymmetric Q β β‘ where β : (f πK β€[ poset-ofα΅ L ] πL) holds β = adjunction-lawβ P Q π» β πΆπΉπΏ (πα΅-is-bottom K (g πL)) β‘ : (πL β€[ poset-ofα΅ L ] f πK) holds β‘ = πα΅-is-bottom L (f πK) \end{code} Right adjoints preserve binary meets. \begin{code} right-adjoint-preserves-β§ : (π»@(f , _) : P βmβ Q) (β@(g , _) : Q βmβ P) β (π» β£ β) holds β (x y : β£ Q β£β) β g (x β§β y) οΌ g x β§β g y right-adjoint-preserves-β§ π»@(f , ΞΌβ) β@(g , ΞΌβ) πΆπΉπΏ x y = β€-is-antisymmetric P β β‘ where β : (g (x β§β y) β€[ P ] g x β§β g y) holds β = β§-is-greatest K (g x) (g y) (g (x β§β y)) (β β , β β) where β β : (g (x β§β y) β€[ P ] g x) holds β β = ΞΌβ (x β§β y , x) (β§-is-a-lower-boundβ L x y) β β : (g (x β§β y) β€[ P ] g y) holds β β = ΞΌβ (x β§β y , y) (β§-is-a-lower-boundβ L x y) β‘ : (g x β§β g y β€[ P ] g (x β§β y)) holds β‘ = adjunction-lawβ P Q π» β πΆπΉπΏ (β§-is-greatest L x y (f (g x β§β g y)) (β‘β , β‘β)) where β‘β : (f (g x β§β g y) β€[ Q ] x) holds β‘β = adjunction-lawβ P Q π» β πΆπΉπΏ (β§-is-a-lower-boundβ K (g x) (g y)) β‘β : (f (g x β§β g y) β€[ Q ] y) holds β‘β = adjunction-lawβ P Q π» β πΆπΉπΏ (β§-is-a-lower-boundβ K (g x) (g y)) \end{code} Left adjoints preserve binary joins. \begin{code} left-adjoint-preserves-β¨ : (π»@(f , _) : P βmβ Q) (β@(g , _) : Q βmβ P) β (π» β£ β) holds β (x y : β£ P β£β) β f (x β¨β y) οΌ f x β¨β f y left-adjoint-preserves-β¨ π»@(f , ΞΌβ) β@(g , ΞΌβ) πΆπΉπΏ x y = β€-is-antisymmetric Q β β‘ where β : (f (x β¨β y) β€[ Q ] f x β¨β f y) holds β = adjunction-lawβ P Q π» β πΆπΉπΏ (β¨-is-least K x y (g (f x β¨β f y)) (β β , β β)) where β β : (x β€[ P ] g (f x β¨β f y)) holds β β = adjunction-lawβ P Q π» β πΆπΉπΏ (β¨-is-an-upper-boundβ L (f x) (f y)) β β : (y β€[ P ] g (f x β¨β f y)) holds β β = adjunction-lawβ P Q π» β πΆπΉπΏ (β¨-is-an-upper-boundβ L (f x) (f y)) β‘ : (f x β¨β f y β€[ Q ] f (x β¨β y)) holds β‘ = β¨-is-least L (f x) (f y) (f (x β¨β y)) (β‘β , β‘β) where β‘β : (f x β€α΅[ L ] f (x β¨β y)) holds β‘β = ΞΌβ (x , x β¨β y) (β¨-is-an-upper-boundβ K x y) β‘β : (f y β€α΅[ L ] f (x β¨β y)) holds β‘β = ΞΌβ (y , x β¨β y) (β¨-is-an-upper-boundβ K x y) \end{code}