Арифметизация булевых формул с кванторами — различия между версиями
м |
AndrewD (обсуждение | вклад) |
||
Строка 41: | Строка 41: | ||
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>. | 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> | ||
+ | |||
+ | Тогда | ||
+ | |||
+ | <tex>A_i'(c_1,\ldots,c_{i+1}) = (1-c_j) \cdot A_i</tex><tex>(c_1,\ldots,c_{j-1},0,c_{j+1},\ldots,c_{i+1}) + c_j \cdot A_i(c_1,\ldots,c_{j-1},1,c_{j+1},\ldots,c_{i+1})</tex>. | ||
}} | }} |
Версия 04:43, 4 июня 2012
Введём понятие арифметизации булевых формул. Пусть нам дана формула
. Сделаем следующие преобразования и получим формулу :- ;
- ;
- ;
- ;
Заметим, что
, где — некоторая константа.Лемма (1): |
. |
Доказательство: |
Непосредственно следует из построения. |
Для арифметизации булевых формул с кванторами добавим еще два правила преобразования:
- ;
- .
Будем обозначать через
квантор, связывающий переменную . Через будем обозначать операцию, в которую преобразуется квантор в процессе арифметизации.Заметим, что любую булеву формулу можно привести к виду
, где — формула, не содержащая кванторов. Кроме того, в процессе арифметизации переходит в . Поэтому далее будем рассматривать только формулы, которые имеют вид, указанный выше.Лемма (2): |
Пусть — булева формула с кванторами, переходящая в процессе арифметизации в .
— двоичные константы. Обозначим через , где . Тогда:
|
Доказательство: |
Докажем пункты 1.1 и 2.1. Для остальных пунктов доказательство аналогично. 1.1. 2.1. . . |
Определение: |
Оператором линеаризации будем называть оператор | .
Заметим, что оператор линеаризации уменьшает степень
до единицы, при этом полученная формула эквивалентна исходной. Кроме того, если дано выражение , то можно вставить в список в любое место, после операции (для того, чтобы выражение, на которое действует оператор, было функцией от ). При этом значение выражения не изменится. Операторы и можно вставлять в выражение независимо друг от друга для любых . Для оператора линеаризации можно сформулировать лемму, аналогичную лемме (2).Лемма (3): |
Пусть — булева формула с кванторами, переходящая в процессе арифметизации в , .
— двоичные константы.
Тогда . |