(*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 : forall (cg : CGraph1) (root : ad), (forall (x : ad) (d : D) (l : list ad), CG_path cg x d (x :: l) -> Dle Dz d = true) -> in_dom _ root cg = false -> forall a : ad, in_dom _ a (CG_add_root root cg (ad_list_of_dom _ cg)) = true -> CG_leq (CG_add_root root cg (ad_list_of_dom _ cg)) root a = true.