aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
Diffstat (limited to 'proofs')
-rw-r--r--proofs/proof_global.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/proofs/proof_global.ml b/proofs/proof_global.ml
index 673f614e3a..bfbe3dd9ed 100644
--- a/proofs/proof_global.ml
+++ b/proofs/proof_global.ml
@@ -275,7 +275,11 @@ let close_proof ?feedback_id ~now fpl =
if poly || now then Future.force univs
else Proof.in_proof proof (fun x -> Evd.evar_universe_context x)
in
- let nf = Universes.nf_evars_and_universes_opt_subst (fun x -> None)
+ (* Because of dependent subgoals at the begining of proofs, we could
+ have existential variables in the initial types of goals, we need to
+ normalise them for the kernel. *)
+ let subst_evar k = Proof.in_proof proof (fun m -> Evd.existential_opt_value m k) in
+ let nf = Universes.nf_evars_and_universes_opt_subst subst_evar
(Evd.evar_universe_context_subst universes) in
let make_body =
if poly || now then