From 1a169b01458829f9420aea9c855b1ef28e5c847d Mon Sep 17 00:00:00 2001 From: Hugo Herbelin Date: Fri, 26 May 2017 22:34:57 +0200 Subject: Fixing a subtle bug in tclWITHHOLES. This fixes Théo's bug on eset. --- tactics/tacticals.ml | 3 ++- test-suite/success/evars.v | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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. -- cgit v1.2.3