TQBF resuelto en tiempo polinomial
Juan Manuel Dato Ruiz
Graduated in development of computers
[email protected]
Enero 2019
1
Introducci´
on
Este documento es una simplificaci´on de un documento mucho m´as largo donde se desvinculan las conclusiones del teorema de Cook a una filosof´ıa matem´atica que no aplicaremos para este documento y, por tanto, no trabajaremos bajo la complejidad N P − co. A lo largo de este documento se va a explicar c´omo se puede demostrar en tiempo polinomial si una expresi´on booleana cuantificada es un teorema.
Para trabajar con la idea de dependencia nos centraremos en los siguientes casos reconocidos por la ortodoxia en cuantificadores para la l´ogica:
1. ∀x∀y : P (x, y)
2. ∀x∃y : P (x, y)
3. ∃x∀y : P (x, y)
4. ∃x∃y : P (x, y)
De las cuatro combinaciones s´olo la segunda hace que y dependa de x. As´ı que usaremos una notaci´on en este documento: cuando queramos que en el caso 2 el par´ametro y no dependa de la variable x deberemos incorporar una expresi´on adicional: ∀x∃y : P (x, y) ∧ I(y, x)
Es decir:
Definici´on 1 I(K, x) es una f´ormula booleana: B × B 7→ B, y α es cualquier f´ormula que depende de K y x:
∀x, ∃K : I(K, x) ∧ α ⇐⇒ ∃K, ∀x : I(K, x) ∧ α (1) Hay que denotar que K siempre ser´a una variable existencial, mientras que x ser´a universal o un nuevo concepto que introducimos en este documento: una variable temporal.
El trabajo con variables temporales, la idea de independencia de variables trabajado de esta manera, la aportaci´on de una estructura con un operador
l´ogico nuevo que permite resolver cualquier f´ormula de la l´ogica en tiempo poli-nomial (corroborado en Python) y la no aceptaci´on del teorema de Cook para prop´ositos constructivistas es lo que caracterizan las ventajas de este documento frente al resto.
Para ello se va a explicar los distintos pasos mediante un ejemplo manual:
∀p, ∃K, ∀q, ∃R : (p → q ∨ R) ∧ p → q ∨ K ∀p, ∀q, ∃K, ∃R : I(K, q)
1. (p → q ∨ R) ∧ p → q ∨ K
∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)
2. τ1= (p → q ∨ R)
τ2= (p → q ∨ R)
(τ1∨ τ2) ∧ p → q ∨ K
∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)
τ1∧ p → q ∨ R 3. 1 → τ1∨ p q → τ1 R → τ1 τ1∧ p → q ∨ K τ2∧ p → q ∨ R 1 → τ2∨ p q → τ2 R → τ2 τ2∧ p → q ∨ K
∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)
(τ1= 0) ∨ (τ1= ¬p) ∨ (τ1=q) ∨ (R = 1) ∨ (R = p) ∨ (R = ¬q) ∨ (R = τ1) 4. (τ1= 1) ∨ (τ1= ¬p) (τ1= 1) ∨ (τ1= q) (R = 0) ∨ (R = τ1) ∨ (τ1= 0) (τ1= 0) ∨ (τ1= ¬p) ∨ (τ1= q) ∨ (K = 1) ∨ (K=p) (τ2= 0) ∨ (τ2= ¬p) ∨ (R = 1) ∨ (R = p) ∨ (R = ¬q) ∨ (R = τ2) (τ2= 1) ∨ (τ2= ¬p) (τ2 = 1) (R = 0) ∨ (R = τ2) ∨ (τ2= 0) (τ2= 0) ∨ (τ2= ¬p) ∨ (K = 1) ∨ (K=p) ∨ (K = τ2)
∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)
5. (τ1= q) ∧ (τ1= ¬p) ∧ (R = τ1) ∧ (K = p) ∧ (τ2= 1) ∧ (R = τ2)
∀p, ∀q, ∃K, ∃R : I(K, q) ∧ R = q ∨ ¬p ∧ K = p ∀p, ∃K, ∀q, ∃R : R = q ∨ ¬p ∧ K = p
1. Se reordena la f´ormula dejando los cuantificadores universales antes que los existenciales, seguidos de la f´ormula a˜nadiendo cl´ausulas de independencia I(Ki, xj).
2. Se crean unas variables temporales para eliminar las anidaciones. Como la variable temporal depende de las variables que aparecen en su expresi´on, y K no puede depender de q entonces reconocemos que K no puede depender de τ1y que un clon de tal variable temporal τ2 no depende de q, para que
no haya conflicto con K.
3. Para cada asignaci´on de una variable temporal en una f´ormula equivale a expresarlo en cl´ausulas de Horn, lo cual evita literales en negativo sin perder potencia en la expresividad de la f´ormula original.
4. En este paso se aplica un teorema de esta documentaci´on para ver c´omo se convierte en sumas de cuatro cl´ausulas que se multiplican (formato SAT).
5. Se satisface la f´ormula anterior mediante otra t´ecnica que se incorpora exclusivamente en esta documentaci´on para que se haga en tiempo poli-nomial (O(n3) tiempo y O(n2) espacio).
Una vez satisfecha la f´ormula s´olo hay que presentar los resultados, para lo cual tambi´en se presentar´a alg´un lema que permita eliminar la variable tempo-ral y as´ı hacer que los existenciales dependan de las variables de las que sean dependientes.
Por tanto, lo que aqu´ı vemos es un m´etodo que nos permite determinar una condici´on necesaria para que una f´ormula QBF se justifique en una tau-tolog´ıa, proceso de resoluci´on que elaboraremos con la misma complejidad que el mecanismo que usemos para resolver SAT (que es necesario en el paso 4).
Si, por otro lado, nuestro inter´es es saber si la expresi´on que tenemos es una tautolog´ıa (porque no tiene existenciales), s´olo hay que hacer una simple conversi´on:
∀x1, . . . , xn: f (x1, . . . , xn) ⇐⇒
¬ ∃x1, . . . , xn: ¬f (x1, . . . , xn) ⇐⇒
¬SAT [¬f (x1, . . . , xn)]
Lo cual se reduce a formatear cualquier f´ormula del ´algebra de boole a un formato que podamos satisfacer: T QBF es equipolinomial a SAT .
1.1
Proceso de inserci´
on de variables temporales
Para llevar a cabo este proceso es necesario incorporar unas variables tempo-rales τi que nos permitan eliminar expresiones que se encierran entre par´entesis.
Para ello, considerando que trabajamos dentro del ´algebra de Bool la igualdad equivale al coimplicador y, de ah´ı, que nos interese convertirlo a un producto de dos implicadores.
M´as en concreto, partimos de una f´ormula bien formada del ´algebra de boole y cuantificada con universales ∀ y existenciales ∃ a lo largo de la f´ormula. El
objetivo consiste en convertir la f´ormula a la forma prenex donde todos los cuantificadores se ponen al principio de la f´ormula y, acto seguido, hacer que la f´ormula sea un producto de cl´ausulas de literales: V
iCi =Vi
W
jLai,j. Donde
cada literal ser´a una variable booleana afirmada o negada.
Una vez generadas las cl´ausulas trabajaremos sin las negaciones, para ello usaremos las siguiente regla cuando todos los literales est´en afirmados:
B1∨ · · · ∨ Bn ⇐⇒ 1 → B1∨ · · · ∨ Bn
La siguiente cuando todos los literales est´en negados:
¬A1∨ · · · ∨ ¬Am ⇐⇒ A1∧ · · · ∧ Am→ 0
Y, finalmente, en general: si tenemos en esa cl´ausula literales afirmados y ne-gados: _ i ¬Ai∨ _ j Bj ⇐⇒ ^ i Ai → _ j Bj
Finalmente, el mecanismo que incorporar´a las variables temporales τk dentro
del formatoV
iAi→
W
jBj, ser´a haciendo uso del siguiente secuente:
τk = V iAi→ W jBj τk∧ViAi→WjBj V i: (1 → Ai∨ τk) V j: (Bj→ τk)
Adem´as, para cada variable existencial R que incorpore en la f´ormula en alg´un n: I(R, An) ∨ I(R, Bn) ocurrir´a que la variable temporal se desdoblar´a de manera
que distinguiremos una k0que cumplir´a τk0 =
V
iAi→WjBj
y ´esta sustituir´a en f por la expresi´on τk∨ τk0 de manera que diremos que la variable es
inde-pendiente de τk (pues esta variable temporal puede depender de una variable
de la que R es independiente) y τk0 ser´a independiente de la variable conflictiva
X, ya sea An o Bn, por tanto: I(R, τk) ∧ I(τk0, X). El n´umero de clones de la
variable temporal ser´a igual al n´umero de par´ametros An o Bnconflictivos. Por
lo que esta operaci´on no sucumbe a una explosi´on combinatoria.
1.2
Proceso de eliminaci´
on de las variables temporales
Al terminar el proceso de resoluci´on, si existe un conjunto de asignaciones posi-bles entonces ya sabemos que la expresi´on es un teorema. Para obtener una expresi´on que lo convierta en tautolog´ıa, el proceso se hace ligeramente m´as complejo. Al obtener un conjunto de asignaciones de variables existenciales en variables universales, nos interesa que cada variable existencial tenga una ex-presi´on ´unica, de manera que las variables temporales puedan ser referenciadas por las variables existenciales de la f´ormula original.
La idea consiste en que no hace falta usar todas las asignaciones, sino s´olo alguna de ellas, sabiendo que ´estas se pueden combinar gracias al siguiente lema:
Lema 2
(A = x) ∧ (A = y) −→ (A = x ∨ y)
B´asicamente, lo que conseguimos con ese lema es poder transformar una ex-presi´on de la foma f ∧V
i(A = xi) = 1 en otra de la forma f ∧ (A =Wixi) = 1.
Ahora bien, si tenemos una expresi´on resultante de la forma (A = x) ∧ (A = y) tambi´en es factible usar el teorema de simplificaci´on mediante el cual decirmos (A = x) ∧ (A = y) −→ (A = x). Esto es debido a que la garantizaci´on del implicado, cuando se trata de una tautolog´ıa implica que el implicante tenga la misma potencia.
1.3
Proceso de asignaci´
on
El objeto de este proceso consiste en convertir una implicaci´on de variables universales, existenciales y temporales en una suma booleana de asignaciones de variables existenciales y temporales en variables universales y temporales. Pero que, en definitiva, consiste en aplicar este teorema:
Lema 3 ∀xi, ∀yi, ∃Ai, ∃Bi: V iAi∧Vixi→WiBi∨Wiyi ⇐⇒ W i(Ai= 0) ∨Wi,j(Ai = ¬xj) ∨Wi,j(Ai= yj)∨ ∨W
i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi= ¬yj)
• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj
• ∀j : I(Ai, yj): No se incorpora: Ai = yj
• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj
• ∀j : I(Bi, xj): No se incorpora: Bi= xj
• ∀j : I(Bi, yj): No se incorpora: Bi= ¬yj
Si analizamos sus partes, nos daremos cuenta de que usamos un nombre de variable en sustituci´on de que si la variable est´a afirmada o negada, as´ı si est´a cuantificada o es existencial. Si se han incorporado expresiones de la forma I(K, z), entonces observamos c´omo anulan la asignaci´on generada en la expresi´on anterior. Esto se hace para que en la unificaci´on la variable z no se pueda incorporar en la expresi´on del existencial K.
Entendiendo este formato, para incorporar las variables temporales, entonces el teorema pasa a convertirse a esta forma, que es la m´as general:
∀xi, ∀yi, ∃τi∃τi∗∃Ai, ∃Bi:
V
iAi∧VixiViτi→WiBi∨Wiyi∨Wiτi∗ ⇐⇒
W
i(Ai= 0) ∨Wi,j(Ai= ¬xj) ∨Wi,j(Ai= yj) ∨Wi,j(Ai= ¬τj) ∨Wi,j(Ai= τj∗)∨
∨W
i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi = ¬yj) ∨Wi,j(Bi= τj) ∨Wi,j(Bi= ¬τj∗)∨
W
i(τi= 0) ∨Wi,j(τi= ¬xj) ∨Wi,j(τi= yj)∨
∨W
i(τi∗= 1) ∨
W
• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj
• ∀j : I(Ai, yj): No se incorpora: Ai = yj
• ∀j : I(Bi, xj): No se incorpora: Bi= xj
• ∀j : I(Bi, yj): No se incorpora: Bi= ¬yj
• ∀j : I(Ai, τj) :No se incorpora: Ai= ¬τj
• ∀j : I(Ai, τj∗): No se incorpora: Ai= τj∗
• ∀j : I(Bi, τj): No se incorpora: Bi= τj
• ∀j : I(Bi, τj∗): No se incorpora: Bi= ¬τj∗
• ∀j : I(τi, xj) :No se incorpora: τi= ¬xj
• ∀j : I(τi, yj): No se incorpora: τi= yj
• ∀j : I(τ∗
i, xj): No se incorpora: τi∗= xj
• ∀j : I(τ∗
i, yj): No se incorpora: τi∗= ¬yj
N´otese que s´olo se incorporan dos tipos de variables temporales: los que se incorporan en el implicante τiy los que se incorporan en el implicado τi∗, por lo
que s´olo hay que aplicar el mismo formato de antes. As´ımismo, observamos que lo que se hace es considerar las variables temporales como si fueran universales de cara a las existenciales, y existenciales de cara a las universales (si aplic´aramos la f´ormula anterior).
2
Demostraci´
on constructiva de que SAT ∈ P
Una manera que tenemos de corroborar la existencia de la estructura consiste en comprobar que s´ı existe un c´odigo escrito en Python basado en operar sobre una cantidad cuadr´atica de matrices con respecto al n´umero de cl´ausulas (sa-biendo que las dimensiones de las matrices lo establece el n´umero de literales en cada cl´ausula) a trav´es dos bucles anidados. Eso quiere decir que tanto la O grande como la o peque˜na coincidir´an, pues se trata de operaciones recursivas primitivas. Tanto este c´odigo como el que satisface f´ormulas cuantificadas est´an compartidos en Internet.
M´as all´a de la existencia de un c´odigo que nos justifica teoremas escrito en Python, o que nos da soluciones a cualquier expresi´on booleana, en esta secci´on procederemos a mostrar los mecanismos que se usan para sostener que cualquier f´ormula booleana puede expresarse dentro del formato que se exige para su resoluci´on matricial.
Empezaremos definiendo qu´e es una f´ormula booleana: consiste en una f´ormula algebraica negada o no y formada por productos de f´ormulas booleanas o por variables que pueden tomar el valor de 0 o 1. Con el fin de mejorar la ex-presividad l´ogica, diremos que estas variables son llamadas variables booleanas,
expresaremos la existencia de la suma l´ogica con el operador or (∨) , que de-vuelve 1 cuando alguno de sus operandos es 1, y 0 en caso contrario. Mientras que el producto l´ogico ser´a expresado con el operador and (∧), que coincide con el producto aritm´etico. Por otro lado la negaci´on se calcular´a con el operador not (¬), que devuelve el valor an´alogo. Tambi´en se aprovecha la definici´on de literal: que es ya sea una variablea booleana o su negada. Una f´ormula bien formada estar´a formada por el producto o suma de dos f´ormulas bien formadas. Una f´ormula bien formada puede ser la negaci´on de otra f´ormula bien formada o bien una variable booleana. Esta aritm´etica se sabe que es tan potente como la l´ogica simb´olica, donde los conectores implicaci´on, co-implicaci´on y xor pueden ser expresados en t´erminos de aritm´etica booleana f´acilmente.
Para conseguir el objeto de determinar qu´e valores deben tomar las vari-ables para que la f´ormula resultante se satisfaga (devuelva 1), o si no es posible encontrar tal asignaci´on, se debe presentar un nuevo operador que simplifique toda la gesti´on.
Para ello definimos un nuevo operador l´ogico, al que llamaremos alternan-cia. Pero para ello haremos uso de la suma aritm´etica + y de la definici´on de sumatorioP, que a partir de dos naturales devolver´an un natural, diferente a la operaci´on or.
Definici´on 4 Alternancia es una funci´on l´ogica Bn7→ B donde
(A0| · · · |An) ⇐⇒ n
X
i=0
Ai= 1 (2)
Es decir, podemos coger como ejemplos (1|0) = 1, (0|0|1|0) = 1, (1|0|1|0) = 0 De ah´ı es f´acil de comprender y demostrar los siguientes lemas por prueba de casos:
Lema 5 Dado A F´ormula Booleana, ∀A (¬A|A) = 1
Lema 6 Dados A, B, Z1, Z2 F´ormulas Booleanas, ∀A, B ∃Z1, Z2
(¬A|Z1|A ∧ B) ∧ (¬B|Z2|A ∧ B) ∧ (Z1|Z2|A = B) = 1
Los anteriores lemas nos sirven para poder convertir cualquier f´ormula bien for-mada en un producto de alternancias de hasta tres variables. Es decir que medi-ante productos de la forma (A|B|C) ya podemos representar cualquier f´ormula bien formada, sabiendo que (A|B|0) = (A|B). De ah´ı ya definimos una f´ormula como un producto de cl´ausulas de este tipo:
Definici´on 7 Una conjunci´on de cl´ausulas de alternancias AI de una F´ormula
Booleana f es una correspondencia Bn7→ B que es verdad si todas las cl´ausulas
AI son verdad. Adem´as distinguimos la AI
k como la variable booleana k-´esima
dentro de la alternancia I. f =^ I AI = (A00| · · · |A0 n) ∧ · · · ∧ (A M 0 | · · · |A M t ) (3)
Es decir, la notaci´on escogida establece el siguiente principio: si tenemos que AIi = 1, significar´a que estamos atribuyendo que es verdad la variable booleana que se ubica en la posici´on i-´esima alternando dentro de la cl´ausula que se ubica en la posici´on I-´esima multiplicando dentro de la f´ormula y, adem´as, ello implicar´a que el resto de las variables boolenas dentro de la cl´ausula I ser´an falsas (∀k 6= i : AI
k = 0).
Sin embargo, necesitamos un operador de asignaci´on, es inc´omodo ir definiendo una trinca de la manera AI
i = 1 y, considerando el bucle que resolver´a el
algo-ritmo, se define el operador σ de la siguiente manera:
Definici´on 8 Dada una conjunci´on de cl´ausulas de alternancias AI de una
F´ormula Booleana f , la asignaci´on σℵ I Ji j devuelve 1 si f se satisface al
asig-narle 1 a la i-´esima variable de la cl´ausula I y a la j-´esima variables de la cl´ausula J en f . σℵ I J i j = f ∧ AIi ∧ AJj (4)
N´otese cuando se expresa σ I Ji j lo que hacemos es seleccionar una soluci´on para eliminar dos cl´ausulas de la f´ormula. As´ı que cuando esto es coherente el sub´ındice ℵ se hace irrelevante, esto es debido a que m´as adelante usaremos este ´ındice como variante del bucle. Sin ir m´as lejos, al par I, J le daremos como tratamiento de una matriz y, si tomamos en cuenta una valoraci´on en un tiempo t resultar´a, por las definiciones anteriores que:
Definici´on 9 Dada una conjunci´on de cl´ausulas de alternancias AI de una
F´ormula Booleana f , si para alg´un t: ∃I, J con AI y AJ cl´ausulas de f de
manera que ∀i, j : σt I Ji j = 0 entonces f no se satisface en t.
Mediante un algoritmo adecuado, el hecho de que la f´ormula no pueda satisfac-erse en la iteraci´on t implicar´a que la f´ormula es inconsistente.
Con el fin de entender mejor la definici´on de asignaci´on, podemos extender un poco la notaci´on a m´as cl´ausulas:
Definici´on 10 Dada una conjunci´on de cl´ausulas de alternancias AI de una
F´ormula Booleana f en alg´un t, ∀K1, · · · , Kn donde AKi son n cl´ausulas de f
σt K1 · · · Kn k1 · · · kn ⇐⇒ f ∧^ i AKi ki
Esto significa que si t alcanza ℵ y las cl´ausulas son todas las de f entonces tendremos representados en los kiuna soluci´on cercana a la asignaci´on necesaria
para satisfacer f . Si en alg´un t resultara que la asignaci´on se hace 0 entonces para t mayores seguir´a valiendo 0.
Ahora veamos c´omo se combinan dos matrices para formar una asignaci´on de m´as cl´ausulas:
Lema 11 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula
Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas
∀i, j, k : σt I J K i j k ⇐⇒ σt I J i j ∧ σt I K i k
Gracias a este principio podremos asegurar que las matrices son suficientes para representar soluciones que incorporen m´as cl´ausulas y, por tanto, cuando tengamos la siguiente afirmaci´on: σ I J Ki j k = 1, se deduce necesariamente que σ I Ji j ∧ σ I K
i k ∧ σ J K
j k
= 1. Mientras que si, por otro lado, se diera que σ I J Ki j k = 0, es porque alguna de las tres asignaciones debe ser 0. Now then:
Lema 12 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas
de f satisfacible por una ´unica soluci´on, se cumple la siguiente propiedad tran-sitiva: ∀i, j, k : σt I J i j ∧ σt I K i k =⇒ σt J K j k
Este enunciado hace f´acil mantener el siguiente corolario:
Lema 13 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula
Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas
de f satisfacible por una ´unica soluci´on:
∀i, j, k : σt I J i j + σt I K i k + σt J K j k 6= 2
Esta afirmaci´on es fundamental porque si comprobamos que la suma de esas tres asignaciones es 2 entonces eso debe ser o porque es inconsistente (sabiendo que el bucle se encarga de asegurarnos de que no lo es hasta el paso t) o tiene m´as de una soluci´on, la cual en este nudo es donde quedar´ıan enmara˜nadas para determinar siquiera si en un paso t0> t la f´ormula podr´ıa ser no satisfacible. Lema 14 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula
Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas de f ∀i, j : σt I J i j =_ k σt I K i k ∧ σt J K j k
Proof. Dado que σ I Ji j = f ∧ AI
i∧ AJj, para cada cl´ausula K de la f´ormula f ,
el considerar σ I Ji j como parte de las soluciones de f implica que debe haber alg´un literal k para el que se cumpla σ I J Ki j k = 1, lo cual encaja con lo que dice el lema. Por otro lado, si σ I Ji j = 0, entonces σ I J K
i j k = 0, para cualquier
k, por lo que tambi´en se confirma el lema.
A partir de este lema deducimos el siguiente corolario:
Lema 15 Dados t0 y t con t0 > t ´ındices de σ, que son asignaciones de una conjunci´on de alternancias f , donde ∀I, J, i, j
σt0 I J i j = σt I J i j ∧^ K _ k σt I K i k ∧ σt J K j k (5)
Esto significa que si se asegurara que σta´un es satisfacible, entonces σt0tambi´en
lo debe ser. Sin ir m´as lejos, ´este ser´a nuestro invariante de bucle; as´ı que s´olo hay que dise˜nar en nuestro algoritmo el estado inicial de cada una de las matrices; este estado consistir´a en evaluar si encarando dos cl´ausulas hay en ellas dos menciones a la misma variable; para as´ı poner como sub´ındice t = 2 para decir que la f´ormula sigue siendo consistente hasta evaluar 2 cl´ausulas. Por tanto:
σ2 I J i j = ¬∃k : AIk= AIi ∧ i 6= k ∨ AJ k = A J j ∧ j 6= k (6) σt+1 I J i j = σt I J i j ∧^ K _ k σt I K i k ∧ σt J K j k (7)
Definici´on 16 Se define el siguiente algoritmo para las AI cl´ausulas de la f´ormula: ( σ2 I Ji j = ¬∃k : AIk = A I i |i6=k∨AJk = A J j |j6=k σt+1 I Ji j = σt I Ji j ∧ VK W kσt I Ki k ∧ σt J Kj k (8)
Lema 17 Dado un σtdefinido por el algoritmo anterior para el periodo t y dado
σℵ soluciones de f , que es conjunci´on de n alternancias, entonces σn= σℵ
Proof. a) Si la f´ormula f tuviera dos cl´ausulas la demostraci´on ser´ıa trivial. b) Si la f´ormula no se satisfaciera, entonces habr´a alg´un I, K donde en alg´un momento t de la iteraci´on: W
kσt I K
i k = 0, por lo que para cualquier n ≥ t
seguir´a manteni´endose la asignacion, de ah´ı σt= σ.
c) Si la f´ormula se satisface, para cada iteraci´on t vemos que en alg´un I, J, K se calcula: R = σt I Ji j + σt I Ki k + σt J Kj k.
c1) Si R < 2, entonces i, j, k no puede ser soluci´on.
c2) Si R = 3, entonces i, j, k es parte de la soluci´on si se trata de una soluci´on ´
unica en toda la f´ormula.
c3) Si R = 2, entonces el n´umero de soluciones ni es 0 si es 1, y tenemos datos enmara˜nados. Esto significa que debemos cancelar una de las asignaciones σt I Ki k o σt J Kj k haciendo que pase de valer 1 a valer 0, as´ı eliminamos una
soluci´on de f para hacer que el resultado colapse iterativamente hacia una ´unica soluci´on. Por lo que si el algoritmo se recalcula para el momento t con esta cancelaci´on entonces al menos en este punto no se dar´a el caso R = 2.
(d) No hay otros casos posibles.
Adem´as, es f´acil de deducir que el algoritmo trabaja bajo una complejidad cuatr´atica en el tiempo, siendo n el n´umero de cl´ausulas de f , por lo que con un sistema que es cuadr´atico en el espacio s´olo es necesario un tiempo c´ubico para deducir la satisfacci´on de f , mientras que un tiempo O(n4) cuando queremos
colapsar todas las soluciones a un caso particular. De ah´ı se deduce que SAT ∈ P .
3
Anexos
Se puede encontrar c´odigo testeable en Python que encuentra soluciones a cualquier f´ormula bien formada mediante el operador de alternancias en la di-recci´on:
https://archive.org/details/alternancias,
as´ımismo se encuentra todo compilado con aplicaciones para evaluar expre-siones QBF en la direcci´on:
https://archive.org/details/TQBFInP 201802.
• Lema 12
Proof. Dada la soluci´on S = σ K1··· Kn
k1··· kn then ∀I, J, K, i, j, k tenemos las
sigu-ientes posibilidades:
a) Si el par (I, i) no corresponde con S entonces el lema se satisface porque 0 → 1.
b) Si el par (J, j) o el par (K, k) no corresponde con S entonces se satisface porque 0 → 0.
c) Si corresponden con S tanto (I, i) = (Kx, kx), as´ı como (J, j) = (Ky, ky)
y (K, k) = (Kz, kz) entonces tambi´en se cumple porque 1 → 1.
d) No hay m´as posibilidades. • Lema 2 Proof (A = x) ∧( A = y) → ( A = x ∨ y) 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 • Lema 3 ∀xi, ∀yi, ∃Ai, ∃Bi: V iAi∧Vixi→WiBi∨Wiyi ⇐⇒ W i(Ai= 0) ∨Wi,j(Ai = ¬xj) ∨Wi,j(Ai= yj)∨ ∨W
i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi= ¬yj)
Proof
∃i : Ai= 0 → (T rue ⇐⇒ T rue)
∀i : Ai= 1 ∧ ∃i : Bi= 1 → (T rue ⇐⇒ T rue)
∀i : Ai= 1 ∧ ∀i : Bi= 0 ∧ ∃j : xj= 0 → (T rue ⇐⇒ T rue)
∀i : Ai= 1 ∧ ∀i : Bi= 0 ∧ ∀j : xj= 1 ∧ ∃j : yj= 1 → (T rue ⇐⇒ T rue)