diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2018-06-04 16:15:27 +0200 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2018-06-04 16:15:27 +0200 |
commit | f9e94fdcf74af274cb85be594ccfd353a63b048a (patch) | |
tree | 4e878e24bae03a166d6b5c2f7f8a1c6f671983ef /kernel | |
parent | 0a829c6ac232b0ea786716709b0d01c707548089 (diff) | |
parent | 5e310fc0456bc5123ab5aef255d61dde6ee8f4d7 (diff) |
Merge PR #7418: Actually take advantage of the normalization status of kernel closures.
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cClosure.ml | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/cClosure.ml b/kernel/cClosure.ml index 4da5f0f38..1d8861cbc 100644 --- a/kernel/cClosure.ml +++ b/kernel/cClosure.ml @@ -1051,7 +1051,12 @@ let norm_val info tab v = let inject c = mk_clos (subs_id 0) c -let whd_stack infos tab m stk = +let whd_stack infos tab m stk = match m.norm with +| Whnf | Norm -> + (** No need to perform [kni] nor to unlock updates because + every head subterm of [m] is [Whnf] or [Norm] *) + knh infos m stk +| Red | Cstr -> let k = kni infos tab m stk in let () = if !share then ignore (fapp_stack k) in (* to unlock Zupdates! *) k |