Section CGAdd.
Variable cg1 : CGraph1.
Variable x y : ad.
Variable d : D.
Definition cg2 := CG_add cg1 x y d.

(*s Every path in the new graph [cg2] either goes through the new edge from [x] to [y], or is a path in the old graph cg1: *)
Lemma CG_add_4_1 :
forall (l : list ad) (x0 y0 : ad) (d0 : D),
CG_path cg2 y0 d0 (x0 :: l) ->
{l0 : list ad &  {l1 : list ad | x0 :: l = l0 ++ x :: y :: l1}} +
CG_path cg1 y0 d0 (x0 :: l).