From b2474eda61ca4904030be84444ee2de3ece31e6f Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Thu, 9 Nov 2017 10:51:23 -0500 Subject: Add dec_Forall, dec_Exists --- src/Util/Decidable.v | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Util/Decidable.v') 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. -- cgit v1.2.3