0 | module Decidable.Decidable
13 | isYes : Dec a -> Bool
14 | isYes (Yes _) = True
15 | isYes (No _) = False
19 | injective Refl = Refl
23 | injective Refl = Refl
27 | data IsYes : Dec a -> Type where
28 | ItIsYes : IsYes (Yes prf)
31 | Uninhabited (IsYes (No contra)) where
32 | uninhabited ItIsYes
impossible
36 | isItYes : (v : Dec a) -> Dec (IsYes v)
37 | isItYes (Yes _) = Yes ItIsYes
38 | isItYes (No _) = No absurd
43 | IsDecidable : (k : Nat) -> (ts : Vect k Type) -> Rel ts -> Type
44 | IsDecidable k ts p = liftRel ts p Dec
48 | interface Decidable k ts p where
49 | total decide : IsDecidable k ts p
54 | decision : (ts : Vect k Type) -> (p : Rel ts) -> Decidable k ts p => liftRel ts p Dec
55 | decision ts p = decide {ts} {p}