let up_close_up g p v = let lvs = leaves v in let g_p = find p g in L.fold_left (fun gg l -> add l (union_tpl g_p (find l g)) gg) g lvs