diff options
| author | coqbot-app[bot] | 2020-11-20 08:49:36 +0000 |
|---|---|---|
| committer | GitHub | 2020-11-20 08:49:36 +0000 |
| commit | f264aabf59866ae0d18509a7757e69c26e82f508 (patch) | |
| tree | 6cfa5cca2c0745a54ac0c53c1bf93787d037bd0f /pretyping | |
| parent | 345328cdbcc6e01c884d7e91a72630ee54810d5c (diff) | |
| parent | 0fff401b5c12a2d0684c8ff4980ebd9716f93905 (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.ml | 12 |
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 |
