{-# OPTIONS --safe --without-K #-}
module Type.Properties where
open import Relation.Nullary using (_because_; yes; no)
open import Relation.Binary.Definitions using (Decidable)
open import Relation.Binary.PropositionalEquality using (_≡_ ; refl ; cong ; cong₂)
open import Type.Base
Ty-Decidable : Decidable (_≡_ {A = Ty})
Ty-Decidable ι ι = yes refl
Ty-Decidable ι (a ⇒ b) = no λ ()
Ty-Decidable ι (□ a) = no λ ()
Ty-Decidable (a ⇒ b) ι = no λ ()
Ty-Decidable (a ⇒ b) (c ⇒ d) with Ty-Decidable a c | Ty-Decidable b d
... | yes a≡c | yes b≡d = yes (cong₂ _⇒_ a≡c b≡d)
... | yes a≡c | no ¬b≡d = no λ { refl → ¬b≡d refl }
... | no ¬a≡c | yes b≡d = no λ { refl → ¬a≡c refl }
... | no ¬a≡c | no ¬b≡d = no λ { refl → ¬a≡c refl }
Ty-Decidable (a ⇒ b) (□ c) = no λ ()
Ty-Decidable (□ a) ι = no λ ()
Ty-Decidable (□ a) (b ⇒ c) = no λ ()
Ty-Decidable (□ a) (□ b) with Ty-Decidable a b
... | yes a≡b = yes (cong □_ a≡b)
... | no ¬a≡b = no λ { refl → ¬a≡b refl }
Generated from commit 2fd14c996b195ef101dff8919e837907ca0a08aa.