------------------------------------------------------------------------
-- The Agda standard library
--
-- The universal binary relation
------------------------------------------------------------------------

module Relation.Binary.Construct.Always where

open import Relation.Binary
open import Relation.Binary.Construct.Constant using (Const)
open import Data.Unit using (; tt)
open import Level using (Lift; lift)

------------------------------------------------------------------------
-- Definition

Always :  {a } {A : Set a}  Rel A 
Always = Const (Lift _ )

------------------------------------------------------------------------
-- Properties

module _ {a} (A : Set a)  where

  refl : Reflexive { = } {A} Always
  refl = lift tt

  sym : Symmetric { = } {A} Always
  sym _ = lift tt

  trans : Transitive { = } {A} Always
  trans _ _ = lift tt

  isEquivalence : IsEquivalence { = } {A} Always
  isEquivalence = record {}

  setoid : Setoid a 
  setoid = record
    { isEquivalence = isEquivalence
    }

------------------------------------------------------------------------
-- DEPRECATED NAMES
------------------------------------------------------------------------
-- Please use the new names as continuing support for the old names is
-- not guaranteed.

-- Version 0.17

Always-setoid = setoid
{-# WARNING_ON_USAGE Always-setoid
"Warning: Always-setoid was deprecated in v0.14.
Please use setoid instead."
#-}