let ip_contract f =
  let ip_behaviors =
    List.map
      (fun bhv -> Property.IPBehavior(f,Kglobal,bhv))
      f.spec.spec_behavior
  in
  let ip_rte =
    if not (rte_generated f) then
      Wp_parameters.warning ~current:false ~once:true
        "Missing RTE guards" ;
    [ (*TODO: these dependencies should be put on the emitter at Wpo level *) ]
  in
  ip_behaviors @ ip_complete f @ ip_disjoint f @ ip_rte