123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263-------------------------------------------------------------------------- The Agda standard library---- Properties satisfied by preorders------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} open import Relation.Binary.Bundles using (Preorder; Setoid)open import Relation.Binary.Structures using (IsPreorder) module Relation.Binary.Properties.Preorder {p₁ p₂ p₃} (P : Preorder p₁ p₂ p₃) where open import Function.Base using (flip)open import Data.Product.Base as Product using (_×_; _,_; swap)import Relation.Binary.Construct.Flip.EqAndOrd as EqAndOrd open Preorder P -------------------------------------------------------------------------- The converse relation is also a preorder. converse-isPreorder : IsPreorder _≈_ _≳_converse-isPreorder = EqAndOrd.isPreorder isPreorder converse-preorder : Preorder p₁ p₂ p₃converse-preorder = EqAndOrd.preorder P -------------------------------------------------------------------------- For every preorder there is an induced equivalence InducedEquivalence : Setoid _ _InducedEquivalence = record { _≈_ = λ x y → x ≲ y × x ≳ y ; isEquivalence = record { refl = (refl , refl) ; sym = swap ; trans = Product.zip trans (flip trans) } } -------------------------------------------------------------------------- DEPRECATED NAMES-------------------------------------------------------------------------- Please use the new names as continuing support for the old names is-- not guaranteed. -- Version 2.0 invIsPreorder = converse-isPreorder{-# WARNING_ON_USAGE invIsPreorder"Warning: invIsPreorder was deprecated in v2.0.Please use converse-isPreorder instead."#-}invPreorder = converse-preorder{-# WARNING_ON_USAGE invPreorder"Warning: invPreorder was deprecated in v2.0.Please use converse-preorder instead."#-}