Skip to content

Commit ca8db7b

Browse files
Merge PR coq#17714: Stop returning Sorts.family from Inductiveops.get_arity
Reviewed-by: ppedrot Co-authored-by: ppedrot <[email protected]>
2 parents 3c275f1 + cbc70d1 commit ca8db7b

File tree

7 files changed

+26
-27
lines changed

7 files changed

+26
-27
lines changed

pretyping/cases.ml

+5-6
Original file line numberDiff line numberDiff line change
@@ -941,7 +941,7 @@ let specialize_predicate_var (cur,typ,dep) env tms ccl =
941941
match typ with
942942
| IsInd (_, IndType (_, _), []) -> []
943943
| IsInd (_, IndType (indf, realargs), names) ->
944-
let arsign,_ = get_arity env indf in
944+
let arsign = get_arity env indf in
945945
let arsign = List.map EConstr.of_rel_decl arsign in
946946
subst_of_rel_context_instance_list arsign realargs
947947
| NotInd _ -> [] in
@@ -1451,7 +1451,7 @@ let compile ~program_mode sigma pb =
14511451
let mind,_ = dest_ind_family indf in
14521452
let () = Tacred.check_privacy !!(pb.env) (fst mind) in
14531453
let cstrs = get_constructors !!(pb.env) indf in
1454-
let arsign, _ = get_arity !!(pb.env) indf in
1454+
let arsign = get_arity !!(pb.env) indf in
14551455
let eqns,onlydflt = group_equations pb (fst mind) current cstrs pb.mat in
14561456
let no_cstr = Int.equal (Array.length cstrs) 0 in
14571457
if (not no_cstr || not (List.is_empty pb.mat)) && onlydflt then
@@ -1981,7 +1981,7 @@ let extract_arity_signature ?(dolift=true) env0 tomatchl tmsign =
19811981
let indf' = if dolift then lift_inductive_family n indf else indf in
19821982
let ((ind,u),_) = dest_ind_family indf' in
19831983
let nrealargs_ctxt = inductive_nrealdecls env0 ind in
1984-
let arsign, inds = get_arity env0 indf' in
1984+
let arsign = get_arity env0 indf' in
19851985
let arsign = List.map (fun d -> map_rel_decl EConstr.of_constr d) arsign in
19861986
let realnal =
19871987
match t with
@@ -1993,7 +1993,7 @@ let extract_arity_signature ?(dolift=true) env0 tomatchl tmsign =
19931993
List.rev realnal
19941994
| None ->
19951995
List.make nrealargs_ctxt Anonymous in
1996-
let r = Sorts.relevance_of_sort_family inds in
1996+
let r = Inductive.relevance_of_inductive env0 ind in
19971997
let t = EConstr.of_constr (build_dependent_inductive env0 indf') in
19981998
LocalAssum (make_annot na r, t) :: List.map2 RelDecl.set_name realnal arsign in
19991999
let rec buildrec n = function
@@ -2287,8 +2287,7 @@ let constr_of_pat env sigma arsign pat avoid =
22872287
Anonymous ->
22882288
sigma, pat', sign, app, apptype, realargs, n, avoid
22892289
| Name id ->
2290-
let _, inds = get_arity env indf in
2291-
let r = Sorts.relevance_of_sort_family inds in
2290+
let r = Inductiveops.relevance_of_inductive_family env indf in
22922291
let sign = LocalAssum (make_annot alias r, lift m ty) :: sign in
22932292
let avoid = Id.Set.add id avoid in
22942293
let sigma, sign, i, avoid =

pretyping/indrec.ml

+6-6
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ let mis_make_case_com dep env sigma (ind, u as pind) (mib, mip) kind =
187187
let nbprod = Array.length mip.mind_consnames + 1 in
188188

189189
let indf' = lift_inductive_family nbprod indf in
190-
let arsign,sort = get_arity !!env indf' in
191-
let r = Sorts.relevance_of_sort_family sort in
190+
let arsign = get_arity !!env indf' in
191+
let r = Inductiveops.relevance_of_inductive_family !!env indf' in
192192
let depind = build_dependent_inductive !!env indf' in
193193
let deparsign = LocalAssum (make_annot Anonymous r,depind)::arsign in
194194

@@ -448,8 +448,8 @@ let mis_make_indrec env sigma ?(force_mutual=false) listdepkind mib u =
448448
let args = Context.Rel.instance_list mkRel (nrec+nbconstruct) lnamesparrec in
449449
let indf = make_ind_family((indi,u),args) in
450450

451-
let arsign,s = get_arity !!env indf in
452-
let r = Sorts.relevance_of_sort_family s in
451+
let arsign = get_arity !!env indf in
452+
let r = Inductiveops.relevance_of_inductive_family !!env indf in
453453
let depind = build_dependent_inductive !!env indf in
454454
let deparsign = LocalAssum (make_annot Anonymous r,depind)::arsign in
455455

@@ -485,8 +485,8 @@ let mis_make_indrec env sigma ?(force_mutual=false) listdepkind mib u =
485485
(* Predicate in the context of the case *)
486486

487487
let depind' = build_dependent_inductive !!env indf' in
488-
let arsign',s = get_arity !!env indf' in
489-
let r = Sorts.relevance_of_sort_family s in
488+
let arsign' = get_arity !!env indf' in
489+
let r = Inductiveops.relevance_of_inductive_family !!env indf' in
490490
let deparsign' = LocalAssum (make_annot Anonymous r,depind')::arsign' in
491491

