diff options
| author | msozeau | 2013-06-04 16:13:28 +0000 |
|---|---|---|
| committer | msozeau | 2013-06-04 16:13:28 +0000 |
| commit | 038f4e1c7f572198cbf9c3b66384a308538ea6bc (patch) | |
| tree | 6c19534507328079543b7f2070248d2143deb647 /proofs/clenv.ml | |
| parent | fe008055f8adc7acd6af1483a8e7fef98d27e267 (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.ml | 10 |
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 |
