הטיעון החוסך. לכאורה צריך רדוקציה בין כל זוג סדור, כלומר 4⋅3=12 רדוקציות. אבל ≤p טרנזיטיבי, ולכן די במעגל של ארבע:
DHP ≤p DHC ≤p UHC ≤p UHP ≤p DHP.
מכל צומת אפשר להגיע לכל צומת אחר בהליכה לאורך המעגל, ובכל הליכה כזו מרכיבים לכל היותר שלוש רדוקציות — והרכבה של פולינומים היא פולינום. עלינו מ-12 ל-4.
ההצדקה המלאה של ההרכבה. אם f מחשבת A≤pB בזמן p(n) ו-g מחשבת B≤pC בזמן q(n), אז ∣f(x)∣≤p(∣x∣) — בזמן p(∣x∣) אי אפשר לכתוב יותר מ-p(∣x∣) תווים — ולכן חישוב g(f(x)) עולה p(∣x∣)+q(p(∣x∣)), שהוא פולינום. וכן x∈A⟺f(x)∈B⟺g(f(x))∈C.
נקודת המוצא. נאמר בקורס ללא הוכחה כי 3SAT≤pDHP, ולכן DHP היא NP-קשה; המרצה הצהיר במפורש שהרדוקציה הזאת "חמודה אבל מאוד מאוד טרחנית" ולכן מוותרים עליה — את התוצאה צריך לדעת, את ההוכחה לא. מרגע ש-DHP קשה, המעגל מעביר את הקושי לשלוש האחרות.
כולן ב-NP. ה-certificate הוא סדר של הקודקודים (תמורה של V), באורך O(∣V∣log∣V∣). המוודא בודק שכל שני קודקודים עוקבים מחוברים בקשת (ובגרף מכוון — בקשת בכיוון הנכון), ובמקרה של מעגל בודק גם את הקשת הסוגרת מהאחרון לראשון. זמן פולינומי. לכן כל הארבע NP-שלמות.