+let mk_convert st ?name sty ety note =
+ let e = Cn.hole "" in
+ let csty, cety = H.cic sty, H.cic ety in
+ let _note = Printf.sprintf "%s\nSINTH: %s\nEXP: %s"
+ note (Pp.ppterm csty) (Pp.ppterm cety)
+ in
+ assert (Ut.is_sober csty);
+ assert (Ut.is_sober cety);
+ if Ut.alpha_equivalence csty cety then [(* T.Note note *)] else
+ let sty, ety = H.acic_bc st.context sty, H.acic_bc st.context ety in
+ match name with
+ | None -> [T.Change (sty, ety, None, e, ""(*note*))]
+ | Some (id, i) ->
+ begin match get_entry st id with
+ | C.Def _ -> assert false (* [T.ClearBody (id, note)] *)
+ | C.Decl _ -> [T.Change (ety, sty, Some (id, Some id), e, "" (* note *))]
+ end
+