let rec fold_hyp acc labels = function
  | Pnamed(label,p) -> fold_hyp acc (label::labels) p
  | Pand(p,q) -> fold_hyp (fold_hyp acc labels p) labels q
  | Ptrue -> acc
  | p -> apply_labels p labels :: acc