1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495-------------------------------------------------------------------------- The Agda standard library---- Properties of min and max operators specified over a total preorder.------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} open import Algebra.Lattice.Bundlesopen import Algebra.Construct.NaturalChoice.Baseopen import Relation.Binary.Bundles using (TotalPreorder) module Algebra.Lattice.Construct.NaturalChoice.MinMaxOp {a ℓ₁ ℓ₂} {O : TotalPreorder a ℓ₁ ℓ₂} (minOp : MinOperator O) (maxOp : MaxOperator O) where open TotalPreorder Oopen MinOperator minOpopen MaxOperator maxOp open import Algebra.Lattice.Structures _≈_open import Algebra.Construct.NaturalChoice.MinMaxOp minOp maxOpopen import Relation.Binary.Reasoning.Preorder preorder -------------------------------------------------------------------------- Re-export properties of individual operators open import Algebra.Lattice.Construct.NaturalChoice.MinOp minOp publicopen import Algebra.Lattice.Construct.NaturalChoice.MaxOp maxOp public -------------------------------------------------------------------------- Structures ⊔-⊓-isLattice : IsLattice _⊔_ _⊓_⊔-⊓-isLattice = record { isEquivalence = isEquivalence ; ∨-comm = ⊔-comm ; ∨-assoc = ⊔-assoc ; ∨-cong = ⊔-cong ; ∧-comm = ⊓-comm ; ∧-assoc = ⊓-assoc ; ∧-cong = ⊓-cong ; absorptive = ⊔-⊓-absorptive } ⊓-⊔-isLattice : IsLattice _⊓_ _⊔_⊓-⊔-isLattice = record { isEquivalence = isEquivalence ; ∨-comm = ⊓-comm ; ∨-assoc = ⊓-assoc ; ∨-cong = ⊓-cong ; ∧-comm = ⊔-comm ; ∧-assoc = ⊔-assoc ; ∧-cong = ⊔-cong ; absorptive = ⊓-⊔-absorptive } ⊓-⊔-isDistributiveLattice : IsDistributiveLattice _⊓_ _⊔_⊓-⊔-isDistributiveLattice = record { isLattice = ⊓-⊔-isLattice ; ∨-distrib-∧ = ⊓-distrib-⊔ ; ∧-distrib-∨ = ⊔-distrib-⊓ } ⊔-⊓-isDistributiveLattice : IsDistributiveLattice _⊔_ _⊓_⊔-⊓-isDistributiveLattice = record { isLattice = ⊔-⊓-isLattice ; ∨-distrib-∧ = ⊔-distrib-⊓ ; ∧-distrib-∨ = ⊓-distrib-⊔ } -------------------------------------------------------------------------- Bundles ⊔-⊓-lattice : Lattice _ _⊔-⊓-lattice = record { isLattice = ⊔-⊓-isLattice } ⊓-⊔-lattice : Lattice _ _⊓-⊔-lattice = record { isLattice = ⊓-⊔-isLattice } ⊔-⊓-distributiveLattice : DistributiveLattice _ _⊔-⊓-distributiveLattice = record { isDistributiveLattice = ⊔-⊓-isDistributiveLattice } ⊓-⊔-distributiveLattice : DistributiveLattice _ _⊓-⊔-distributiveLattice = record { isDistributiveLattice = ⊓-⊔-isDistributiveLattice }