Prova do lema do abraço

[Enunciado do exercício]  Seja F a floresta DFS de um grafo G.  Queremos mostrar que um vértice v não é cabeça de uma componente forte de G se e somente se algum arco do grafo abraça v.

Prova do se

Suponha que um arco x-y abraça v. Pela condição 3 da definição de abraço, existe um caminho de y até algum ancestral próprio r de v. Portanto existe um passeio de v até r:  primeiro um caminho de v até x em F, depois o arco x-y, e finalmente o caminho de x até r.  Como existe um caminho de rv, teremos um passeio fechado passando por rvLogo, r e v estão na mesma componente forte. Mas v não é a cabeça dessa componente, pois r é ancestral próprio de v e assim pre[r] < pre[v]. Logo, v não é cabeça de componente alguma.

Prova do somente se

Seja K a componente forte a que v pertence e seja r a cabeça de K. Suponha que rv.  Pela propriedade DFS das componentes fortes, r é ancestral próprio de v.  Como v e r estão na mesma componente forte, existe um caminho em G, digamos P, de vr. Como o término r de P não é descendente de v, algum arco x-y de P tem a seguinte propriedade: x é descendente de v mas y não é descendente de v.  O segmento terminal de P que vai de yr garante a condição 3 da definição de abraço. Portanto, x-y abraça v.