Википедия описывает такой пример. Рассмотрим задачу UNSAT, полную coNP: учитывая CNF на n переменных, мы хотим убедить верификатора в том, что φ не является выполнимым. Мы арифметизируем ф к многочлену р и выберем некоторое большое простое число q . Пусть
p ( x 1 , … , x k ) = 1 ∑ x k + 1 = 0 ⋯ 1 ∑ x n = 0 p ( x 1 ,φnφφpq
Протокол действует следующим образом:
p(x1,…,xk)=∑xk+1=01⋯∑xn=01p(x1,…,xn).
- Проверяющий отправляет верификатору простое число , и последнее проверяет, что q простое число.q∈(2n,2n+1)q
- Проверяющий отправляет верификатор . Верификатор проверяет, что p ( 0 ) + p ( 1 ) = 0 , и отправляет проверяющему случайное значение r 1 .p(z)∈Zq[z]p(0)+p(1)=0r1
- Проверяющий отправляет верификатор . Верификатор проверяет, что p ( r 1 , 0 ) + p ( r 1 , 1 ) = p ( r 1 ) , и отправляет проверяющему случайный r 2 .p(r1,z)∈Zq[z]p(r1,0)+p(r1,1)=p(r1)r2
- p(r1,…,rn)∈Zqp
pq