aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraspiwack2013-11-02 15:38:52 +0000
committeraspiwack2013-11-02 15:38:52 +0000
commitc25d1d8967dbdadbad85e22c50e1b63f6091e1fe (patch)
tree8a173d7e677ede5c0e9516d65aa06d2324211b31
parent4da1a1e094a08a35d9de5fd0be373edc01ea18d5 (diff)
Refine does beta-reductions.
To avoid the unpleasantness of having beta-redex in terms after an application of refine, refine is followed by lazy beta. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@17006 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/extratactics.ml413
1 files changed, 12 insertions, 1 deletions
diff --git a/tactics/extratactics.ml4 b/tactics/extratactics.ml4
index e4bcf658ba..436e3bd5be 100644
--- a/tactics/extratactics.ml4
+++ b/tactics/extratactics.ml4
@@ -321,8 +321,19 @@ END
(**********************************************************************)
(* Refine *)
+open Genredexpr
+open Locus
+
+let refine c =
+ Proofview.tclTHEN
+ (Tactics.New.refine c)
+ (Proofview.V82.tactic (Tactics.reduce
+ (Lazy {rBeta=true;rIota=false;rZeta=false;rDelta=false;rConst=[]})
+ {onhyps=None; concl_occs=AllOccurrences }
+ ))
+
TACTIC EXTEND refine
- [ "refine" casted_open_constr(c) ] -> [ Tactics.New.refine c ]
+ [ "refine" casted_open_constr(c) ] -> [ refine c ]
END
let refine_tac = Tactics.New.refine