aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/tacred.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2017-08-24 16:36:52 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2017-08-25 14:03:48 +0200
commitae43495dee6e3f4ab407a49050ea2546ab6bd428 (patch)
tree535d685cb69430becfb7c922cda0336cae50a76d /pretyping/tacred.ml
parent7b1ff0c70a3ba9cd3cfa5aa6723f8f8a2b6e5396 (diff)
primproj: fix bug 5245, hnf on proj with simpl never flag.
Diffstat (limited to 'pretyping/tacred.ml')
-rw-r--r--pretyping/tacred.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/pretyping/tacred.ml b/pretyping/tacred.ml
index 76f35f76f..708788ab8 100644
--- a/pretyping/tacred.ml
+++ b/pretyping/tacred.ml
@@ -557,6 +557,12 @@ let match_eval_ref_value env sigma constr stack =
Some (EConstr.of_constr (constant_value_in env (sp, u)))
else
None
+ | Proj (p, c) when not (Projection.unfolded p) ->
+ reduction_effect_hook env sigma (EConstr.to_constr sigma constr)
+ (lazy (EConstr.to_constr sigma (applist (constr,stack))));
+ if is_evaluable env (EvalConstRef (Projection.constant p)) then
+ Some (mkProj (Projection.unfold p, c))
+ else None
| Var id when is_evaluable env (EvalVarRef id) ->
env |> lookup_named id |> NamedDecl.get_value
| Rel n ->