let prop_persistant_marks proj fi to_prop actions =
  let pdg_node_marks = FctMarks.persistant_in_marks_to_prop fi to_prop in
  let add_act acc (pdg, node_marks) =
    let kf = M.get_pdg_kf pdg in
    let fi = M.get_kf_fi proj kf in
    let a =
      match node_marks with
        | PdgMarks.SelList node_marks ->
            Act.mk_crit_prop_persit_marks fi node_marks
        | PdgMarks.SelTopMarks marks ->
            assert (PdgTypes.Pdg.is_top pdg);
            let m = Marks.merge_marks marks in
              Act.mk_crit_fct_top fi m
    in a::acc
  in List.fold_left add_act actions pdg_node_marks