diff options
-rw-r--r-- | theories/Init/Tactics.v | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/theories/Init/Tactics.v b/theories/Init/Tactics.v index 7b03a56c5..9a2856128 100644 --- a/theories/Init/Tactics.v +++ b/theories/Init/Tactics.v @@ -53,3 +53,12 @@ Ltac f_equal := Tactic Notation "rewrite_all" constr(eq) := repeat rewrite eq in *. Tactic Notation "rewrite_all" "<-" constr(eq) := repeat rewrite <- eq in *. + +(* Keeping a copy of an expression *) + +Ltac remembertac x a := + let x := fresh x in + let H := fresh "Heq" x in + (set (x:=a) in *; assert (H: x=a) by reflexivity; clearbody x). + +Tactic Notation "remember" constr(c) "as" ident(x) := remembertac x c. |