Арифметизация булевых формул с кванторами — различия между версиями
(Новая страница: «Введём понятие арифметизации булевых формул. Пусть нам дана формула <tex>\phi(x_1 \ldots x_m)</tex>. С...») |
AndrewD (обсуждение | вклад) |
||
Строка 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 x \to 1 - x</tex>; | + | # <tex>\lnot x \to 1 - x</tex>; |
− | # <tex>\ | + | # <tex>\varphi \land \psi \to A_\varphi \cdot A_\psi</tex>; |
− | # <tex>\ | + | # <tex>\varphi \lor \psi \to 1 - (1 - A_\varphi) \cdot (1 - A_\psi)</tex>; |
− | Заметим, что | + | # <tex>\exists x \varphi(x) \to \sum\limits_{x=0}^{1} A_\varphi(x)</tex>; |
+ | # <tex>\forall x \varphi(x) \to \prod\limits_{x=0}^{1} A_\varphi(x)</tex>. | ||
+ | Заметим, что если <tex>\phi</tex> не содержит кванторов, то <tex>|A_\phi| \le C |\phi|</tex> , где <tex>C</tex> {{---}} некоторая константа. | ||
{{Лемма | {{Лемма | ||
Строка 10: | Строка 12: | ||
|statement=<tex>\phi(x_1 \ldots x_m) = A_\phi(x_1, \ldots, x_m)</tex>. | |statement=<tex>\phi(x_1 \ldots x_m) = A_\phi(x_1, \ldots, x_m)</tex>. | ||
|proof= | |proof= | ||
+ | proof | ||
+ | }} | ||
+ | |||
+ | Введем обозначение: <tex>A_i(x_{i+1}) = \sum\limits_{x_{i+2} = 0}^{1}\ldots\sum\limits_{x_m = 0}^{1} A(c_1,\ldots, c_i, x_{i+1}, ..., x_m)</tex>, где <tex>c_1, \ldots, c_i</tex> {{---}} некоторые константы. | ||
+ | |||
+ | {{Лемма | ||
+ | |about=2 | ||
+ | |statement= | ||
+ | При введенных выше обозначениях выполняются: | ||
+ | # <tex>A_0(0) + A_0(1) = k</tex> | ||
+ | # <tex>\forall 1 \le i \le m: A_i(0) + A_i(1) = A_{i-1}(c_i)</tex> | ||
+ | |proof= | ||
+ | proof | ||
}} | }} |
Версия 17:41, 1 июня 2012
Введём понятие арифметизации булевых формул. Пусть нам дана формула
. Сделаем следующие преобразования и получим формулу :- ;
- ;
- ;
- ;
- ;
- .
Заметим, что если
не содержит кванторов, то , где — некоторая константа.Лемма (1): |
. |
Доказательство: |
proof |
Введем обозначение:
, где — некоторые константы.Лемма (2): |
При введенных выше обозначениях выполняются:
|
Доказательство: |
proof |