aboutsummaryrefslogtreecommitdiff
path: root/pretyping
diff options
context:
space:
mode:
authorMaxime Dénès2018-07-26 11:11:09 +0200
committerMaxime Dénès2018-07-26 11:11:09 +0200
commit3f2979c5f0fc289f41cc0e36b9914b3c8f7f77c5 (patch)
treebd8f17ee9be6175c879bb1ef972b6fe7f97f13a4 /pretyping
parentb13c954c49f546ecbbc5f73d32e69348408e2ad4 (diff)
parent2ff9efcf617318fdfec9966cf3690d1fc4e56da7 (diff)
Merge PR #8122: Fix #8119: anomalies in vm_compute with let and evars.
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/vnorm.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/pretyping/vnorm.ml b/pretyping/vnorm.ml
index c944080503..255707dc7b 100644
--- a/pretyping/vnorm.ml
+++ b/pretyping/vnorm.ml
@@ -209,6 +209,9 @@ and nf_evar env sigma evk stk =
| Zapp args :: stk ->
(** We assume that there is no consecutive Zapp nodes in a VM stack. Is that
really an invariant? *)
+ (** Let-bound arguments are present in the evar arguments but not in the
+ type, so we turn the let into a product. *)
+ let hyps = Context.Named.drop_bodies hyps in
let fold accu d = Term.mkNamedProd_or_LetIn d accu in
let t = List.fold_left fold concl hyps in
let t, args = nf_args env sigma args t in