open import Definition.Typed.Restrictions
open import Graded.Modality
open import Graded.Mode
module Definition.Typed.Decidable.Internal.Equality
{a b} {M : Set a} {Mode : Set b}
{π : Modality M}
(π : IsMode Mode π)
(R : Type-restrictions π)
where
open import Definition.Typed.Decidable.Internal.Term π R
import Definition.Untyped M as U
open import Tools.Fin as Fin
open import Tools.Maybe
open import Tools.Nat as N using (Nat)
open import Tools.PropositionalEquality
import Tools.Vec as Vec
private variable
m n : Nat
c : Constants
infix 4 _βα΅_
_βα΅_ : (tβ tβ : Termα΅ n) β Maybe (tβ β‘ tβ)
var x βα΅ var y =
cong var <$> decβmaybe (x ββ±½ y)
π βα΅ π =
just refl
π βα΅ π =
just refl
Ο βα΅ Ο =
just refl
tββ + tββ βα΅ tββ + tββ =
congβ _+_ <$> tββ βα΅ tββ β tββ βα΅ tββ
tββ Β· tββ βα΅ tββ Β· tββ =
congβ _Β·_ <$> tββ βα΅ tββ β tββ βα΅ tββ
tββ β§ tββ βα΅ tββ β§ tββ =
congβ _β§_ <$> tββ βα΅ tββ β tββ βα΅ tββ
ββ tβ ββ βα΅ ββ tβ ββ =
cong ββ_ββ <$> tβ βα΅ tβ
_ βα΅ _ =
nothing
infix 4 _βΛ’_
_βΛ’_ : (tβ tβ : TermΛ’ n) β Maybe (tβ β‘ tβ)
var x βΛ’ var y =
cong var <$> decβmaybe (x ββ±½ y)
π€ βΛ’ π€ =
just refl
π¨ βΛ’ π¨ =
just refl
_ βΛ’ _ =
nothing
infix 4 _βα΅α΅_
_βα΅α΅_ : (tβ tβ : Termα΅α΅ m n) β Maybe (tβ β‘ tβ)
var x βα΅α΅ var y =
cong var <$> decβmaybe (x ββ±½ y)
BMΞ βα΅α΅ BMΞ =
just refl
BMΞ£ sβ βα΅α΅ BMΞ£ sβ =
cong BMΞ£ <$> sβ βΛ’ sβ
_ βα΅α΅ _ =
nothing