123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111{-# OPTIONS --cubical-compatible #-}module Class.Prelude where open import Agda.Primitive public using () renaming (Set to Type; Setω to Typeω)open import Level public using (Level; _⊔_; Lift; lift; 0ℓ) renaming (suc to lsuc)module Fun where open import Function.Base publicopen Fun public using (id; _∘_; _∘₂_; _∋_; _$_; const; constᵣ; flip; it; case_of_; _|>_) open import Data.Empty public using (⊥; ⊥-elim)open import Data.Unit public using (⊤; tt)open import Data.These public using (These; this; that; these)open import Data.Refinement public using (Refinement; _,_; value)module Prod where open import Data.Product publicopen Prod public using (_×_; _,_; proj₁; proj₂; Σ; ∃; ∃-syntax; -,_)module Sum where open import Data.Sum publicopen Sum public using (_⊎_; inj₁; inj₂)module 𝔹 where open import Data.Bool publicopen 𝔹 public using (Bool; true; false; not; if_then_else_; T)module Nat where open import Data.Nat public; open import Data.Nat.Properties publicopen Nat public using (ℕ; zero; suc)module Bin where open import Data.Nat.Binary publicopen Bin public using (ℕᵇ)module Fi where open import Data.Fin publicopen Fi public using (Fin; zero; suc)module Int where open import Data.Integer publicopen Int public using (ℤ; 0ℤ; 1ℤ; -_)module Q where open import Data.Rational publicopen Q public using (ℚ)module Fl where open import Data.Float publicopen Fl public using (Float)module Ch where open import Data.Char publicopen Ch public using (Char)module Str where open import Data.String publicopen Str public using (String)module Word where open import Data.Word64 publicopen Word public using (Word64)module Mb where open import Data.Maybe publicopen Mb public using (Maybe; just; nothing; maybe; fromMaybe)module L where open import Data.List publicopen L public using (List; []; _∷_; [_]; map; _++_; foldr; concat; concatMap; length)module L⁺ where open import Data.List.NonEmpty publicopen L⁺ public using (List⁺; _∷_; _⁺++⁺_; foldr₁)module V where open import Data.Vec publicopen V public using (Vec; []; _∷_) module Meta where open import Reflection public open import Reflection.AST public open import Reflection.TCM publicopen Meta public using (TC; Arg; Abs) open import Relation.Nullary public using (¬_; Dec; yes; no; contradiction; Irrelevant)open import Relation.Nullary.Decidable public using (⌊_⌋; dec-yes; isYes) renaming (map′ to mapDec)open import Relation.Unary public using (Pred) renaming (Decidable to Decidable¹)open import Relation.Binary public using ( REL; Rel; DecidableEquality ; IsEquivalence; Setoid ) renaming (Decidable to Decidable²)module _ {a b c} where 3REL : (A : Type a) (B : Type b) (C : Type c) (ℓ : Level) → Type _ 3REL A B C ℓ = A → B → C → Type ℓ Decidable³ : ∀ {A B C ℓ} → 3REL A B C ℓ → Type _ Decidable³ _~_~_ = ∀ x y z → Dec (x ~ y ~ z)open import Relation.Binary.PropositionalEquality public using (_≡_; refl; sym; cong; subst; trans) variable ℓ ℓ′ ℓ″ ℓ‴ : Level A B C : Type ℓ x y : A P Q : Pred A ℓ R R′ : Rel A ℓ n m : ℕ module Alg (_~_ : Rel A ℓ) where open import Algebra.Definitions _~_ publicmodule Alg≡ {ℓ} {A : Type ℓ} = Alg (_≡_ {A = A}) itω : ∀ {A : Typeω} → ⦃ A ⦄ → Aitω ⦃ x ⦄ = x