let call_goal_precond wenv stmt kf args ~pre goals =
    let new_prop p () =
      W.call_goal_precond wenv stmt kf args ~pre:[p] W.empty
    in
    let preconds =
      List.map 
        (fun p -> make_goal (WpPropId.pred_info_id p) (new_prop p) []) pre
    in
    merge preconds goals