Пусть знает о неизоморфизме графов и . хочет доказать свое знание, не показывая само доказательство неизоморфизма.
Общий вход: пара графов
и
.
1) Первый шаг проверяющего. Проверяющий наугад с равномерным распределением вероятностей выбирает элемент из множества и перестановку из множества перестановок множества вершин . Далее строит граф
с множеством вершин и множеством ребер
. (Граф является случайной изоморфной копией либо графа , либо графа .) Граф будет называться вопросом. Затем строит пар графов таких, что каждая пара содержит одну изоморфную копию графа и одну изоморфную копию графа . Графы в парах расположены в случайном порядке. Эти пары будут называться тестовыми парами, они будут использоваться доказывающим для тестирования того, что не обманывает ли проверяющий. В частности, для любого
проверяющий наугад с равномерным распределением вероятностей выбирает бит из множества и две перестановки
,
из множества перестановок множества вершин , и строит для
графы
. Проверяющий отправляет граф и последовательность пар
, ...,
доказывающему .
2) Первый шаг доказывающего. Доказывающий наугад выбирает подмножество
. ( выбирается наугад с равномерным распределением вероятностей из множества всех подмножеств.) отправляет проверяющему .
3) Второй шаг проверяющего. Если не является подмножеством
, то прекращает проверку и отвергает доказательство. В противном случае, отвечает с
и
, где
. Т.е. для показывает изоморфизм между входными графами и -ой парой, а для
показывает изоморфизм между графом и одним из графов из -ой пары. Интуитивно, для показывает, что -ая пара правильно построена, а для
показывает, что если -ая пара правильно построена, то граф также правильно построен.
4) Второй шаг доказывающего. проверяет является ли
действительно изоморфизмом между и
для всех и
и является ли
действительно изоморфизмом между
и для всех
. Если одно из этих условий нарушается, останавливается. В противном случае, отвечает с
таким, что изоморфен . (Если такого не существует, то отвечает с .)
5) Третий шаг проверяющего. Проверяющий тестирует верно ли, что
. Если это условие нарушается, останавливается и отвергает доказательство. В противном случае, продолжает.
6) и повторяют шаги 1) - 5) раз, каждый раз используя независимые случайные подбрасывания монеты.
7) Заключительный шаг проверяющего. Проверяющий принимает доказательство, если он завершит итераций шагов 1) - 5). В противном случае, отвергает.