aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mathcomp/ssreflect/plugin/trunk/ssreflect.ml48
1 files changed, 5 insertions, 3 deletions
diff --git a/mathcomp/ssreflect/plugin/trunk/ssreflect.ml4 b/mathcomp/ssreflect/plugin/trunk/ssreflect.ml4
index ecb4d0a..d202cf6 100644
--- a/mathcomp/ssreflect/plugin/trunk/ssreflect.ml4
+++ b/mathcomp/ssreflect/plugin/trunk/ssreflect.ml4
@@ -4036,7 +4036,7 @@ let ssrelim ?(is_case=false) ?ist deps what ?elim eqid ipats gl =
cty, elim, elimty, elim_args, n_elim_args, elim_is_dep, is_rec, pred, gl
| None ->
let c = Option.get oc in let gl, c_ty = pfe_type_of gl c in
- let ((kn, i) as ind, _ as indu), unfolded_c_ty =
+ let ((kn, i) as ind, u), unfolded_c_ty =
pf_reduce_to_quantified_ind gl c_ty in
let sort = elimination_sort_of_goal gl in
let gl, elim =
@@ -4045,6 +4045,7 @@ let ssrelim ?(is_case=false) ?ist deps what ?elim eqid ipats gl =
gl, t
else
pf_eapply (fun env sigma () ->
+ let indu = (ind, EConstr.EInstance.kind sigma u) in
let sigma = Sigma.Unsafe.of_evar_map sigma in
let Sigma (ind, sigma, _) = Indrec.build_case_analysis_scheme env sigma indu true sort in
let sigma = Sigma.to_evar_map sigma in
@@ -5091,8 +5092,9 @@ let rwprocess_rule dir rule gl =
let s, sigma = sr sigma 1 in
loop d sigma s a.(0) rs2 0
| App (r_eq, a) when Hipattern.match_with_equality_type sigma t != None ->
- let indu = EConstr.destInd sigma r_eq and rhs = Array.last a in
- let np = Inductiveops.inductive_nparamdecls (fst indu) in
+ let (ind, u) = EConstr.destInd sigma r_eq and rhs = Array.last a in
+ let np = Inductiveops.inductive_nparamdecls ind in
+ let indu = (ind, EConstr.EInstance.kind sigma u) in
let ind_ct = Inductiveops.type_of_constructors env indu in
let lhs0 = last_arg sigma (EConstr.of_constr (strip_prod_assum ind_ct.(0))) in
let rdesc = match EConstr.kind sigma lhs0 with