aboutsummaryrefslogtreecommitdiff
path: root/src/Util/ListUtil.v
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2018-03-27 09:11:06 -0400
committerGravatar Jason Gross <jgross@mit.edu>2018-03-27 09:11:06 -0400
commit88665b911de5e774b969e3372ed977b061235a77 (patch)
treeb809dc9096e3dee91c8764cd1ead816ff055aba3 /src/Util/ListUtil.v
parent02a847a95ffc6c64b6bf8ce0ba38ca3b3d797f38 (diff)
Add list_case, a definition for match on list
Diffstat (limited to 'src/Util/ListUtil.v')
-rw-r--r--src/Util/ListUtil.v9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Util/ListUtil.v b/src/Util/ListUtil.v
index ddb0d973e..68cc6a41f 100644
--- a/src/Util/ListUtil.v
+++ b/src/Util/ListUtil.v
@@ -11,6 +11,15 @@ Require Export Crypto.Util.Tactics.DestructHead.
Require Import Crypto.Util.Tactics.SpecializeBy.
Require Import Crypto.Util.Tactics.RewriteHyp.
+Definition list_case
+ {A} (P : list A -> Type) (N : P nil) (C : forall x xs, P (cons x xs))
+ (ls : list A)
+ : P ls
+ := match ls return P ls with
+ | nil => N
+ | cons x xs => C x xs
+ end.
+
Create HintDb distr_length discriminated.
Create HintDb simpl_set_nth discriminated.
Create HintDb simpl_update_nth discriminated.