เราจะทำการพิสูจน์ข้อความทั้งสามโดยใช้ข้อสังเกตสองข้อต่อไปนี้
ถ้า
ถูกเรียกให้ทำงานหลังจาก
ทำงาน
แต่ก่อนที่
จะทำงานเสร็จ แล้วจะมี path ใน DFS tree จาก
ถึง
พิสูจน์: เนื่องจาก
ถูกเรียกให้ทำงานระหว่างที่
ทำงานไปแล้วแต่ยังทำให้เสร็จ
เราจะได้ว่ามีลำดับของ vertex
โดยที่
โดยที่
เรียก
แล้ว
เรียก
เช่นนี้ไปเรื่อยๆ จนกระทั้ง
เรียก
เนื่องจาก
เรียก
แสดงว่ามี edge
อยู่ในกราฟ
นอกจากนี้ edge
นี้ยังเป็น tree edge อีกด้วย ในทำนองเดียวกัน เราจะได้ว่า edge
,
,
,
ก็เป็น tree edge เช่นเดียวกัน ดังนั้นจึงมี path ใน DFS tree จาก
ไปยัง
กรณีที่ 1
เราจะพิสูจน์ว่าถ้า
แล้ว edge
จะต้องเป็น tree edge หรือว่า forward edge
พิสูจน์: เนื่องจาก
เรารู้ว่า
เริ่มทำงานก่อน
เนื่องจาก
เรารู้ว่า
ถูกเรียกก่อนที่
จะทำงานเสร็จ
ฉะนั้นจะต้องมี path ใน DFS tree จาก
ถึง
กล่าวคือ
เป็นลูกหลานของ
ดังนั้น
จึงเป็น tree edge หรือไม่ก็ forward edge
กรณีที่ 2
เราจะพิสูจน์ว่าถ้า
แล้ว edge
จะต้องเป็น back edge
พิสูจน์: เนื่องจาก
เรารู้ว่า
เริ่มทำงานก่อน
เนื่องจาก
เรารู้ว่า
ถูกเรียกก่อนที่
จะทำงานเสร็จ
ฉะนั้นจะต้องมี path ใน DFS tree จาก
ถึง
กล่าวคือ
เป็นลูกหลานของ
ดังนั้น
จึงเป็น back edge
กรณีที่ 3
เราจะพิสูจน์ว่าถ้า
และ
ไม่มีส่วนร่วมกันแล้ว
จะต้องเป็น cross edge
พิสูจน์: ให้ประพจน์
แทนข้อความ "
และ
ไม่มีส่วนร่วมกันแล้ว"
ใ้ห้ประพจน์
แทนข้อความ "
เป็น cross edge"
เราต้องการพิสูจน์ว่า
cross edge คือ edge ที่ไม่ใช่ tree edge, back edge, หรือ forward edge ดังนั้นเราสามารถพิสูจนฺ์ว่า
เป็น cross edge
ได้โดยการพิสูจน์ข้อความ
เมื่อ
คือข้อความ "
เป็น tree edge"
คือข้อความ "
เป็น back edge"
คือข้อความ "
เป็น forward edge"
เนื่องจาก
เราจึงจะทำการพิสูจน์ข้อความ
แทน
สมมติให้
เป็นจริง กล่าวคือ
เป็น tree, back, หรือ forward edge เราจะได้ว่า
- ถ้า
เป็น tree edge แล้ว เราจะได้ว่า
ถูกเรียกหลัง
เริ่มทำงาน และ
จบการทำงานก่อน
จะจบการทำงาน ดังนั้น
กล่าวคือช่วง
และ
มีส่วนร่วมกัน
- ถ้า
เป็น back edge แล้ว เราจะได้ว่า
เป็นลูกหลานของ
ใน DFS tree ดังนั้น
ถูกเรียกหลัง
เริ่มทำงาน และ
จบการทำงานก่อน
จะจบการทำงาน ดังนั้น
กล่าวคือช่วง
และ
มีส่วนร่วมกัน
- ถ้า
เป็น forward edge แล้ว เราสามารถใช้การให้เหตุผลในข้อ 1 แสดงได้ว่า ช่วง
และ
มีส่วนร่วมกันได้
ทั้งสามกรณีให้ข้อสรุปว่า
และ
มีส่วนร่วมกัน กล่าวคือประพจน์
ไม่เป็นจริง
ดังนั้นเราสามารถสรุปได้ว่าถ้า
และ
ไม่มีส่วนร่วมกันแล้ว
จะต้องเป็น cross edge