aboutsummaryrefslogtreecommitdiff
path: root/proofs/clenv.ml
diff options
context:
space:
mode:
authormsozeau2013-06-04 16:13:28 +0000
committermsozeau2013-06-04 16:13:28 +0000
commit038f4e1c7f572198cbf9c3b66384a308538ea6bc (patch)
tree6c19534507328079543b7f2070248d2143deb647 /proofs/clenv.ml
parentfe008055f8adc7acd6af1483a8e7fef98d27e267 (diff)
Start documenting new [rewrite_strat] tactic that applies rewriting
according to a given strategy. - Enhance the hints/lemmas strategy to support "using tac" comming from rewrite hints to solve side-conditions. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16558 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs/clenv.ml')
-rw-r--r--proofs/clenv.ml10
1 files changed, 5 insertions, 5 deletions
diff --git a/proofs/clenv.ml b/proofs/clenv.ml
index bc6da8c347..3f3b40bedb 100644
--- a/proofs/clenv.ml
+++ b/proofs/clenv.ml
@@ -308,19 +308,19 @@ let clenv_unique_resolver ?(flags=default_unify_flags) clenv gl =
*)
let clenv_pose_metas_as_evars clenv dep_mvs =
- let rec fold clenv = function
- | [] -> clenv
+ let rec fold clenv l = function
+ | [] -> clenv, l
| mv::mvs ->
let ty = clenv_meta_type clenv mv in
(* Postpone the evar-ization if dependent on another meta *)
(* This assumes no cycle in the dependencies - is it correct ? *)
- if occur_meta ty then fold clenv (mvs@[mv])
+ if occur_meta ty then fold clenv l (mvs@[mv])
else
let (evd,evar) =
new_evar clenv.evd (cl_env clenv) ~src:(Loc.ghost,Evar_kinds.GoalEvar) ty in
let clenv = clenv_assign mv evar {clenv with evd=evd} in
- fold clenv mvs in
- fold clenv dep_mvs
+ fold clenv (destEvar evar::l) mvs in
+ fold clenv [] dep_mvs
let evar_clenv_unique_resolver = clenv_unique_resolver