Формально, элементами класса 

 являются языки. Пусть 

 - конечный алфавит(то есть конечное непустое множество), содержащий по крайней мере 2 элемента, и 

 - множество всех конечных слов в алфавите 

. Язык в алфавите 

 --- подмножество 

. С любой машиной Тьюринга 

 связан ее входной алфавит 

. Для любого слова 

 из 

 существует вычисление машины 

 на входе 

. (Машина Тьюринга и вычисление определены формально в приложении.) Будем говорить, что 

 принимает слово 

, если в конце вычисления машина находится в принимающем состоянии. Таким образом, 

 не принимает 

, если вычисление завершается в отвергающем состоянии машины, или если процесс вычисления не завершается. Язык, распознаваемый машиной 

 (обозначается 

) - это язык в алфавите 

, определяемый как 

. Обозначим 

 количество шагов вычисления 

 на входе 

 (см. приложение). Если вычисление не завершается, то 

. Для 

 обозначим 

 время вычислений на слове длины 

 в худшем случае, то есть 

, где 

 - множество всех слов длины 

 в алфавите 

. Будем говорить, что машина 

 работает полиномиальное время, если существует 

 такое, что для любого 

 верно 

. Теперь мы можем определить класс языков 

 как 

Обозначение 

 расшифровывается как "nondeterministic polynomial time", поскольку этот класс изначально определялся в терминах недерминированных машин. Однако сейчас обычно дается эквивалентное определение, использующее понятие проверяющего отношения - бинарного отношения 

 для некоторых конечных алфавитов 

 и 

. Каждому такому отношению мы ставим в соответствие язык в алфавите 

 определяемый как 

 где символ 

 не принадлежит языку 

. Будем говорить, что 

 проверяется за полиномиальное время, если 

. Определим класс языков 

 следующим образом: язык 

 в алфавите 

 принадлежит 

 если и только если существует 

 и проверяемое за полиномиальное время бинарное отношение 

 такие, что для любого слова 
 
 где 

 и 

 - длины слов 

 и 

 соответственно.
Формулировка проблемы. Верно ли, что 

?