1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859-------------------------------------------------------------------------- The Agda standard library---- Creates trivially indexed records from their non-indexed counterpart.------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Relation.Binary.Indexed.Heterogeneous.Construct.Trivial {i} {I : Set i} where open import Relation.Binary.Core using (Rel)open import Relation.Binary.Bundles using (Setoid; Preorder)open import Relation.Binary.Structures using (IsEquivalence; IsPreorder)open import Relation.Binary.Indexed.Heterogeneous -------------------------------------------------------------------------- Structures module _ {a} {A : Set a} where private Aᵢ : I → Set a Aᵢ i = A isIndexedEquivalence : ∀ {ℓ} {_≈_ : Rel A ℓ} → IsEquivalence _≈_ → IsIndexedEquivalence Aᵢ _≈_ isIndexedEquivalence isEq = record { refl = refl ; sym = sym ; trans = trans } where open IsEquivalence isEq isIndexedPreorder : ∀ {ℓ₁ ℓ₂} {_≈_ : Rel A ℓ₁} {_∼_ : Rel A ℓ₂} → IsPreorder _≈_ _∼_ → IsIndexedPreorder Aᵢ _≈_ _∼_ isIndexedPreorder isPreorder = record { isEquivalence = isIndexedEquivalence isEquivalence ; reflexive = reflexive ; trans = trans } where open IsPreorder isPreorder -------------------------------------------------------------------------- Bundles indexedSetoid : ∀ {a ℓ} → Setoid a ℓ → IndexedSetoid I a ℓindexedSetoid S = record { isEquivalence = isIndexedEquivalence isEquivalence } where open Setoid S indexedPreorder : ∀ {a ℓ₁ ℓ₂} → Preorder a ℓ₁ ℓ₂ → IndexedPreorder I a ℓ₁ ℓ₂indexedPreorder O = record { isPreorder = isIndexedPreorder isPreorder } where open Preorder O