@@ -335,7 +335,8 @@ let rec relation order evd env (t : constr) : constr =
335
335
debug_mode := false ;
336
336
let env_R = translate_env order evd env in
337
337
let na = Namegen. named_hd env ! evd t Anonymous in
338
- let lams = range (fun k -> (Context. make_annot (prime_name order k na) ERelevance. relevant, None , lift k (prime ! evd order k t))) order in
338
+ let rel = Retyping. relevance_of_type env ! evd t in
339
+ let lams = range (fun k -> (Context. make_annot (prime_name order k na) rel, None , lift k (prime ! evd order k t))) order in
339
340
let env_R = push_rel_context (List. map toDecl lams) env_R in
340
341
debug_mode := true ;
341
342
debug [`Relation ] " output =" env_R ! evd res;
@@ -355,7 +356,8 @@ and translate order evd env (t : constr) : constr =
355
356
| Sort _ | Prod (_ ,_ ,_ ) ->
356
357
(* [..., _ : t'', _ : t', _ : t] *)
357
358
let na = Namegen. named_hd env ! evd t Anonymous in
358
- let lams = range (fun k -> (Context. make_annot (prime_name order k na) ERelevance. relevant, lift k (prime ! evd order k t))) order in
359
+ let rel = Retyping. relevance_of_type env ! evd t in
360
+ let lams = range (fun k -> (Context. make_annot (prime_name order k na) rel, lift k (prime ! evd order k t))) order in
359
361
compose_lam lams (relation order evd env t)
360
362
361
363
| App (c ,l ) ->
@@ -477,7 +479,8 @@ and translate_constant order (evd : Evd.evar_map ref) env cst : constr =
477
479
let etyp = of_constr typ in
478
480
let edef = of_constr def in
479
481
let na = Namegen. named_hd env ! evd etyp Anonymous in
480
- let pred = mkLambda (Context. make_annot na ERelevance. relevant, etyp, substl (range (fun _ -> mkRel 1 ) order) (relation order evd env etyp)) in
482
+ let rel = Retyping. relevance_of_type env ! evd etyp in
483
+ let pred = mkLambda (Context. make_annot na rel, etyp, substl (range (fun _ -> mkRel 1 ) order) (relation order evd env etyp)) in
481
484
let res = translate order evd env edef in
482
485
let uf_opaque_stmt = CoqConstants. eq env evd [| etyp; edef; fold|] in
483
486
let evd', sort = Typing. sort_of env ! evd etyp in
@@ -888,7 +891,8 @@ and rewrite_fixpoints order evdr env (depth : int) (fix : fixpoint) source targe
888
891
let env_R =
889
892
if List. exists (fun x -> List. mem x [`Fix ]) debug_flag then begin
890
893
let env_R = translate_env order evdr env in
891
- let rc_order = rev_range (fun k -> Context. make_annot (Name (Id. of_string (Printf. sprintf " rel_%d" k))) ERelevance. relevant, None ,
894
+ let rel = Retyping. relevance_of_type env ! evdr typ in
895
+ let rc_order = rev_range (fun k -> Context. make_annot (Name (Id. of_string (Printf. sprintf " rel_%d" k))) rel, None ,
892
896
lift k (prime ! evdr order k typ)) order in
893
897
let env_R' = push_rel_context (List. map toDecl rc_order) env_R in
894
898
debug [`Fix ] " typ_R =" env_R' ! evdr typ_R;
0 commit comments