aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pretyping/evd.ml4
-rw-r--r--pretyping/evd.mli2
-rw-r--r--pretyping/indrec.ml7
3 files changed, 8 insertions, 5 deletions
diff --git a/pretyping/evd.ml b/pretyping/evd.ml
index 902ec9f15..481e4275a 100644
--- a/pretyping/evd.ml
+++ b/pretyping/evd.ml
@@ -1035,8 +1035,8 @@ let make_flexible_variable evd b u =
(* Operations on constants *)
(****************************************)
-let fresh_sort_in_family env evd s =
- with_context_set univ_flexible evd (Universes.fresh_sort_in_family env s)
+let fresh_sort_in_family ?(rigid=univ_flexible) env evd s =
+ with_context_set rigid evd (Universes.fresh_sort_in_family env s)
let fresh_constant_instance env evd c =
with_context_set univ_flexible evd (Universes.fresh_constant_instance env c)
diff --git a/pretyping/evd.mli b/pretyping/evd.mli
index b6db3c263..a44a67656 100644
--- a/pretyping/evd.mli
+++ b/pretyping/evd.mli
@@ -486,7 +486,7 @@ val nf_constraints : evar_map -> evar_map
(** Polymorphic universes *)
-val fresh_sort_in_family : env -> evar_map -> sorts_family -> evar_map * sorts
+val fresh_sort_in_family : ?rigid:rigid -> env -> evar_map -> sorts_family -> evar_map * sorts
val fresh_constant_instance : env -> evar_map -> constant -> evar_map * pconstant
val fresh_inductive_instance : env -> evar_map -> inductive -> evar_map * pinductive
val fresh_constructor_instance : env -> evar_map -> constructor -> evar_map * pconstructor
diff --git a/pretyping/indrec.ml b/pretyping/indrec.ml
index 9f58b4c80..dba151014 100644
--- a/pretyping/indrec.ml
+++ b/pretyping/indrec.ml
@@ -111,7 +111,7 @@ let mis_make_case_com dep env sigma (ind, u as pind) (mib,mip as specif) kind =
mkLambda_string "f" t
(add_branch (push_rel (Anonymous, None, t) env) (k+1))
in
- let sigma, s = Evd.fresh_sort_in_family env sigma kind in
+ let sigma, s = Evd.fresh_sort_in_family ~rigid:Evd.univ_flexible_alg env sigma kind in
let typP = make_arity env' dep indf s in
let c =
it_mkLambda_or_LetIn_name env
@@ -427,7 +427,10 @@ let mis_make_indrec env sigma listdepkind mib u =
let rec put_arity env i = function
| ((indi,u),_,_,dep,kinds)::rest ->
let indf = make_ind_family ((indi,u), Termops.extended_rel_list i lnamesparrec) in
- let s = Evarutil.evd_comb1 (Evd.fresh_sort_in_family env) evdref kinds in
+ let s =
+ Evarutil.evd_comb1 (Evd.fresh_sort_in_family ~rigid:Evd.univ_flexible_alg env)
+ evdref kinds
+ in
let typP = make_arity env dep indf s in
mkLambda_string "P" typP
(put_arity (push_rel (Anonymous,None,typP) env) (i+1) rest)