Арифметизация булевых формул с кванторами — различия между версиями
AndrewD (обсуждение | вклад) |
AndrewD (обсуждение | вклад) |
||
Строка 15: | Строка 15: | ||
}} | }} | ||
− | Введем | + | Введем обозначения: |
+ | * <tex>Q_i = \sum\limits_{x_i = 0}^{1}</tex> или <tex>Q_i = \prod\limits_{x_i = 0}^{1}</tex> | ||
+ | * <tex>s = Q_1 \ldots Q_m A(x_1, \ldots, x_m)</tex> | ||
+ | * <tex>A_i(x_{i+1}) = Q_{i + 2} \ldots Q_m A(c_1,\ldots, c_i, x_{i+1}, ..., x_m)</tex>, где <tex>c_1, \ldots, c_i</tex> {{---}} двоичные константы. | ||
{{Лемма | {{Лемма | ||
Строка 21: | Строка 24: | ||
|statement= | |statement= | ||
При введенных выше обозначениях выполняются: | При введенных выше обозначениях выполняются: | ||
− | # <tex>A_0(0) + A_0(1) = | + | # Если <tex>Q_1 = \sum\limits_{x_1 = 0}^{1}</tex>, то <tex>A_0(0) + A_0(1) = s</tex>, если <tex>Q_1 = \prod\limits_{x_1 = 0}^{1}</tex>, то <tex>A_0(0) \cdot A_0(1) = s</tex> |
− | # <tex>\ | + | # Если <tex>Q_i = \sum\limits_{x_i = 0}^{1}</tex>, то <tex> A_i(0) + A_i(1) = A_{i-1}(c_i)</tex> |
+ | # Если <tex>Q_i = \prod\limits_{x_i = 0}^{1}</tex>, то <tex> A_i(0) \cdot A_i(1) = A_{i-1}(c_i)</tex> | ||
|proof= | |proof= | ||
proof | proof | ||
}} | }} |
Версия 18:58, 1 июня 2012
Введём понятие арифметизации булевых формул. Пусть нам дана формула
. Сделаем следующие преобразования и получим формулу :- ;
- ;
- ;
- ;
- ;
- .
Заметим, что если
не содержит кванторов, то , где — некоторая константа.Лемма (1): |
. |
Доказательство: |
proof |
Введем обозначения:
- или
- , где — двоичные константы.
Лемма (2): |
При введенных выше обозначениях выполняются:
|
Доказательство: |
proof |