aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test-suite/failure/evarlemma.v3
-rw-r--r--toplevel/lemmas.ml5
2 files changed, 6 insertions, 2 deletions
diff --git a/test-suite/failure/evarlemma.v b/test-suite/failure/evarlemma.v
new file mode 100644
index 0000000000..ea753e79c5
--- /dev/null
+++ b/test-suite/failure/evarlemma.v
@@ -0,0 +1,3 @@
+(* Check success of inference of evars in the context of lemmas *)
+
+Lemma foo x : True.
diff --git a/toplevel/lemmas.ml b/toplevel/lemmas.ml
index 48666c5145..247fbbc0a5 100644
--- a/toplevel/lemmas.ml
+++ b/toplevel/lemmas.ml
@@ -312,10 +312,11 @@ let start_proof_with_initialization kind recguard thms hook =
let start_proof_com kind thms hook =
let evdref = ref (create_evar_defs Evd.empty) in
- let env = Global.env () in
+ let env0 = Global.env () in
let thms = List.map (fun (sopt,(bl,t,guard)) ->
- let (env, ctx), imps = interp_context_evars evdref env bl in
+ let (env, ctx), imps = interp_context_evars evdref env0 bl in
let t', imps' = interp_type_evars_impls ~evdref env t in
+ Sign.iter_rel_context (check_evars env Evd.empty !evdref) ctx;
let len = List.length ctx in
(compute_proof_name sopt,
(nf_isevar !evdref (it_mkProd_or_LetIn t' ctx),