Verifique la corrección de la eliminación del cuantificador, utilizando SAT


8

Dejar x=(x1,,xn) y y=(y1,,yn) ser n-vectores de variables booleanas. Tengo un predicado booleanoQ(x,y) en x,y. Le doy a mi amiga PriscillaQ(x,y). En respuesta, ella me daP(x), un predicado booleano en , y ella afirma quex

P(x)y.Q(x,y),

o en otras palabras, que

x.[P(x)y.Q(x,y)].

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í).PQ

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.PNPΔ2PPNP


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.QP

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é).P,QP,QP,QP,Q


Si le damos a Priscilla un Q(x,y) donde y es irrelevante, ¿no estamos resolviendo efectivamente TAUTcoNP? Si es así, entonces no hay ningún certificado que Priscilla pueda darle que pueda ayudar a menos queNP=coNP.
mdxn

@mdx, lo peculiar de esta configuración es que tengo un solucionador SAT, que (empíricamente) casi siempre funciona en los predicados con los que me encuentro en la práctica. Entonces, si me danP(x),Q(x) y quiero verificar x.P(x)Q(x)Puedo alimentar (P(x)¬Q(x))(¬P(x)Q(x))en mi solucionador SAT; si encuentra que esto no es satisfactorio, he verificadox.P(x)Q(x)es verdad. Entonces, a pesar de que eso está resolviendo efectivamenteTAUT, todavía está bien en la práctica. ¿O he entendido mal la esencia de tu comentario?
DW

1
Ah, así que supongo que estás tomando el papel de una máquina para decidir problemas en PNP=Δ2P(o el equivalente heurístico de)?
mdxn

@mdx, sí, ahora que lo mencionas, es una buena manera de pensarlo. ¡Gracias por sugerir esa perspectiva!
DW

No creo que la first-order-logicetiqueta esté justificada. La pregunta es sobre fórmulas booleanas cuantificadas.
rodilla

Respuestas:


2

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

    x.P(x)Q(x,f(x))

    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ón fpara 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:

    ¬(P(x)Q(x,f(x))).

    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 adecuada f. Otra advertencia es que necesitamosfpara 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 donde y=(y1)es una variable de un bit. Entoncesy.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:

    ¬(P(x)(Q(x,False)Q(x,True))).

    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

    Ri(x,(yi+1,,yn))y1,y2,,yi.Q(x,y).

    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),

    Ri+1(x,(yi+2,,yn))yi+1.Ri(x,(yi+1,,yn))for i=1,2,,n1.

    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 whether QR0 and PR 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 the Ri'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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.