Jeśli zignorujemy problemy z wydajnością, istnieje inny przykład, który ilustruje różnicę przez analogię. Wiemy, że problem zatrzymania nie jest rozstrzygalny: biorąc pod uwagę kod dla maszyny Turinga, nie ma skutecznego sposobu na ustalenie, czy maszyna zatrzymuje się, jeśli jest uruchomiona bez danych wejściowych.e
Ale jeśli maszyna się zatrzyma, nie jest trudno udowodnić komuś innemu: po prostu powiedz jej, ile kroków maszyna wykonuje , zanim się zatrzyma. Mogą uruchomić maszynę na tyle kroków i wiedzieć, czy powiedziałeś prawdę (oczywiście ignorując wydajność).
Tak więc zestaw zatrzymujących się maszyn Turinga nie jest rozstrzygalny, ale jest weryfikowalny. Pamiętaj, że nie trzeba przedstawiać dowodów na maszyny, które się nie zatrzymują. Weryfikacja jest asymetryczna w tym sensie, że tylko członkostwo w zestawie ma być weryfikowalne, członkostwo poza zestawem nie.
Sytuacja z P i NP jest analogiczna. Język znajduje się w NP, jeśli istnieje system dowodów, dzięki czemu każdy obiekt w tym języku ma krótki dowód (ograniczony wielomianem w rozmiarze obiektu), który można skutecznie zweryfikować (za pomocą szeregu kroków ograniczonych przez wielomian wielkości wejścia).
Z drugiej strony, język znajduje się w P, jeśli istnieje sposób na stwierdzenie, czy dowolny obiekt jest w języku, czy nie, przy użyciu szeregu kroków ograniczonych wielomianem wielkości obiektu. Teraz musimy się martwić o arbitralne dane wejściowe, a nie tylko obiekty w języku. Ale ten problem jest symetryczny: jeśli język jest w P, to i jego dopełnienie. Pytanie, czy dopełnienie każdego języka NP jest również językiem NP, pozostaje nierozwiązane.
(Ta analogia sugeruje, że problemy NP dotyczą problemów P, takich jak zbiory re są zestawami obliczalnymi. To jest trochę prawda, ale może być mylące. Jest to podstawowy fakt, że zbiór, który jest re i co-re, jest obliczalny, podczas gdy nie wiadomo, czy każdy zestaw, który jest NP i Co-NP jest w P).