Арифметизация булевых формул с кванторами — различия между версиями
AndrewD (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
Введём понятие арифметизации булевых формул. Пусть нам дана формула <tex>\phi(x_1 \ldots x_m)</tex>. Сделаем следующие преобразования и получим формулу <tex>A_\phi(x_1, x_2, \ldots, x_m)</tex>: | Введём понятие арифметизации булевых формул. Пусть нам дана формула <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>x_i \to x_i</tex>; | ||
− | * <tex>\lnot | + | * <tex>\lnot \varphi \to 1 - A_\varphi</tex>; |
* <tex>\varphi \land \psi \to A_\varphi \cdot A_\psi</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>; | * <tex>\varphi \lor \psi \to 1 - (1 - A_\varphi) \cdot (1 - A_\psi)</tex>; |
Текущая версия на 19:13, 4 сентября 2022
Введём понятие арифметизации булевых формул. Пусть нам дана формула
. Сделаем следующие преобразования и получим формулу :- ;
- ;
- ;
- ;
Заметим, что
, где — некоторая константа.Лемма (1): |
. |
Доказательство: |
Непосредственно следует из построения. |
Для арифметизации булевых формул с кванторами добавим еще два правила преобразования:
- ;
- .
Будем обозначать через
квантор, связывающий переменную . Через будем обозначать операцию, в которую преобразуется квантор в процессе арифметизации.Заметим, что любую булеву формулу можно привести к виду
, где — формула, не содержащая кванторов. Кроме того, в процессе арифметизации переходит в . Поэтому далее будем рассматривать только формулы, которые имеют вид, указанный выше.Лемма (2): |
Пусть — булева формула с кванторами, переходящая в процессе арифметизации в .
— двоичные константы. Обозначим через , где . Тогда:
|
Доказательство: |
Докажем пункты 1.1 и 2.1. Для остальных пунктов доказательство аналогично. 1.1. 2.1. . . |
Определение: |
Оператором линеаризации будем называть оператор | .
Заметим, что оператор линеаризации уменьшает степень
до единицы, при этом полученная формула эквивалентна исходной. Кроме того, если дано выражение , то можно вставить в список в любое место, после операции (для того, чтобы выражение, на которое действует оператор, было функцией от ). При этом значение выражения не изменится. Операторы и можно вставлять в выражение независимо друг от друга для любых . Для оператора линеаризации можно сформулировать лемму, аналогичную лемме (2).Лемма (3): |
Пусть — булева формула с кванторами, переходящая в процессе арифметизации в , .
— двоичные константы.
Тогда . |