Арифметизация булевых формул с кванторами — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «Введём понятие арифметизации булевых формул. Пусть нам дана формула <tex>\phi(x_1 \ldots x_m)</tex>. С...»)
 
Строка 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>\Phi \land \Psi \to A_\Phi \cdot A_\Psi</tex>;
+
# <tex>\varphi \land \psi \to A_\varphi \cdot A_\psi</tex>;
# <tex>\Phi \lor \Psi \to 1 - (1 - A_\Phi) \cdot (1 - A_\Psi)</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

Введём понятие арифметизации булевых формул. Пусть нам дана формула [math]\phi(x_1 \ldots x_m)[/math]. Сделаем следующие преобразования и получим формулу [math]A_\phi(x_1, x_2, \ldots, x_m)[/math]:

  1. [math]x_i \to x_i[/math];
  2. [math]\lnot x \to 1 - x[/math];
  3. [math]\varphi \land \psi \to A_\varphi \cdot A_\psi[/math];
  4. [math]\varphi \lor \psi \to 1 - (1 - A_\varphi) \cdot (1 - A_\psi)[/math];
  5. [math]\exists x \varphi(x) \to \sum\limits_{x=0}^{1} A_\varphi(x)[/math];
  6. [math]\forall x \varphi(x) \to \prod\limits_{x=0}^{1} A_\varphi(x)[/math].

Заметим, что если [math]\phi[/math] не содержит кванторов, то [math]|A_\phi| \le C |\phi|[/math] , где [math]C[/math] — некоторая константа.

Лемма (1):
[math]\phi(x_1 \ldots x_m) = A_\phi(x_1, \ldots, x_m)[/math].
Доказательство:
[math]\triangleright[/math]
proof
[math]\triangleleft[/math]

Введем обозначение: [math]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)[/math], где [math]c_1, \ldots, c_i[/math] — некоторые константы.

Лемма (2):
При введенных выше обозначениях выполняются:
  1. [math]A_0(0) + A_0(1) = k[/math]
  2. [math]\forall 1 \le i \le m: A_i(0) + A_i(1) = A_{i-1}(c_i)[/math]
Доказательство:
[math]\triangleright[/math]
proof
[math]\triangleleft[/math]