Арифметизация булевых формул с кванторами — различия между версиями
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 |