diff options
| author | Pierre-Marie Pédrot | 2017-08-19 12:57:38 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2017-10-17 12:50:44 +0200 |
| commit | 8764f77d807ff9d3f6260b657865ad0f40248cab (patch) | |
| tree | c2a4e7ed5531b3dd67294e962702653767775d0c | |
| parent | c00cecfc66eb76d6bca8980ef719577fd81cc400 (diff) | |
Handling primitive projections in canonical structures.
| -rw-r--r-- | pretyping/evarconv.ml | 4 | ||||
| -rw-r--r-- | pretyping/recordops.ml | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml index cb76df4e8a..9b002a5bcc 100644 --- a/pretyping/evarconv.ml +++ b/pretyping/evarconv.ml @@ -176,6 +176,10 @@ 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 sk2 = Stack.append_app [|c|] 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 diff --git a/pretyping/recordops.ml b/pretyping/recordops.ml index a23579609a..469b32ebad 100644 --- a/pretyping/recordops.ml +++ b/pretyping/recordops.ml @@ -180,6 +180,8 @@ let cs_pattern_of_constr t = end | Rel n -> Default_cs, Some n, [] | Prod (_,a,b) when Vars.noccurn 1 b -> Prod_cs, None, [a; Vars.lift (-1) b] + | Proj (p, c) -> + Const_cs (ConstRef (Projection.constant p)), None, [c] | Sort s -> Sort_cs (family_of_sort s), None, [] | _ -> begin |
