let set_wp_edge kf annots wenv he e obj =
let add_hyp h obj =
let h_pred = WpAnnot.pred_of_prop h in
let h_id = WpAnnot.id_of_prop h in
Wp_parameters.debug "add hyp (@[%s:@ %a@])@."
(WpAnnot.prop_txt h_id)
!Ast_printer.d_predicate_named h_pred;
W.add_hyp kf wenv h_id h_pred obj
in
let add_goal g obj =
let g_pred = WpAnnot.pred_of_prop g in
let g_id = WpAnnot.id_of_prop g in
Wp_parameters.debug "add goal (@[%s:@ %a@])@."
(WpAnnot.prop_txt g_id)
!Ast_printer.d_predicate_named g_pred;
W.add_goal kf wenv g_id g_pred obj
in
let glist = annots.WpAnnot.find_goals e in
let obj = List.fold_right add_goal glist obj in
let hlist = annots.WpAnnot.find_hyps e in
let obj = List.fold_right add_hyp hlist obj in
let obj = do_labels wenv e obj in
Wp_parameters.debug ~level:2 " = @[<hov2> %a@]@." W.pretty obj;
try let _ = get_wp_edge he e in
assert false
with Not_found -> HE.replace he e obj; obj