aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/reduction.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-08-03 23:19:56 +0200
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-08-03 23:39:02 +0200
commitead5d80dff08f97998e81acfb2562dde741a26af (patch)
tree7b5ad21993d0c1625f6609eba0e385378ca43faf /kernel/reduction.ml
parentef72be87579be34e9454fe1f785ff36a9c25246c (diff)
Fix infer conv using the wrong universe conversion flexibility information
for constants that are not unfolded during conversion. Fix discharge of polymorphic section variables over inductive types.
Diffstat (limited to 'kernel/reduction.ml')
-rw-r--r--kernel/reduction.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/reduction.ml b/kernel/reduction.ml
index 28fe7141f..78d2105ab 100644
--- a/kernel/reduction.ml
+++ b/kernel/reduction.ml
@@ -199,8 +199,9 @@ let conv_table_key infos k1 k2 cuniv =
| ConstKey (cst, u), ConstKey (cst', u') when eq_constant_key cst cst' ->
if Univ.Instance.equal u u' then cuniv
else
- let flex = evaluable_constant cst (info_env infos) in
- convert_instances flex u u' cuniv
+ let flex = evaluable_constant cst (info_env infos)
+ && RedFlags.red_set (info_flags infos) (RedFlags.fCONST cst)
+ in convert_instances flex u u' cuniv
| VarKey id, VarKey id' when Id.equal id id' -> cuniv
| RelKey n, RelKey n' when Int.equal n n' -> cuniv
| _ -> raise NotConvertible