diff options
| author | aspiwack | 2013-11-02 15:38:52 +0000 |
|---|---|---|
| committer | aspiwack | 2013-11-02 15:38:52 +0000 |
| commit | c25d1d8967dbdadbad85e22c50e1b63f6091e1fe (patch) | |
| tree | 8a173d7e677ede5c0e9516d65aa06d2324211b31 | |
| parent | 4da1a1e094a08a35d9de5fd0be373edc01ea18d5 (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.ml4 | 13 |
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 |
