aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2019-02-04 12:18:34 +0100
committerPierre-Marie Pédrot2019-02-04 12:18:34 +0100
commit6adc5763894fe6da025fd46f5b879af4cc7e99ec (patch)
tree6c832ace84b7f0f19170cd2eaedb3617c16bef48
parent019123cf911949480d300beba30b63db19c46b7b (diff)
parent50bf6109ad0625c81c9776f9ab823a501c574d5b (diff)
Merge PR #9452: [proof] optimize proof always works on incomplete proofs
Ack-by: SkySkimmer Ack-by: ejgallego Ack-by: gares Reviewed-by: ppedrot
-rw-r--r--engine/proofview.ml2
-rw-r--r--test-suite/bugs/closed/bug_9451.v8
2 files changed, 9 insertions, 1 deletions
diff --git a/engine/proofview.ml b/engine/proofview.ml
index cf4224bbdb..d4ad53ff5f 100644
--- a/engine/proofview.ml
+++ b/engine/proofview.ml
@@ -39,7 +39,7 @@ let proofview p =
let compact el ({ solution } as pv) =
let nf c = Evarutil.nf_evar solution c in
- let nf0 c = EConstr.(to_constr solution (of_constr c)) in
+ let nf0 c = EConstr.(to_constr ~abort_on_undefined_evars:false solution (of_constr c)) in
let size = Evd.fold (fun _ _ i -> i+1) solution 0 in
let new_el = List.map (fun (t,ty) -> nf t, nf ty) el in
let pruned_solution = Evd.drop_all_defined solution in
diff --git a/test-suite/bugs/closed/bug_9451.v b/test-suite/bugs/closed/bug_9451.v
new file mode 100644
index 0000000000..03bb0433f1
--- /dev/null
+++ b/test-suite/bugs/closed/bug_9451.v
@@ -0,0 +1,8 @@
+Goal False.
+cut True.
+assert False.
+evar (x : True).
+let v := open_constr:(_) in idtac. all: exfalso; clear.
+Optimize Proof.
+(* Error: Anomaly "grounding a non evar-free term" *)
+Abort All.