let build_wpos export kf bhv wrn dep propid gpred =
    let gpred = Splitter.simplify gpred in
    if Wp_parameters.Split.get () || Wp_parameters.Invariants.get () ||
      (WpPropId.is_assigns propid && PO.assigns_method() = Mcfg.EffectAssigns)
    then
      let goals = Splitter.split (PO.assigns_method ()) gpred in
      if Bag.is_empty goals then
        export_wpo export kf bhv wrn dep propid F.p_true
      else
        WpAnnot.split (export_wpo export kf bhv wrn dep) propid goals
    else
      export_wpo export kf bhv wrn dep propid gpred