---
title:         Properties of distributive lattice isomorphisms
author:        Ayberk Tosun
date-started:  2024-06-01
dates-updated: [2024-06-09]
---

In this module, we collect properties of distributive lattice isomorphisms.

\begin{code}

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

open import MLTT.Spartan hiding (𝟚; β‚€; ₁)
open import UF.FunExt
open import UF.PropTrunc
open import UF.Size
open import UF.Subsingletons
open import UF.UA-FunExt
open import UF.Univalence

module Locales.DistributiveLattice.Isomorphism-Properties
        (ua : Univalence)
        (pt : propositional-truncations-exist)
        (sr : Set-Replacement pt)
       where

private
 fe : Fun-Ext
 fe {𝓀} {π“₯} = univalence-gives-funext' 𝓀 π“₯ (ua 𝓀) (ua (𝓀 βŠ” π“₯))

 pe : Prop-Ext
 pe {𝓀} = univalence-gives-propext (ua 𝓀)

open import Locales.DistributiveLattice.Definition fe pt
open import Locales.DistributiveLattice.Isomorphism fe pt
open import Locales.SIP.DistributiveLatticeSIP ua pt sr
open import UF.Logic

open AllCombinators pt fe renaming (_∧_ to _βˆ§β‚š_)

\end{code}

We work in a module parameterized by 𝓀-distributive-lattices `K` and `L`.

\begin{code}

module DistributiveLatticeIsomorphismProperties
        (K : DistributiveLattice 𝓀)
        (L : DistributiveLattice 𝓀)
       where

 open DistributiveLatticeIsomorphisms K L

\end{code}

Transport lemma for distributive lattices.

\begin{code}

 β‰…dβ‰…-transport : (K L : DistributiveLattice 𝓀)
               β†’ (B : DistributiveLattice 𝓀 β†’ 𝓣  Μ‡)
               → K ≅d≅ L
               β†’ B K
               β†’ B L
 β‰…dβ‰…-transport K L B iso = transport B †
  where
   † : K = L
   † = isomorphic-distributive-lattices-are-equal K L iso

\end{code}

Added on 2024-06-09.

Distributive lattice isomorphisms are symmetric.

\begin{code}

β‰…d-sym : (K : DistributiveLattice 𝓀)
       β†’ (L : DistributiveLattice π“₯)
       → K ≅d≅ L → L ≅d≅ K
β‰…d-sym K L 𝒾 =
 record
  { π“ˆ           = 𝓇 𝒾
  ; 𝓇           = π“ˆ 𝒾
  ; r-cancels-s = s-cancels-r 𝒾
  ; s-cancels-r = r-cancels-s 𝒾
  }
   where
    open DistributiveLatticeIsomorphisms.Isomorphismᡈᡣ

\end{code}

End of addition.