open import Definition.Typed.Restrictions
open import Graded.Modality
open import Tools.Relation
import Tools.PropositionalEquality as PE
module Definition.Typed.Decidable.Equality
{a} {M : Set a}
{𝕄 : Modality M}
(R : Type-restrictions 𝕄)
(_≟_ : Decidable (PE._≡_ {A = M}))
where
open import Definition.Untyped M
open import Definition.Typed R
open import Definition.Conversion.Decidable R _≟_
open import Definition.Conversion.Soundness R
open import Definition.Conversion.Consequences.Completeness R
open import Tools.Nat
private
variable
n : Nat
Γ : Con Term n
decEq : ∀ {A B} → Γ ⊢ A → Γ ⊢ B → Dec (Γ ⊢ A ≡ B)
decEq ⊢A ⊢B = map soundnessConv↑ completeEq
(decConv↑ (completeEq (refl ⊢A))
(completeEq (refl ⊢B)))
decEqTerm : ∀ {t u A} → Γ ⊢ t ∷ A → Γ ⊢ u ∷ A → Dec (Γ ⊢ t ≡ u ∷ A)
decEqTerm ⊢t ⊢u = map soundnessConv↑Term completeEqTerm
(decConv↑Term (completeEqTerm (refl ⊢t))
(completeEqTerm (refl ⊢u)))