let wp_loop loop_name assigns (obligs, loop_head) =
try
let p = map_named_prop (W.wp_loop loop_name assigns) loop_head in
(obligs, p)
with InvalidModel _ -> (* we don't know how to go out of the loop *)
(* emit a proof obligation : *)
let add acc (pid, p) =
let name = (WpAnnot.prop_txt pid)^"_at_"^loop_name in
Wp_parameters.debug ~level:2 "[compute_edge] add oblig %s@." name ;
Wp_parameters.debug ~level:2 " = @[<hov2> %a@]@." W.pretty p;
add_named_prop (name, p) acc
in
let obligs = List.fold_left add obligs loop_head in
(* and continue with true *)
(obligs, empty_goals)