Dejar y ser -vectores de variables booleanas. Tengo un predicado booleano en . Le doy a mi amiga Priscilla. En respuesta, ella me da, un predicado booleano en , y ella afirma que
o en otras palabras, que
Me gustaría verificar su reclamo de alguna manera. ¿Cómo puede Priscilla ayudarme a verificar este reclamo?
Puede suponer que tanto como Q están representados como fórmulas CNF y que no son demasiado grandes (tamaño polinómico o algo así).
En un mundo ideal, sería increíble si pudiera reducir el problema de verificar este reclamo a SAT: tengo un solucionador SAT, y sería genial si puedo usar el solucionador SAT para verificar este reclamo. Sin embargo, estoy bastante seguro de que no será posible formular el problema de verificar este reclamo directamente como una instancia SAT; probar la validez de una fórmula 2QBF es casi seguro que es más difícil que el SAT. (La dirección es fácil de formular como una instancia SAT, pero la dirección es difícil porque implica inherentemente dos cuantificadores alternativos).
Pero supongamos que Priscilla podría darme alguna evidencia adicional para respaldar su reclamo. ¿Hay alguna evidencia adicional o testigo que Priscilla me pueda dar, lo que me facilitaría verificar su reclamo? En particular, ¿hay alguna evidencia adicional o testigo que ella pueda darme, lo que me facilitaría formular el problema de verificar su reclamo como una instancia de SAT (a la que luego puedo aplicar mi solucionador de SAT)?
Un aspecto inusual de mi entorno es que estoy asumiendo (heurísticamente) que tengo un oráculo para el SAT. Si le gusta la teoría de la complejidad, puede pensarlo de esta manera: estoy asumiendo el papel de una máquina que puede calcular cosas en (es decir, en ), y estoy buscando verificar la de Priscilla reclamar usando un algoritmo en . Mi agradecimiento a mdx por esta forma de pensar sobre las cosas.
Mi motivación / aplicación: estoy buscando hacer una verificación formal de un sistema (por ejemplo, verificación de modelo simbólico), y un paso clave en el razonamiento implica la eliminación del cuantificador (es decir, a partir de , obtener ). Espero una forma limpia de verificar que la eliminación del cuantificador se realizó correctamente.
Si no hay una solución que funcione para todos los posibles , siéntase libre de sugerir una solución que sea "sólida pero no completa", es decir, una técnica que para muchos me permite verificar la equivalencia reclamada. (Incluso si no verifica el reclamo en algunos que satisfacen el reclamo, todavía puedo intentarlo como heurístico, siempre y cuando nunca afirme inapropiadamente haber verificado un reclamo falso. En cualquier dado , podría funcionar, o podría no funcionar; si no funciona, no estoy peor que donde empecé).
first-order-logic
etiqueta esté justificada. La pregunta es sobre fórmulas booleanas cuantificadas.Respuestas:
Aquí hay dos técnicas que he podido identificar:
Identificar una función explícita de Skolem. Supongamos que Priscilla puede identificar una función explícitaf tal que
sostiene. Luego se deduce que la afirmación de Priscilla es correcta.
Esto significa que Priscilla puede ayudarnos a verificar su reclamo al proporcionar una funciónf para que se cumpla la proposición anterior. Podemos confirmar que la proposición anterior se cumple probando la siguiente fórmula para determinar su satisfacción:
Si esta fórmula no es satisfactoria, se ha verificado el reclamo de Priscilla.
Una advertencia es que Priscilla necesita poder identificar una función adecuadaf . Otra advertencia es que necesitamosf para ser representable concretamente en alguna forma concisa, digamos, como un circuito booleano de tamaño polinómico. Sin embargo, si se cumplen esas condiciones, esta técnica debería funcionar.
Un argumento híbrido. Considere el caso especial de este problema, donde estamos cuantificando sobre una variable de un bit (en lugar de unan -bit variable); Resulta que el problema es fácil de resolver en este caso. Esto sugiere que intentemos encadenar esa técnican veces, cada vez eliminando un poco más de y . Resulta que esta idea a veces funcionará, pero no siempre.
Permítanme explicar cómo verificar el reclamo de Priscilla en el caso dondey=(y1) es una variable de un bit. Entonces∃y.Q(x,y) es equivalente a Q(x,False)∨Q(x,True) . La última fórmula es como máximo dos veces más grande queQ , así que aún tiene un tamaño polinómico. Ahora podemos usar nuestro solucionador SAT para probar siQ(x,False)∨Q(x,True) es equivalente a P(x) ; la equivalencia se cumple exactamente si la siguiente fórmula no es satisfactoria:
Entonces, si estamos cuantificando en un solo bit, esto nos da una forma de verificar que la eliminación del cuantificador se realizó correctamente.
Para resolver el problema original, aplique esto varias veces. El trabajo de Priscilla será darnosn+1 predicados booleanos R0,R1,R2,…,Rn tal que
Nuestra tarea será verificar si todos estos predicados booleanos se generaron correctamente. Podemos hacer esto probando siQ(x,y)≡R0(x,y) , P(x)≡Rn(x) ,
Notice that the latter is an instance of quantifier elimination with a single bit, so we've already described how to test it was done correctly using a SAT solver. We can also test whetherQ≡R0 and P≡R using a SAT solver straightforwardly. So, we can check whether Priscilla generated R0,…,Rn correctly. If she did, then we've verified that P was generated suitably.
One caveat is that Priscilla needs to be able to generate theRi 's. A bigger caveat is that the size of all the Ri 's needs to be reasonable (say, polynomial-sized). If Priscilla generates the Ri 's naively, their size might grow exponentially with i , which is no good. So, Priscilla will need a way to simplify at each stage; there needs to exist some sequence of R0,…,Rn that are all polynomial-sized, and Priscilla needs to be able to find such a sequence. That is by no means guaranteed. That said, if Priscilla can do this, then this technique should work.
I'm not fully satisfied with these techniques -- they are incomplete heuristics, and they might fail on some/many problem instances -- so I would still be interested to see other ways of approaching this problem.
fuente