IS ∈ ⟹ VC ∈
נניח . אזי קיימת בלתי תלויה ב- עם . לפי ההבחנה, היא כיסוי בקודקודים של , וגודלה לכן קיים ב- כיסוי בקודקודים בגודל , ומכאן .
, ולכן היא NP-שלמה.
על קלט עם :
זהו. אותו גרף בדיוק, רק המספר משתנה.
הבנייה נשענת על הבחנה אחת, שהיא הלב של השיעור: לכל , שתי הטענות אומרות בדיוק את אותו דבר על כל קשת: "לכל קשת יש קצה ב-" שקול ל"אין קשת ששני קצותיה מחוץ ל-".
נניח . אזי קיימת בלתי תלויה ב- עם . לפי ההבחנה, היא כיסוי בקודקודים של , וגודלה לכן קיים ב- כיסוי בקודקודים בגודל , ומכאן .
נניח . אזי קיים כיסוי בקודקודים של עם . לפי ההבחנה, בלתי תלויה ב-, וגודלה לכן .
האלגוריתם מעתיק את הקלט ומבצע חיסור יחיד. במודל RAM זה אפילו זמן קבוע; במכונת טיורינג יש לבצע חיסור בינארי על מספר שאורכו לכל היותר אורך הקלט, כלומר בגישה נאיבית. בכל מקרה פולינומי, וזה כל מה שנדרש.
היא NP-קשה, ומכיוון שהיא גם ב- (העד הוא ; המאמת בודק ועובר על הקשתות) — היא NP-שלמה. משם היא הופכת לנקודת המוצא של , ו-.
"בדיוק " מול "לפחות/לכל היותר ". ההוכחה משתמשת בגודל בדיוק ובגודל בדיוק , בעוד ההגדרות אומרות "לפחות " ב- ו"לכל היותר " ב-. זה חוקי: לכיסוי אפשר תמיד להוסיף קודקודים (הוספה אינה מקלקלת כיסוי), ומקבוצה בלתי תלויה אפשר תמיד להוציא (תת-קבוצה של בלתי תלויה היא בלתי תלויה). שימו לב שהכיווניות הפוכה בין שתי הבעיות — ובכל בעיה חדשה יש לשאול מחדש אם השקילות הזאת מתקיימת.
"למה לא הזהות?" — שתי סיבות. הכיוון: אנחנו רוצים רדוקציה אל , לא ממנה, כי המטרה היא להוכיח ש- קשה. והמספר: הגרף אכן נשאר אותו גרף, אבל חייב להשתנות, בדיוק בגלל הקשר בין גודל קבוצה לגודל המשלים שלה.