На множестве всех слов

введем топологию

и метрику Левенштейна

. Обозначим получившееся метрической пространство

. Тогда язык

в данном пространстве есть подмножество точек данного пространства. Пусть для некоторой точки

,длина последовательности которой равна

, детерминированная машина Тьюринга

последовательно проходит по точкам шара радиуса 1 с центром в точке

,далее по точкам шара радиуса 2 с тем же центром и так далее пока не пройдет все точки шара радиуса

, начав свой путь в точке

.
Лемма 1. Время работы

для шара радиуса

:

.
Доказательство. Рассмотрим вид условия для

,тогда количество точек шара будет равно

(по одному изменению символа на i-том месте, всего возможных изменений

, одно удаление символа с

-ого места ,добавление одного из двух возможных символов на

-ое место). То есть

обойдет

точек и закончит работу за время

. Пусть

(делаю индуктивный переход) ,тогда так как для

,

,то остается лишь оценить количество прибавившившихся точек.
Лемма 2. Количество точек шара радиуса

зависит от полинома

:

.
Доказательство. Ранее было посчитано ,что в

(подразумеваю замкнутый шар радиуса 1) количество точек равно

. Посчитаем количество точек в шаре радиуса 2 : количество точек с длиной

равно

,значит имеем

точек от них , количество точек длиной

равно 2 ,значит имеем

точек, также точек с длиной

одна точка ,значит имеем от нее

точки . В сумме :

точек. Очевидно , что так как при оценивании учитывается только член высшего порядка ,то ,как легко показать ,таковым в

является ,при радиусе

,

с каким-то коэффициентом ,который не учитывается, поэтому

,ч.т.д.
Так для шара радиуса

имеем количество точек порядка

из этого следует ,что

действительно закончит свою работу через время порядка

,ч.т.д.
Класс языков

определяется ,как множество всех слов

для которых существует слово

, и машина

. Условие на

можно переформулировать так:

,где

- длина

. Теперь покажем, что существует машина

,такая что за полиномиальное время она отыскивает сертификат любого слова в

.
Теорема 1.

Доказательство. Предположим обратное:

Тогда заметим ,что:

,то есть длина сертификата не зависит от

,зато мы обязаны сделать зависимой от

константу

,например так :

,где

. Таким образом, так как функция

не может лежать между двумя сколь угодно близкими по возрастанию полиномами ,можно заключить, что предположение в начале неверно , ч.т.д. .
Теперь построим

. Пусть она проходит по точкам шаров от исходной точки

и подставляет полученные значения. Так как подстановка занимает полиномиальное время и машина работает полиномиальное время (по лемме 1), то обязательно существует такое

,что в

найдется сертификат для

(по теореме 1). А так как ,мы рассматривали произвольное слово

произвольного языка

,то можно заключить ,что

.