Struggling to understand the definition of the class NP.

44 Views Asked by At

Here is a paper by Stephen Cook on the P versus NP Problem: https://www.cs.toronto.edu/~toni/Courses/Complexity2015/handouts/cook-clay.pdf

I don't quite understand the definition of the class NP given on the second page, and have a few things I want to clear up:

$1)$ We have that $L_R = \{w \# y | R(w,y)\}$. Does this mean a language $L_R$ is made up of strings starting with a string $w$, followed by the element $\#$, followed by a string $y$ (a concatenation)?

$2)$ We have the notation $w \in L \Leftrightarrow \exists y (|y| \leq |w|^k$ and $R(x,y)$). Does that RHS mean that there exists a $y$ such that $|y| \leq |w|^k$ and $R(x,y)$?

I would appreciate any help in understanding this.

1

There are 1 best solutions below

0
On BEST ANSWER
  1. Yes, that's just a string made up using concatenation. The point is that the input is $w$ and $y$ (the $\# $ is just for seperation to make things easy for the machine accepting $L_R$).
  2. Indeed, the intuition is that $y$ is supposed to be a "proof" that $w\in L$, so we want that $w \in L$ iff such proof exists and we can verify it. its length must be polynomial in $|w|$ otherwise we can't even interpret it in polynomial time, that's why we want that $|y|=O(|w|^k)$ for some $k$ for all $w$s.