492492
let pargs =

pretyping/inductiveops.ml

+7-7
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ let get_arity env ((ind,u),params) =
453453
let arsign,_ = List.chop arproperlength mip.mind_arity_ctxt in
454454
let subst = subst_of_rel_context_instance_list parsign params in
455455
let arsign = Vars.subst_instance_context u arsign in
456-
(substl_rel_context subst arsign, Inductive.inductive_sort_family mip)
456+
substl_rel_context subst arsign
457457

458458
(* Functions to build standard types related to inductive *)
459459
let build_dependent_constructor cs =
@@ -463,17 +463,17 @@ let build_dependent_constructor cs =
463463
@(Context.Rel.instance_list mkRel 0 cs.cs_args))
464464

465465
let build_dependent_inductive env ((ind, params) as indf) =
466-
let arsign,_ = get_arity env indf in
466+
let arsign = get_arity env indf in
467467
let nrealargs = List.length arsign in
468468
applist
469469
(mkIndU ind,
470470
(List.map (lift nrealargs) params)@(Context.Rel.instance_list mkRel 0 arsign))
471471

472472
(* builds the arity of an elimination predicate in sort [s] *)
473473

474-
let make_arity_signature env sigma dep indf =
475-
let (arsign,s) = get_arity env indf in
476-
let r = Sorts.relevance_of_sort_family s in
474+
let make_arity_signature env sigma dep ((ind,_), _ as indf) =
475+
let arsign = get_arity env indf in
476+
let r = Inductive.relevance_of_inductive env ind in
477477
let anon = make_annot Anonymous r in
478478
let arsign = List.map (fun d -> Termops.map_rel_decl EConstr.of_constr d) arsign in
479479
if dep then
@@ -621,8 +621,8 @@ let find_coinductive env sigma c =
621621

622622
(* Type of Case predicates *)
623623
let arity_of_case_predicate env (ind,params) dep k =
624-
let arsign,s = get_arity env (ind,params) in
625-
let r = Sorts.relevance_of_sort_family s in
624+
let arsign = get_arity env (ind,params) in
625+
let r = Inductive.relevance_of_inductive env (fst ind) in
626626
let mind = build_dependent_inductive env (ind,params) in
627627
let concl = if dep then mkArrow mind r (mkSort k) else mkSort k in
628628
Term.it_mkProd_or_LetIn concl arsign

pretyping/inductiveops.mli

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ val get_constructors : env -> inductive_family -> constructor_summary array
181181
(** [get_arity] returns the arity of the inductive family instantiated
182182
with the parameters; if recursively non-uniform parameters are not
183183
part of the inductive family, they appears in the arity *)
184-
val get_arity : env -> inductive_family -> Constr.rel_context * Sorts.family
184+
val get_arity : env -> inductive_family -> Constr.rel_context
185185

186186
val build_dependent_constructor : constructor_summary -> constr
187187
val build_dependent_inductive : env -> inductive_family -> constr

pretyping/pretyping.ml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1094,8 +1094,8 @@ struct
10941094
in
10951095
(* Make dependencies from arity signature impossible *)
10961096
let arsgn, indr =
1097-
let arsgn,s = get_arity !!env indf in
1098-
List.map (set_name Anonymous) arsgn, Sorts.relevance_of_sort_family s
1097+
let arsgn = get_arity !!env indf in
1098+
List.map (set_name Anonymous) arsgn, Inductiveops.relevance_of_inductive_family !!env indf
10991099
in
11001100
let indt = build_dependent_inductive !!env indf in
11011101
let psign = LocalAssum (make_annot na indr, indt) :: arsgn in (* For locating names in [po] *)
@@ -1160,9 +1160,9 @@ struct
11601160
(str "If is only for inductive types with two constructors.");
11611161

11621162
let arsgn, indr =
1163-
let arsgn,s = get_arity !!env indf in
1163+
let arsgn = get_arity !!env indf in
11641164
(* Make dependencies from arity signature impossible *)
1165-
List.map (set_name Anonymous) arsgn, Sorts.relevance_of_sort_family s
1165+
List.map (set_name Anonymous) arsgn, Inductiveops.relevance_of_inductive_family !!env indf
11661166
in
11671167
let nar = List.length arsgn in
11681168
let indt = build_dependent_inductive !!env indf in

proofs/clenv.ml

+2-2
Original file line numberDiff line numberDiff line change
@@ -805,8 +805,8 @@ let build_case_analysis env sigma (ind, u) params pred indices indarg dep knd =
805805
let relevance = Sorts.relevance_of_sort knd in
806806

807807
let pnas, deparsign =
808-
let arsign, sort = get_arity env indf in
809-
let r = Sorts.relevance_of_sort_family sort in
808+
let arsign = get_arity env indf in
809+
let r = Inductiveops.relevance_of_inductive_family env indf in
810810
let depind = build_dependent_inductive env indf in
811811
let deparsign = LocalAssum (make_annot Anonymous r,depind)::arsign in
812812
let set_names env l =

tactics/inv.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ let make_inv_predicate env evd indf realargs id status concl =
8585
match status with
8686
| NoDep ->
8787
(* We push the arity and leave concl unchanged *)
88-
let hyps_arity,_ = get_arity env indf in
88+
let hyps_arity = get_arity env indf in
8989
let hyps_arity = List.map (fun d -> map_rel_decl EConstr.of_constr d) hyps_arity in
9090
(hyps_arity,concl)
9191
| Dep dflt_concl ->

0 commit comments

Comments
 (0)