Properties

---
title:       Distributive lattices
author:      Ayberk Tosun
start-date:  2024-02-14
---


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

open import UF.FunExt
open import UF.PropTrunc

module Locales.DistributiveLattice.Properties
        (fe : Fun-Ext)
        (pt : propositional-truncations-exist)
       where

open import Locales.DistributiveLattice.Definition fe pt
open import MLTT.List
open import MLTT.Spartan
open import UF.SubtypeClassifier
open import UF.Logic

open AllCombinators pt fe hiding (_∨_; _∧_)



module _ (L : DistributiveLattice 𝓤) where

 open DistributiveLattice L


𝟎 is an annihilator for _∧_.


 ∧-annihilator : (x : ∣ L ∣ᵈ) → x ∧ 𝟎 = 𝟎
 ∧-annihilator x = only-𝟎-is-below-𝟎ᵈ L (x ∧ 𝟎) †
  where
   ‡ : orderᵈ-∨ L (x ∧ 𝟎) 𝟎 holds
   ‡ = ∨-absorptive₃ 𝟎 x

   † : ((x ∧ 𝟎) ≤ᵈ[ L ] 𝟎) holds
   † = orderᵈ-∨-implies-orderᵈ L ‡



 join-listᵈ : List ∣ L ∣ᵈ → ∣ L ∣ᵈ
 join-listᵈ []       = 𝟎
 join-listᵈ (x ∷ xs) = x ∨ join-listᵈ xs

 join-list-maps-∨-to-++ : (xs ys : List ∣ L ∣ᵈ)
                        → join-listᵈ xs ∨ join-listᵈ ys = join-listᵈ (xs ++ ys)
 join-list-maps-∨-to-++ []        ys = ∨-unit₁ (join-listᵈ ys)
 join-list-maps-∨-to-++ (x₀ ∷ xs) ys =
  join-listᵈ (x₀ ∷ xs) ∨ join-listᵈ ys   =⟨refl⟩
  (x₀ ∨ join-listᵈ xs) ∨ join-listᵈ ys   =⟨ Ⅰ    ⟩
  x₀ ∨ (join-listᵈ xs ∨ join-listᵈ ys)   =⟨ Ⅱ    ⟩
  x₀ ∨ (join-listᵈ (xs ++ ys))           =⟨refl⟩
  join-listᵈ (x₀ ∷ xs ++ ys)             ∎
   where
    Ⅰ = ∨-associative x₀ (join-listᵈ xs) (join-listᵈ ys) ⁻¹
    Ⅱ = ap (x₀ ∨_) (join-list-maps-∨-to-++ xs ys)


 finite-distributivity : (xs : List ∣ L ∣ᵈ) (y : ∣ L ∣ᵈ)
                       → y ∧ join-listᵈ xs = join-listᵈ (map (y ∧_) xs)
 finite-distributivity []       y = ∧-annihilator y
 finite-distributivity (x ∷ xs) y =
  y ∧ join-listᵈ (x ∷ xs)            =⟨refl⟩
  y ∧ (x ∨ join-listᵈ xs)            =⟨ Ⅰ    ⟩
  (y ∧ x) ∨ (y ∧ join-listᵈ xs)      =⟨ Ⅱ    ⟩
  join-listᵈ (map (y ∧_) (x ∷ xs))   ∎
   where
    Ⅰ = distributivityᵈ y x (join-listᵈ xs)
    Ⅱ = ap ((y ∧ x) ∨_) (finite-distributivity xs y)