Notation "a !!! b" := (successors_list a b) (at level 1).Definition make_predecessors : PTree.t (list positive) :=
  PTree.fold (fun pred pc instr => add_successors pred pc (successors instr))
             code (PTree.empty (list positive)).

(* Specifications: *)
Lemma reachable_predecessors: forall p q, reachable code successors p q -> reachable make_predecessors (fun l => l) q p.