aboutsummaryrefslogtreecommitdiff
path: root/pretyping/evarconv.ml
diff options
context:
space:
mode:
authorMaxime Dénès2017-10-18 17:20:27 +0200
committerMaxime Dénès2017-10-18 17:20:27 +0200
commit6bda57bd75efe55fe1f7774f932e9ef5a65aeaaf (patch)
tree1ca022fa394b41f7679d88fb2a668dc7257ce47f /pretyping/evarconv.ml
parent0ac62afd4b2a8ce220c70b71f6a8d34445de6528 (diff)
parent157d3fdce504e59eada13068b630c6b9d3d44360 (diff)
Merge PR #984: Handling primitive projections in canonical structures.
Diffstat (limited to 'pretyping/evarconv.ml')
-rw-r--r--pretyping/evarconv.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml
index cb76df4e8a..0f1a508c8d 100644
--- a/pretyping/evarconv.ml
+++ b/pretyping/evarconv.ml
@@ -176,6 +176,12 @@ let check_conv_record env sigma (t1,sk1) (t2,sk2) =
let s = ESorts.kind sigma s in
lookup_canonical_conversion
(proji, Sort_cs (family_of_sort s)),[]
+ | Proj (p, c) ->
+ let c2 = Globnames.ConstRef (Projection.constant p) in
+ let c = Retyping.expand_projection env sigma p c [] in
+ let _, args = destApp sigma c in
+ let sk2 = Stack.append_app args sk2 in
+ lookup_canonical_conversion (proji, Const_cs c2), sk2
| _ ->
let (c2, _) = Termops.global_of_constr sigma t2 in
lookup_canonical_conversion (proji, Const_cs c2),sk2