aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2013-05-14 18:38:07 +0000
committerherbelin2013-05-14 18:38:07 +0000
commit23a51bab686dd0ceaa9a87b09beb49d0ee0575c4 (patch)
tree9c7cc50cfe22478c16cdf654c076fc8dba6075eb
parenta8377ede7e0e1e6d2e39d16050fbe6fddc8158d4 (diff)
"change ... in ..." and "simpl ... in ..." now consider nested
occurrences (possible source of incompatibilities since this alters the numbering of occurrences). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16525 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--CHANGES4
-rw-r--r--pretyping/tacred.ml3
2 files changed, 6 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 71bc1cc720..d79b1d02ff 100644
--- a/CHANGES
+++ b/CHANGES
@@ -43,6 +43,10 @@ Tactics
behaves like if matching on "?X pat1 ... patn", i.e. accepting "_"
to be instantiated by an applicative term (experimental at this
stage, potential source of incompatibilities).
+- "change ... in ..." and "simpl ... in ..." now consider nested
+ occurrences (possible source of incompatibilities since this alters
+ the numbering of occurrences).
+
Program
diff --git a/pretyping/tacred.ml b/pretyping/tacred.ml
index 08d2c7cdf4..31cf52eace 100644
--- a/pretyping/tacred.ml
+++ b/pretyping/tacred.ml
@@ -897,7 +897,8 @@ let contextually byhead (occs,c) f env sigma t =
else not (List.mem !pos locs) in
incr pos;
if ok then
- f subst env sigma t
+ let subst' = List.map (on_snd (traverse envc)) subst in
+ f subst' env sigma t
else if byhead then
(* find other occurrences of c in t; TODO: ensure left-to-right *)
let (f,l) = destApp t in