aboutsummaryrefslogtreecommitdiff
path: root/src/Util/Decidable.v
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-08-13 16:46:28 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-08-13 16:46:38 -0400
commit5da42750e1349ce761107902ef3039195adac62c (patch)
tree3bcf37d626161e07fc8a6e5a37ca3f421e23dccf /src/Util/Decidable.v
parent01373db10fe1fdc698731c2aad35952f9cf31292 (diff)
Add decidable equality with nil
Diffstat (limited to 'src/Util/Decidable.v')
-rw-r--r--src/Util/Decidable.v4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Util/Decidable.v b/src/Util/Decidable.v
index 014af738f..b68d799b3 100644
--- a/src/Util/Decidable.v
+++ b/src/Util/Decidable.v
@@ -90,6 +90,10 @@ Global Instance dec_eq_Empty_set : DecidableRel (@eq Empty_set) | 10. exact _. D
Global Instance dec_eq_prod {A B} `{DecidableRel (@eq A), DecidableRel (@eq B)} : DecidableRel (@eq (A * B)) | 10. exact _. Defined.
Global Instance dec_eq_option {A} `{DecidableRel (@eq A)} : DecidableRel (@eq (option A)) | 10. exact _. Defined.
Global Instance dec_eq_list {A} `{DecidableRel (@eq A)} : DecidableRel (@eq (list A)) | 10. exact _. Defined.
+Global Instance dec_eq_list_nil_r {A} {ls} : Decidable (ls = @nil A) | 10.
+Proof. destruct ls; [ left; reflexivity | right; abstract congruence ]. Defined.
+Global Instance dec_eq_list_nil_l {A} {ls} : Decidable (@nil A = ls) | 10.
+Proof. destruct ls; [ left; reflexivity | right; abstract congruence ]. Defined.
Global Instance dec_eq_sum {A B} `{DecidableRel (@eq A), DecidableRel (@eq B)} : DecidableRel (@eq (A + B)) | 10. exact _. Defined.
Global Instance dec_eq_sigT_hprop {A P} `{DecidableRel (@eq A), forall a : A, IsHProp (P a)} : DecidableRel (@eq (@sigT A P)) | 10. exact _. Defined.
Global Instance dec_eq_sig_hprop {A} {P : A -> Prop} `{DecidableRel (@eq A), forall a : A, IsHProp (P a)} : DecidableRel (@eq (@sig A P)) | 10. exact _. Defined.