let prop_id_name p = match p.p_part with
  | None -> name_of_prop_id p
  | Some(k,_) -> Printf.sprintf "%s_part%d" (name_of_prop_id p) (succ k)