aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Dénès2017-05-30 15:45:11 +0200
committerMaxime Dénès2017-05-30 15:45:11 +0200
commit0129c6d5481205dd7de82f52acde57bd4cbd4a26 (patch)
treec3bf8262460dceaec943a2695848dcf702a352e3
parent45338c57d07b24f9daac2fe347a4bf0e62cdf8c0 (diff)
parent1a169b01458829f9420aea9c855b1ef28e5c847d (diff)
Merge PR#693: A subtle bug in tclWITHHOLES.
-rw-r--r--tactics/tacticals.ml3
-rw-r--r--test-suite/success/evars.v6
2 files changed, 8 insertions, 1 deletions
diff --git a/tactics/tacticals.ml b/tactics/tacticals.ml
index 66da9ee182..b3655d3735 100644
--- a/tactics/tacticals.ml
+++ b/tactics/tacticals.ml
@@ -487,6 +487,7 @@ module New = struct
let check_evars env sigma extsigma origsigma =
let rec is_undefined_up_to_restriction sigma evk =
+ if Evd.mem origsigma evk then None else
let evi = Evd.find sigma evk in
match Evd.evar_body evi with
| Evd.Evar_empty -> Some (evk,evi)
@@ -500,7 +501,7 @@ module New = struct
let rest =
Evd.fold_undefined (fun evk evi acc ->
match is_undefined_up_to_restriction sigma evk with
- | Some (evk',evi) when not (Evd.mem origsigma evk) -> (evk',evi)::acc
+ | Some (evk',evi) -> (evk',evi)::acc
| _ -> acc)
extsigma []
in
diff --git a/test-suite/success/evars.v b/test-suite/success/evars.v
index 4e2bf45118..4b2f7b53e1 100644
--- a/test-suite/success/evars.v
+++ b/test-suite/success/evars.v
@@ -414,4 +414,10 @@ Axiom test : forall P1 P2, P1 = P2 -> P1 -> P2.
Import EqNotations.
Definition test2 {A B:Type} {H:A=B} (a:A) : B := rew H in a.
+(* Check that pre-existing evars are not counted as newly undefined in "set" *)
+(* Reported by Théo *)
+Goal exists n : nat, n = n -> True.
+eexists.
+set (H := _ = _).
+Abort.