aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/reduction.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2018-02-05 13:56:22 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2018-02-05 14:04:03 +0100
commite849572cd2b242b34fbec6c3eaa42e7d2e7cc550 (patch)
tree173fdd6bcb0d258985ffcdd125fcef0551dcb822 /kernel/reduction.ml
parentc7026ec14f94875fc4b58951fa8bec628fcfac42 (diff)
Respect the transparent state of the current conversion on strong weak-head.
This fixes the previous patch in rare corner-cases where unification code was relying on both kernel conversion and specific transparent state.
Diffstat (limited to 'kernel/reduction.ml')
-rw-r--r--kernel/reduction.ml2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/reduction.ml b/kernel/reduction.ml
index a152a5c5f..6104f56c6 100644
--- a/kernel/reduction.ml
+++ b/kernel/reduction.ml
@@ -483,6 +483,7 @@ and eqappr cv_pb l2r infos (lft1,st1) (lft2,st2) cuniv =
Conversion check to rigid terms eventually implies full weak-head
reduction, so instead of repeatedly performing small-step
unfoldings, we perform reduction with all flags on. *)
+ let all = RedFlags.red_add_transparent all (RedFlags.red_transparent (info_flags infos)) in
let r1 = whd_stack (infos_with_reds infos all) def1 v1 in
eqappr cv_pb l2r infos (lft1, r1) appr2 cuniv
| None ->
@@ -499,6 +500,7 @@ and eqappr cv_pb l2r infos (lft1,st1) (lft2,st2) cuniv =
(match unfold_reference infos fl2 with
| Some def2 ->
(** Symmetrical case of above. *)
+ let all = RedFlags.red_add_transparent all (RedFlags.red_transparent (info_flags infos)) in
let r2 = whd_stack (infos_with_reds infos all) def2 v2 in
eqappr cv_pb l2r infos appr1 (lft2, r2) cuniv
| None ->