diff options
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 08114abc4..b9d26216b 100644 --- a/kernel/cClosure.ml +++ b/kernel/cClosure.ml @@ -1052,7 +1052,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 |