Изменения

Перейти к: навигация, поиск

Арифметизация булевых формул с кванторами

2163 байта добавлено, 19:13, 4 сентября 2022
м
rollbackEdits.php mass rollback
Введём понятие арифметизации булевых формул. Пусть нам дана формула <tex>\phi(x_1 \ldots x_m)</tex>. Сделаем следующие преобразования и получим формулу <tex>A_\phi(x_1, x_2, \ldots, x_m)</tex>:
* <tex>x_i \to x_i</tex>;
* <tex>\lnot x \varphi \to 1 - xA_\varphi</tex>;
* <tex>\varphi \land \psi \to A_\varphi \cdot A_\psi</tex>;
* <tex>\varphi \lor \psi \to 1 - (1 - A_\varphi) \cdot (1 - A_\psi)</tex>;
|about=1
|statement=<tex>\phi(x_1 \ldots x_m) = A_\phi(x_1, \ldots, x_m)</tex>.
|proof=proofНепосредственно следует из построения.
}}
Докажем пункты 1.1 и 2.1. Для остальных пунктов доказательство аналогично.
1.1. <tex>s=\sum\limits_{x_1 = 0}^{1}R_2\ldots R_m(x_1, x_2, \ldots, x_m)=R_2 \ldots R_m</tex><tex>(0, x_2, \ldots, x_m) + R_2 \ldots R_m(1, x_2, \ldots, x_m)=A_0(0) + A_0(1)</tex>. 2.1. <tex>A_{i-1}(c_i)=\sum\limits_{x_{i+1} = 0}^{1}R_{i+2}\ldots R_m</tex><tex>(c_1, \ldots, c_{i-1}, c_i, x_{i+1}, \ldots x_m)=R_{i+2} \ldots R_m</tex><tex>(c_1, \ldots, c_i, 0, x_{i+2}, \ldots, x_m) + R_{i+2} \ldots R_m</tex><tex>(c_1, \ldots, c_i, 1, x_{i+2}, \ldots, x_m)=A_i(0) + A_i(1)</tex>.}}{{Определение|definition=Оператором линеаризации будем называть оператор <tex>L_{i}A(x_i)=(1-x_i) \cdot A</tex><tex>(0)+x_i \cdot A(1)</tex>.}}Заметим, что оператор линеаризации уменьшает степень <tex>x_i</tex> до единицы, при этом полученная формула эквивалентна исходной. Кроме того, если дано выражение <tex>R_1 \ldots R_m A_\phi(x_1, \ldots, x_m)</tex>, то <tex>L_{i}</tex> можно вставить в список <tex>R_1,\ldots,R_m</tex> в любое место, после операции <tex>R_i</tex> (для того, чтобы выражение, на которое действует оператор, было функцией от <tex>x_i</tex>). При этом значение выражения не изменится. Операторы <tex>L_i</tex> и <tex>L_j</tex> можно вставлять в выражение независимо друг от друга для любых <tex>1 \le i, j \le m</tex>. Для оператора линеаризации можно сформулировать лемму, аналогичную лемме (2).{{Лемма|about=3|statement=Пусть <tex>Q_1 \ldots Q_m \phi(x_1, \ldots, x_m)</tex> {{---}} булева формула с кванторами, переходящая в процессе арифметизации в <tex>s = R_1 \ldots R_m A_\phi(x_1, \ldots, x_m)=R_1 \ldots R_{i+1} L_j R_{i+2}\ldots R_m A_\phi(x_1, \ldots, x_m)</tex>, <tex>j < i + 2</tex>. <tex>c_1, \ldots, c_m</tex> {{---}} двоичные константы. <tex>A_{i}'(x_1,\ldots,x_{i+1}) = L_j R_{i+2} \ldots R_m A_\phi(x_1, \ldots, x_m)</tex> <tex>A_{i}(x_1,\ldots,x_{i+1}) = R_{i+2} \ldots R_m A_\phi(x_1, \ldots, x_m)</tex> Тогда
2.1. <tex>A_{i-1}A_i'(c_i)=c_1,\sum\limits_{x_ldots,c_{i+1} ) = 0}^{(1}R_{i+2}-c_j) \ldots R_mcdot A_i</tex><tex>(c_1, \ldots, c_{ij-1}, c_i0, x_c_{ij+1}, \ldots x_m)=R_,c_{i+21} ) + c_j \ldots R_m</tex><tex>cdot A_i(c_1, \ldots, c_i, 0, x_c_{i+2j-1}, \ldots1, x_m) + R_c_{ij+21} \ldots R_m</tex><tex>(c_1, \ldots, c_i, 1, x_c_{i+21}, \ldots, x_m)=A_i(0) + A_i(1)</tex>.
}}
1632
правки

Навигация