@@ -335,7 +335,8 @@ let rec relation order evd env (t : constr) : constr =
335335 debug_mode := false ;
336336 let env_R = translate_env order evd env in
337337 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
339340 let env_R = push_rel_context (List. map toDecl lams) env_R in
340341 debug_mode := true ;
341342 debug [`Relation ] " output =" env_R ! evd res;
@@ -355,7 +356,8 @@ and translate order evd env (t : constr) : constr =
355356 | Sort _ | Prod (_ ,_ ,_ ) ->
356357 (* [..., _ : t'', _ : t', _ : t] *)
357358 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
359361 compose_lam lams (relation order evd env t)
360362
361363 | App (c ,l ) ->
@@ -477,7 +479,8 @@ and translate_constant order (evd : Evd.evar_map ref) env cst : constr =
477479 let etyp = of_constr typ in
478480 let edef = of_constr def in
479481 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
481484 let res = translate order evd env edef in
482485 let uf_opaque_stmt = CoqConstants. eq env evd [| etyp; edef; fold|] in
483486 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
888891 let env_R =
889892 if List. exists (fun x -> List. mem x [`Fix ]) debug_flag then begin
890893 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 ,
892896 lift k (prime ! evdr order k typ)) order in
893897 let env_R' = push_rel_context (List. map toDecl rc_order) env_R in
894898 debug [`Fix ] " typ_R =" env_R' ! evdr typ_R;
0 commit comments