{-# OPTIONS --type-in-type
#-}
open import NeilPrelude
module CompleteTotalLattice {A : Set}
(_≤_ : A → A → Set)
(_⊔_ : A → A → A)
(_⊓_ : A → A → A)
(⊥ : A)
(⊤ : A)
(antisym : {a b : A} → a ≤ b → b ≤ a → a ≡ b)
(transit : {a b c : A} → a ≤ b → b ≤ c → a ≤ c)
(total : {a b : A} → (a ≤ b) ⊎ (b ≤ a))
(supL : {a b : A} → a ≤ (a ⊔ b))
(supR : {a b : A} → a ≤ (b ⊔ a))
(leastSup : {x a b : A} → a ≤ x → b ≤ x → (a ⊔ b) ≤ x)
(infL : {a b : A} → (a ⊓ b) ≤ a)
(infR : {a b : A} → (b ⊓ a) ≤ a)
(mostInf : {x a b : A} → x ≤ a → x ≤ b → x ≤ (a ⊓ b))
(bottom : {a : A} → ⊥ ≤ a)
(top : {a : A} → a ≤ ⊤)
where
import CompleteTotalOrder
open module CTO-⊔ = CompleteTotalOrder _≤_ _⊔_ ⊥ antisym transit total supL supR leastSup bottom
open module CTO-⊓ = CompleteTotalOrder _≥_ _⊓_ ⊤ (flip antisym) (flip transit) total infL infR mostInf top