aboutsummaryrefslogtreecommitdiff
path: root/src/Util/Decidable.v
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-09 10:51:23 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-09 10:51:23 -0500
commitb2474eda61ca4904030be84444ee2de3ece31e6f (patch)
treeac83a9bfe4844cea305c1360e837555d4bcc9d8c /src/Util/Decidable.v
parent4f64644c8ae6ee539526575d8634e512058c4813 (diff)
Add dec_Forall, dec_Exists
Diffstat (limited to 'src/Util/Decidable.v')
-rw-r--r--src/Util/Decidable.v8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Util/Decidable.v b/src/Util/Decidable.v
index b68d799b3..974510f61 100644
--- a/src/Util/Decidable.v
+++ b/src/Util/Decidable.v
@@ -1,6 +1,7 @@
(** Typeclass for decidable propositions *)
Require Import Coq.Logic.Eqdep_dec.
+Require Import Coq.Lists.List.
Require Import Crypto.Util.FixCoqMistakes.
Require Import Crypto.Util.Sigma.
Require Import Crypto.Util.HProp.
@@ -113,6 +114,13 @@ Global Instance dec_le_Z : DecidableRel BinInt.Z.le := ZArith_dec.Z_le_dec.
Global Instance dec_gt_Z : DecidableRel BinInt.Z.gt := ZArith_dec.Z_gt_dec.
Global Instance dec_ge_Z : DecidableRel BinInt.Z.ge := ZArith_dec.Z_ge_dec.
+Global Instance dec_Forall {A P} {HD : forall x : A, Decidable (P x)} {ls}
+ : Decidable (Forall P ls)
+ := @Forall_dec A P HD ls.
+Global Instance dec_Exists {A P} {HD : forall x : A, Decidable (P x)} {ls}
+ : Decidable (Exists P ls)
+ := @Exists_dec A P ls HD.
+
Global Instance dec_match_pair {A B} {P : A -> B -> Prop} {x : A * B}
{HD : Decidable (P (fst x) (snd x))}
: Decidable (let '(a, b) := x in P a b) | 1.