From 09bc28f7a5da577b93823f7b3aebcbd091c12c2b Mon Sep 17 00:00:00 2001
From: Robbert Krebbers <mail@robbertkrebbers.nl>
Date: Thu, 25 Feb 2016 11:41:07 +0100
Subject: [PATCH] Move and rename some tactics.

---
 theories/tactics.v | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/theories/tactics.v b/theories/tactics.v
index c431b468..35d662bf 100644
--- a/theories/tactics.v
+++ b/theories/tactics.v
@@ -228,6 +228,14 @@ Ltac setoid_subst :=
   | H : @equiv ?A ?e _ ?x |- _ => symmetry in H; setoid_subst_aux (@equiv A e) x
   end.
 
+(** The tactic [intros_revert tac] introduces all foralls/arrows, performs tac,
+and then reverts them. *)
+Ltac intros_revert tac :=
+  lazymatch goal with
+  | |- ∀ _, _ => let H := fresh in intro H; intros_revert tac; revert H
+  | |- _ => tac
+  end.
+
 (** Given a tactic [tac2] generating a list of terms, [iter tac1 tac2]
 runs [tac x] for each element [x] until [tac x] succeeds. If it does not
 suceed for any element of the generated list, the whole tactic wil fail. *)
-- 
GitLab