method vpredicate_named p = match p.content with
    | Pold p -> 
        let l =  (LogicLabel "Old")  in
        let old_label = self#change_label l in
        let new_p = {p with content = Pnot p} in
          Cil.ChangeDoChildrenPost (new_p, self#restore_pred old_label)
    | Pat (p, l) -> 
        let old_label = self#change_label l in
        let new_p = {p with content = Pnot p} in
          Cil.ChangeDoChildrenPost (new_p, self#restore_pred old_label)
    | _ -> Cil.DoChildren