aboutsummaryrefslogtreecommitdiff
path: root/pretyping
diff options
context:
space:
mode:
authorcoqbot-app[bot]2020-11-20 08:49:36 +0000
committerGitHub2020-11-20 08:49:36 +0000
commitf264aabf59866ae0d18509a7757e69c26e82f508 (patch)
tree6cfa5cca2c0745a54ac0c53c1bf93787d037bd0f /pretyping
parent345328cdbcc6e01c884d7e91a72630ee54810d5c (diff)
parent0fff401b5c12a2d0684c8ff4980ebd9716f93905 (diff)
Merge PR #13371: Extend hack to use postponed constraints in retyping to template poly
Reviewed-by: gares Reviewed-by: herbelin
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/retyping.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/pretyping/retyping.ml b/pretyping/retyping.ml
index 4bd22e76cb..34bcd0982c 100644
--- a/pretyping/retyping.ml
+++ b/pretyping/retyping.ml
@@ -67,6 +67,14 @@ let get_type_from_constraints env sigma t =
| _ -> raise Not_found
else raise Not_found
+let sort_of_arity_with_constraints env sigma t =
+ try Reductionops.sort_of_arity env sigma t
+ with Reduction.NotArity ->
+ try
+ let t = get_type_from_constraints env sigma t in
+ Reductionops.sort_of_arity env sigma t
+ with Not_found | Reduction.NotArity -> retype_error NotAnArity
+
let rec subst_type env sigma typ = function
| [] -> typ
| h::rest ->
@@ -187,9 +195,7 @@ let retype ?(polyprop=true) sigma =
let mip = lookup_mind_specif env ind in
let paramtyps = Array.map_to_list (fun arg () ->
let t = type_of env arg in
- let s = try Reductionops.sort_of_arity env sigma t
- with Reduction.NotArity -> retype_error NotAnArity
- in
+ let s = sort_of_arity_with_constraints env sigma t in
Sorts.univ_of_sort (ESorts.kind sigma s))
args
in