(*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_add_root_rooted_1 : forall (l : list ad) (cg : CGraph1) (root a : ad), ad_list_stutters l = false -> ad_in_list a l = false -> forall d : D, CG_edge cg root a = Some d -> CG_edge (CG_add_root root cg l) root a = Some d.