211
правок
Изменения
Нет описания правки
Докажем теперь, что построенный таким образом ''Verifier'' — корректный. Для этого нужно доказать следующие утверждения:
# Построенный ''Verifier'' - вероятностная машина Тьюринга, совершающая не более полинома от длины входа действий.
# <tex>\langle \varphi, k \rangle \in \#SAT \Rightarrow \exists \mathit{Prover} : P(\mathit{Verifier^{Prover}}(\langle \varphi, k \rangle)=1) \ge 2/3</tex>.# <tex>\langle \varphi, k \rangle \notin \#SAT \Rightarrow \forall \mathit{Prover} : P(\mathit{Verifier^{Prover}}(\langle \varphi, k \rangle)=1) \le 1/3</tex>.
Докажем эти утверждения.
:<tex>\ldots</tex>
:'''Шаг m'''
: Допустим до шага <tex>P(A_{m-1}(r_m) \ne \tilde{A}_{m-1}(r_m)) \ge 1 - \frac d p</tex>. Значит с такой вероятностью ''Verifier'' получит мы ни разу не угадали корень <tex>\tilde{A}_m</tex> вместо <tex>A_m</tex>. Но так как на шаге <tex>mr_i</tex> , то есть ''Prover'' каждый обманывал ''Verifier'' вычисляет <tex>A_m</tex> и сравнивает его . Так как на последнем шаге сверяем истинное значение с полученным от присланным ''Prover'' 'аом, то в этом случае ''Verifier'' вернет не допустит слово. Значит ''falseVerifier''могу допустить слово только если на каком-то шаге был угадан корень.
:
Таким образом, построенный нами ''Verifier'' корректен, а значит лемма доказана.