diff options
| author | Maxime Dénès | 2017-05-30 15:45:11 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2017-05-30 15:45:11 +0200 |
| commit | 0129c6d5481205dd7de82f52acde57bd4cbd4a26 (patch) | |
| tree | c3bf8262460dceaec943a2695848dcf702a352e3 | |
| parent | 45338c57d07b24f9daac2fe347a4bf0e62cdf8c0 (diff) | |
| parent | 1a169b01458829f9420aea9c855b1ef28e5c847d (diff) | |
Merge PR#693: A subtle bug in tclWITHHOLES.
| -rw-r--r-- | tactics/tacticals.ml | 3 | ||||
| -rw-r--r-- | test-suite/success/evars.v | 6 |
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. |
