aboutsummaryrefslogtreecommitdiff
path: root/src/Util/Tuple.v
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-09 16:07:03 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-09 16:07:03 -0500
commit818788035fb8130dca0aaf6a2ef78678ec437245 (patch)
treebca18b89d6d90e928a79bed25b1fce7b901b7461 /src/Util/Tuple.v
parentb2474eda61ca4904030be84444ee2de3ece31e6f (diff)
Add fieldwise_eq_iff
Diffstat (limited to 'src/Util/Tuple.v')
-rw-r--r--src/Util/Tuple.v12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Util/Tuple.v b/src/Util/Tuple.v
index fc216c29f..10f431990 100644
--- a/src/Util/Tuple.v
+++ b/src/Util/Tuple.v
@@ -567,6 +567,18 @@ Section fieldwise_map.
Proof. rewrite fieldwise_map_eq; reflexivity. Qed.
End fieldwise_map.
+Lemma fieldwise'_eq_iff {A n} x y : fieldwise' (@eq A) x y <-> @eq (tuple' A n) x y.
+Proof.
+ induction n as [|n IHn]; [ reflexivity | ].
+ simpl; rewrite IHn; split; [ destruct x, y | ]; simpl; intuition (subst; auto).
+Qed.
+
+Lemma fieldwise_eq_iff {A n} x y : fieldwise (@eq A) x y <-> @eq (tuple A n) x y.
+Proof.
+ destruct n; [ destruct x, y | apply fieldwise'_eq_iff ]; simpl.
+ tauto.
+Qed.
+
Fixpoint fieldwiseb' {A B} (n:nat) (R:A->B->bool) (a:tuple' A n) (b:tuple' B n) {struct n} : bool.
destruct n; simpl @tuple' in *.
{ exact (R a b). }