{-# OPTIONS --rewriting #-} module Calf.Data.Equality where open import Calf.Prelude open import Calf.CBPV open import Relation.Binary.PropositionalEquality public _≡⁺_ : val A → val A → tp⁺ a ≡⁺ a' = meta⁺ (a ≡ a') infix 4 ≡⁺-syntax ≡⁺-syntax : val A → val A → tp⁺ ≡⁺-syntax {A} = _≡⁺_ {A} syntax ≡⁺-syntax {A} a a' = a ≡⁺[ A ] a' postulate _≡⁻_ : cmp X → cmp X → tp⁻ ≡⁻/decode : {e e' : cmp X} → val (U (_≡⁻_ {X} e e')) ≡ val (_≡⁺_ {U X} e e') {-# REWRITE ≡⁻/decode #-} infix 4 ≡⁻-syntax ≡⁻-syntax : cmp X → cmp X → tp⁻ ≡⁻-syntax {X} = _≡⁻_ {X} syntax ≡⁻-syntax {X} e e' = e ≡⁻[ X ] e'