(*s Adding a lis of adresses connected to [root] with weight $0$ *)
Fixpoint CG_add_root (root : ad) (cg : CGraph1) (l : list ad) {struct l} :
CGraph1 :=
match l with
| nil => cg
| x :: l' => CG_add_root root (CG_add cg root x Dz) l'
end.

Lemma CG_edge_dist_some_1 :
forall (n : nat) (cg : CGraph1) (x y : ad) (d : D) (prefix : list ad),
CG_edge cg x y = Some d ->
ad_in_list y prefix = false ->
{d' : D |
Ddle (ad_simple_path_dist_1 cg x y prefix (S n)) (Some d') = true}.