Skip to content

Commit a61b1b3

Browse files
authored
Merge pull request #118 from SkySkimmer/ci-relevance
Adapt to rocq-prover/rocq#18280 (case relevance outside case info)
2 parents ec8ad23 + 4f9b3f7 commit a61b1b3

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/parametricity.ml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,9 @@ and translate order evd env (t : constr) : constr =
398398
| Construct cstru -> translate_constructor order env evd cstru
399399

400400
| Case (ci, u, pms, p, iv, c, bl) ->
401-
let (ci, p, iv, c, bl) = EConstr.expand_case env !evd (ci, u, pms, p, iv, c, bl) in
401+
let (ci, (p,r), iv, c, bl) = EConstr.expand_case env !evd (ci, u, pms, p, iv, c, bl) in
402402
let nargs, nparams = Inductiveops.inductive_nrealargs env ci.ci_ind, Inductiveops.inductive_nparams env ci.ci_ind in
403-
let theta = mkCase (EConstr.contract_case env !evd (ci, lift (nargs + 1) p, Constr.map_invert (lift (nargs + 1)) iv, mkRel 1, Array.map (lift (nargs + 1)) bl)) in
403+
let theta = mkCase (EConstr.contract_case env !evd (ci, (lift (nargs + 1) p, r), Constr.map_invert (lift (nargs + 1)) iv, mkRel 1, Array.map (lift (nargs + 1)) bl)) in
404404
debug_case_info [`Case] ci;
405405
debug [`Case] "theta (in translated env) = " Environ.empty_env !evd theta;
406406
debug_string [`Case] (Printf.sprintf "nargs = %d, params = %d" nargs nparams);
@@ -420,7 +420,7 @@ and translate order evd env (t : constr) : constr =
420420
let p_R = compose_lambda_decls lams_R t_R in
421421
let c_R = translate order evd env c in
422422
let bl_R = Array.map (translate order evd env) bl in
423-
let tuple = (EConstr.contract_case env !evd (ci_R, p_R, Constr.NoInvert, c_R, bl_R)) in
423+
let tuple = (EConstr.contract_case env !evd (ci_R, (p_R,r), Constr.NoInvert, c_R, bl_R)) in
424424
mkCase tuple
425425

426426
| CoFix _ ->
@@ -544,7 +544,6 @@ and translate_case_info order env ci =
544544
{
545545
ci_ind = ci_ind;
546546
ci_npar = (order + 1) * ci.ci_npar;
547-
ci_relevance = ci.ci_relevance;
548547
ci_cstr_ndecls = Array.map (fun x -> (order + 1) * x) ci.ci_cstr_ndecls;
549548
ci_cstr_nargs = Array.map (fun x -> (order + 1) * x) ci.ci_cstr_nargs;
550549
ci_pp_info = translate_case_printing order env ci.ci_pp_info;
@@ -764,7 +763,7 @@ and translate_fix order evd env t =
764763
and process_case env depth (fun_args : constr list) case =
765764

766765
debug [`Fix] "case = " env !evd case;
767-
let (ci, p, iv, c, bl) = EConstr.expand_case env !evd (destCase !evd case) in
766+
let (ci, (p,r), iv, c, bl) = EConstr.expand_case env !evd (destCase !evd case) in
768767
debug [`Fix] "predicate = " env !evd p;
769768
let c_R = translate order evd env c in
770769
let ci_R = translate_case_info order env ci in
@@ -842,7 +841,7 @@ and translate_fix order evd env t =
842841
) bl
843842
end
844843
in
845-
mkCase (EConstr.contract_case env !evd (ci_R, p_R, iv, c_R, bl_R))
844+
mkCase (EConstr.contract_case env !evd (ci_R, (p_R,r), iv, c_R, bl_R))
846845
in
847846
let (_, ft_R, bk, bk_R) = ftbk_R.(n) in
848847
let nfun_letins = nfun + narg - nrealargs.(n) in

0 commit comments

Comments
 (0)