aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsozeau2009-01-23 17:25:40 +0000
committermsozeau2009-01-23 17:25:40 +0000
commit62aab1996e82b07c5bb6f537d86f6d38ab9422fb (patch)
tree5078c7571e09eb9fe2bd87d697bfcf31b3612239
parent9e40a64bc3f50fa6ec2b42b988b09bc5168eb7a0 (diff)
Really compare evar maps in progress, due to merging in apply and other
tactics, an unchanged map may have a different adress. Part of the fix for making Ynot work in 8.2. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11852 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/evd.ml3
-rw-r--r--pretyping/evd.mli1
-rw-r--r--proofs/refiner.ml2
3 files changed, 5 insertions, 1 deletions
diff --git a/pretyping/evd.ml b/pretyping/evd.ml
index a76df2dfb9..400ad2f7a8 100644
--- a/pretyping/evd.ml
+++ b/pretyping/evd.ml
@@ -300,6 +300,9 @@ let is_defined (sigma,_) = is_defined sigma
let existential_value (sigma,_) = existential_value sigma
let existential_type (sigma,_) = existential_type sigma
let existential_opt_value (sigma,_) = existential_opt_value sigma
+let eq_evar_map x y = x == y ||
+ (Evarmap.equal eq_evar_info (fst x) (fst y) &&
+ UniverseMap.equal (=) (snd x) (snd y))
let merge e e' = fold (fun n v sigma -> add sigma n v) e' e
diff --git a/pretyping/evd.mli b/pretyping/evd.mli
index 0e3212813d..6694e63dda 100644
--- a/pretyping/evd.mli
+++ b/pretyping/evd.mli
@@ -52,6 +52,7 @@ val evar_unfiltered_env : evar_info -> env
val evar_env : evar_info -> env
type evar_map
+val eq_evar_map : evar_map -> evar_map -> bool
val empty : evar_map
diff --git a/proofs/refiner.ml b/proofs/refiner.ml
index 0014e9f72c..7240e8b858 100644
--- a/proofs/refiner.ml
+++ b/proofs/refiner.ml
@@ -462,7 +462,7 @@ let weak_progress gls ptree =
(not (same_goal (List.hd gls.it) ptree.it))
let progress gls ptree =
- (not (ptree.sigma == gls.sigma)) ||
+ (not (eq_evar_map ptree.sigma gls.sigma)) ||
(weak_progress gls ptree)